メインコンテンツへスキップ
INTO OUTFILE 句は、SELECT クエリの結果をクライアント側のファイルに書き出します。 圧縮ファイルに対応しています。圧縮タイプはファイル名の拡張子から判別されます (既定ではモード 'auto' が使用されます) 。また、COMPRESSION 句で明示的に指定することもできます。特定の圧縮タイプの圧縮レベルは、LEVEL 句で指定できます。 構文
SELECT <expr_list> INTO OUTFILE file_name [AND STDOUT] [APPEND | TRUNCATE] [COMPRESSION type [LEVEL level]]
file_nametype は文字列リテラルです。サポートされている圧縮タイプは、'none''gzip''deflate''br''xz''zstd''lz4''bz2' です。 level は数値リテラルです。次の範囲の正の整数がサポートされます: lz4 タイプでは 1-12zstd タイプでは 1-22、その他の圧縮タイプでは 1-9 です。

実装の詳細

  • この機能は、コマンドラインクライアントclickhouse-local で利用できます。そのため、HTTPインターフェイス 経由で送信したクエリは失敗します。
  • 同じファイル名のファイルがすでに存在する場合、そのクエリは失敗します。
  • デフォルトの出力フォーマットTabSeparated です (コマンドラインクライアントのバッチモードと同様) 。変更するには FORMAT 句を使用します。
  • クエリに AND STDOUT が指定されている場合、ファイルに書き込まれる出力は標準出力にも表示されます。圧縮と併用する場合、標準出力には平文が表示されます。
  • クエリに APPEND が指定されている場合、出力は既存のファイルに追記されます。圧縮を使用する場合は、APPEND は使用できません。
  • すでに存在するファイルに書き込む場合は、APPEND または TRUNCATE を使用する必要があります。
次のクエリを コマンドラインクライアント で実行します。
Query
clickhouse-client --query="SELECT 1,'ABC' INTO OUTFILE 'select.gz' FORMAT CSV;"
zcat select.gz 
Response
1,"ABC"
最終更新日 2026年6月10日