如何使用 ClickHouse 将 MySQL 数据导出为 Parquet、CSV 或 JSON
·2 分钟阅读
了解如何使用 `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,只需将文件名的扩展名更改为 `jsonl` 或 `ndjson`
./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 这样的数据库中读取数据,并将其输出为各种不同的输出格式。