ClickHouse/docs/ja/sql-reference/statements/select/into-outfile.md
2024-11-18 11:58:58 +09:00

2.6 KiB

slug sidebar_label
/ja/sql-reference/statements/select/into-outfile INTO OUTFILE

INTO OUTFILE 節

INTO OUTFILE 節は、SELECT クエリの結果をクライアント側のファイルにリダイレクトします。

圧縮ファイルがサポートされています。圧縮タイプはファイル名の拡張子によって検出されます(デフォルトで 'auto' モードが使用されます)。また、COMPRESSION 節で明示的に指定することもできます。特定の圧縮タイプに対する圧縮レベルは、LEVEL 節で指定できます。

構文

SELECT <expr_list> INTO OUTFILE file_name [AND STDOUT] [APPEND | TRUNCATE] [COMPRESSION type [LEVEL level]]

file_name および type は文字列リテラルです。サポートされている圧縮タイプは、'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 または TRUNCATE を使用する必要があります。

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

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

結果:

1,"ABC"