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

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 は数値リテラルです。サポートされている正の整数の範囲は、lz4 では 1-12zstd では 1-22、その他の圧縮方式では 1-9 です。

実装の詳細

  • この機能は command-line clientclickhouse-local で利用できます。したがって、HTTP interface 経由で送信されたクエリはエラーになります。
  • 同じファイル名のファイルがすでに存在する場合、そのクエリはエラーになります。
  • デフォルトの 出力フォーマットTabSeparated(command-line client のバッチモードと同様)です。変更するには FORMAT 句を使用します。
  • クエリ内で AND STDOUT が指定されている場合、ファイルに書き込まれる出力は標準出力にも表示されます。圧縮を使用している場合は、標準出力には非圧縮の出力が表示されます。
  • クエリ内で APPEND が指定されている場合、出力は既存のファイルに追記されます。圧縮を使用している場合、APPEND は使用できません。
  • 既存のファイルに書き込む場合は、APPEND または TRUNCATE を使用する必要があります。

command-line client を使用して次のクエリを実行します:

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

結果:

1,"ABC"