Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

如何使用 ClickHouse 将 MySQL 数据导出为 Parquet、CSV 或 JSON

使用 ClickHouse 将 MySQL 数据导出为 Parquet、CSV 或 JSON

clickhouse-local 工具可让你快速、轻松地从 MySQL 读取数据,并将其输出为多种不同格式,包括 Parquet、CSV 和 JSON。我们将:

  • 使用 mysql 表函数读取数据
  • 使用 INTO OUTFILE _filename_ FORMAT 子句,并指定所需的输出格式

clickhouse-local 工具是 ClickHouse 可执行文件的一部分。可使用以下命令下载:

curl https://clickhouse.com/ | sh

将 MySQL 导出为 Parquet

mysql 表函数会根据发送到 MySQL 实例的查询结果创建一张表。例如:

SELECT *
FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
);

我们可以使用 INTO OUTFILE 将此查询的输出写入文件。使用 FORMAT 指定要创建文件的格式。下面我们将导出一个 MySQL 表的全部内容,并将其写入一个 Parquet 文件:

./clickhouse local -q "SELECT * FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
)
INTO OUTFILE 'my_output_file.parquet'"

将 MySQL 导出为 CSV

这与导出为 Parquet 时相同,只不过这次我们在文件名中使用 .csv 扩展名。ClickHouse 会识别出我们需要逗号分隔的输出格式,并据此将数据写入文件:

./clickhouse local -q "SELECT * FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
)
INTO OUTFILE 'my_output_file.csv'"

将 MySQL 导出为 JSON

要将 MySQL 导出为 JSON,只需把文件扩展名改为 jsonlndjson

./clickhouse local -q "SELECT * FROM
   mysql(
    'localhost:3306',
    'my_sql_database',
    'my_sql_table',
    'user',
    'password'
)
INTO OUTFILE 'my_output_file.ndjson'"

clickhouse-local 工具看似简单,却非常强大,着实令人印象深刻。你可以轻松地从 MySQL 这样的数据库中读取数据,并将其输出为各种不同的输出格式

Navigation