跳转到主要内容
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 interface发送的查询会失败。
  • 如果已存在同名文件,查询会失败。
  • 默认输出格式TabSeparated (与命令行客户端的批次模式相同) 。可使用 FORMAT 子句进行更改。
  • 如果查询中指定了 AND STDOUT,写入文件的输出也会显示在标准输出中。如果使用压缩,标准输出中显示的是明文。
  • 如果查询中指定了 APPEND,输出会追加到现有文件中。如果使用压缩,则不能使用 APPEND
  • 向已存在的文件写入时,必须使用 APPENDTRUNCATE
示例 使用命令行客户端执行以下查询:
Query
clickhouse-client --query="SELECT 1,'ABC' INTO OUTFILE 'select.gz' FORMAT CSV;"
zcat select.gz 
Response
1,"ABC"
最后修改于 2026年6月10日