メインコンテンツへスキップ

Parquet から CSV または JSON へのファイル変換

clickhouse-local を使うと、ClickHouse がサポートする任意の 入出力フォーマット 間でファイルを変換できます (サポートされているフォーマットは 70 種類以上あります) 。この記事では、S3 上の Parquet ファイルを CSV ファイルと JSON ファイルに変換します。 では、最初から見ていきましょう。ClickHouse には、ファイル、データベース、その他のリソースからデータを読み込み、それをテーブルとして扱えるようにする テーブル関数 が用意されています。例として、S3 に Parquet ファイルがあるとします。これを読み込むには s3 テーブル関数を使います (ClickHouse はファイル名に基づいて、それが Parquet ファイルであることを認識します) 。 その前に、clickhouse バイナリをダウンロードしましょう:

テーブル関数を使用してデータにアクセスする

s3 テーブル関数が作成する結果のテーブルに対して DESCRIBE を実行し、ファイルを読み取れることを確認しましょう。
このファイルには、英国で売買された物件の住宅価格データが含まれています。レスポンスは次のようになります。
このデータに対して、任意のクエリを実行できます。たとえば、住宅の平均価格が最も高い町を見てみましょう。
レスポンスは次のようになります。

ParquetファイルをCSVに変換する

任意のSQLクエリの結果はファイルに出力できます。S3上のParquetファイルからすべてのカラムを取得し、その結果を新しいCSVファイルに出力してみましょう。出力ファイルの拡張子が.csvで終わっているため、ClickHouseはCSV出力フォーマットを使用します:
正しくできたことを確認しましょう:

ParquetファイルをJSONに変換する

ParquetファイルをJSONに変換するには、出力ファイル名の拡張子を変更するだけで済みます。
うまくいったか確認しましょう:

CSVをParquetに変換

逆方向の変換も可能です。新しいCSVファイルを簡単に読み込み、Parquetファイルとして出力できます。ローカルファイルhouse_prices.csvは、fileテーブル関数を使ってClickHouseで読み込めます。また、ClickHouseはファイル名の末尾が.parquetであれば、それに基づいてParquetフォーマットでファイルを出力します (または、FORMAT Parquet句を追加することもできます) 。
前述のように、clickhouse local と組み合わせて ClickHouse の任意の 入出力フォーマット を使えば、ファイルを別のフォーマットに簡単に変換できます。
最終更新日 2026年6月10日