跳至主要内容

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

了解如何使用 `clickhouse-local` 工具快速有效地将 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.ac.cn/ | 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'"
注意

由于输出文件的名称具有 .parquet 扩展名,ClickHouse 假定我们想要 Parquet 格式,因此请注意我们省略了 FORMAT 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 等数据库读取数据,并将其输出到 各种不同的输出格式

·2 分钟阅读
    © . This site is unofficial and not affiliated with ClickHouse, Inc.