ClickHouse を使用して MySQL のデータを Parquet、CSV、または JSON にエクスポートする
clickhouse-local ツールを使うと、MySQL からすばやく簡単にデータを読み取り、Parquet、CSV、JSON など、さまざまなフォーマットで出力できます。ここでは、次のことを行います。
mysqlテーブル関数 を使ってデータを読み取るINTO OUTFILE _filename_ FORMAT句を使用し、必要な出力フォーマットを指定する
clickhouse-local ツールは ClickHouse バイナリの一部です。次の手順でダウンロードしてください。
curl https://clickhouse.com/ | shMySQL を 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 にエクスポートするには、ファイル名の拡張子を 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 のようなデータベースから簡単にデータを読み込み、さまざまな出力フォーマットで出力できます。