メインコンテンツまでスキップ
メインコンテンツまでスキップ

INTO OUTFILE 句

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 は数値リテラルです。次の範囲の正の整数がサポートされています:1-12lz4 タイプ、1-22zstd タイプ、そして 1-9 は他の圧縮タイプです。

実装の詳細

  • この機能は コマンドラインクライアントclickhouse-local で利用可能です。したがって、HTTPインターフェース を介して送信されたクエリは失敗します。
  • 同じファイル名のファイルが既に存在する場合、クエリは失敗します。
  • デフォルトの 出力形式TabSeparated です(コマンドラインクライアントのバッチモードと同様)。これを変更するには FORMAT 句を使用します。
  • クエリに AND STDOUT が含まれている場合、ファイルに書き込まれる出力は標準出力にも表示されます。圧縮が使用される場合、プレーンテキストが標準出力に表示されます。
  • クエリに APPEND が含まれている場合、出力は既存のファイルに追加されます。圧縮が使用される場合、追加は使用できません。
  • 既に存在するファイルに書き込む場合は、APPEND または TRUNCATE を使用する必要があります。

次のクエリを コマンドラインクライアント を使用して実行します:

clickhouse-client --query="SELECT 1,'ABC' INTO OUTFILE 'select.gz' FORMAT CSV;"
zcat select.gz 

結果:

1,"ABC"