Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

如何将 ClickHouse 中的数据导出到文件

使用 INTO OUTFILE 子句

在查询中添加 INTO OUTFILE 子句。

例如:

SELECT * FROM table INTO OUTFILE 'file'

默认情况下,ClickHouse 会根据文件名的扩展名来确定输出格式和压缩方式。例如,nyc_taxi 中的所有行都会以 Parquet 格式导出到 nyc_taxi.parquet

SELECT *
FROM nyc_taxi
INTO OUTFILE 'taxi_rides.parquet'

以下文件将是一个经过压缩的制表符分隔文件:

SELECT *
FROM nyc_taxi
INTO OUTFILE 'taxi_rides.tsv.gz'

如果 ClickHouse 无法根据文件扩展名确定格式,则输出数据默认采用 TabSeparated 输出格式。要指定输出格式,请使用 FORMAT 子句

例如:

SELECT *
FROM nyc_taxi
INTO OUTFILE 'taxi_rides.txt'
FORMAT CSV

使用 File 表引擎

另一个选项是使用 File 表引擎,即由 ClickHouse 使用文件来存储数据。你可以直接对该文件执行查询和插入操作。

例如:

CREATE TABLE my_table (
   x UInt32,
   y String,
   z DateTime
)
ENGINE = File(Parquet)

插入几行数据:

INSERT INTO my_table VALUES
   (1, 'Hello', now()),
   (2, 'World', now()),
   (3, 'Goodbye', now())

该文件存储在你的 ClickHouse server 的 data 文件夹中——具体位于 /data/default/my_table 下名为 data.Parquet 的文件中。

使用命令行重定向

$ clickhouse-client --query "SELECT * from table" --format FormatName > result.txt

请参见 clickhouse-client

Navigation