跳转到主要内容
Apache 发布了多种在分析环境中广泛使用的数据格式,其中包括常见的 AvroArrowORC。ClickHouse 支持使用其中任意一种格式导入和导出数据。

以 Avro 格式导入和导出

ClickHouse 支持读取和写入 Apache Avro 数据文件,这类文件在 Hadoop 系统中广泛使用。 要从 avro 文件 导入数据,应在 INSERT 语句中使用 Avro 格式:
借助 file() 函数,我们还可以在实际导入数据之前先查看 Avro 文件:
导出到 Avro 文件:

Avro 和 ClickHouse 数据类型

导入或导出 Avro 文件时,请参阅数据类型匹配。从 Avro 文件加载数据时,请使用显式类型转换:

Kafka 中的 Avro 消息

当 Kafka 消息采用 Avro 格式时,ClickHouse 可以使用 AvroConfluent 格式和 Kafka 引擎来读取这类流:

使用 Arrow 格式

另一种列式格式是 Apache Arrow,ClickHouse 同样支持使用它进行导入和导出。要从 Arrow 文件 导入数据,我们使用 Arrow 格式:
导出为 Arrow 文件的方法也是一样的:
此外,请查看数据类型匹配,确认是否有任何数据类型需要手动转换。

Arrow 流式数据

ArrowStream 格式可用于处理 Arrow 流式数据 (用于内存中处理) 。ClickHouse 可以读取和写入 Arrow 流。 为了演示 ClickHouse 如何流式传输 Arrow 流式数据,我们将其通过管道传递给下面的 Python 脚本 (该脚本以 Arrow 流式格式读取输入流,并将结果输出为 Pandas 表) :
现在,我们可以将 ClickHouse 的输出通过管道传给该脚本,从而从 ClickHouse 流式传输数据:
ClickHouse 也可以使用相同的 ArrowStream 格式读取 Arrow 流:
我们使用 arrow-stream 作为 Arrow 流式数据的一种可能来源。

导入和导出 ORC 数据

Apache ORC 是一种通常用于 Hadoop 的列式存储格式。ClickHouse 支持使用 ORC 格式 导入和导出 ORC 数据
另外,还请参阅数据类型匹配以及其他设置,以便调整导入和导出。

延伸阅读

ClickHouse 支持多种格式,包括文本格式和二进制格式,以满足各种场景和平台的需求。要了解更多格式及其使用方法,请参阅以下文章: 另请参阅 clickhouse-local —— 这是一个便携且功能完整的工具,可在无需 ClickHouse server 的情况下处理本地/远程文件。
最后修改于 2026年6月19日