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

PostgreSQL のデータを Parquet、CSV、または JSON にエクスポートする方法

これは clickhouse-local を使えば簡単です。
  • postgresql テーブル関数 を使用してデータを読み取ります
  • INTO OUTFILE _filename_ FORMAT 句を使用し、必要な出力フォーマットを指定します
出力フォーマットには、ClickHouse でサポートされている任意の 出力フォーマット を使用できます。いくつか例を見てみましょう… これらの例では、ClickHouse バイナリの一部である clickhouse-local を使用します。以下の手順でダウンロードしてください。

PostgreSQL を Parquet にエクスポートする

postgresql テーブル関数を使用すると、リモートの PostgreSQL サーバーに保存されているデータに対して SELECT (および INSERT) クエリを実行できます。たとえば、PostgreSQL のテーブルの内容全体を表示するには、次のようにします。
このクエリの出力は、INTO OUTFILE を使ってファイルに書き出せます。作成するファイルのフォーマットは FORMAT で指定します。では、PostgreSQL テーブルの内容全体を取得し、Parquet ファイルに書き出してみましょう。
出力ファイル名の拡張子が .parquet のため、ClickHouse は Parquet フォーマットを指定していると判断します。したがって、FORMAT Parquet 句は省略しています。

PostgreSQL を CSV にエクスポートする

Parquet の場合と同様ですが、出力先にはより適切なファイル名を指定します:
以上です!ClickHouse は出力ファイル名の .csv 拡張子を見て、データをカンマ区切り形式で出力します。それ以外は、上記とまったく同じコマンドです。

PostgreSQL を JSON にエクスポートする

PostgreSQL から JSON に変換するには、ファイル名を変更するだけで、ClickHouse がフォーマットを自動的に判別します。
ここで終わりではありません。clickhouse-local を使えば、PostgreSQL からデータを取得して、さまざまな出力フォーマット に送信できます。ClickHouse がファイル名の拡張子から出力フォーマットを判別できない場合や、使用するフォーマットを明示的に指定したい場合は、FOMRAT 句を追加します。

PostgreSQL を別のプロセスにストリーム出力する

INTO OUTFILE を使う代わりに、テーブル関数の結果を別のプロセスにストリーム出力できます。以下は構文を示す簡単な例です。Linux の wc -l コマンドを使って行数を数えます。
ただし、行はシェルスクリプトやPythonスクリプト、あるいは任意の別プロセスに簡単にストリーミングできます。
最終更新日 2026年6月29日