跳转到主要内容
几乎所有可用于导入的 JSON 格式同样也可用于导出。最常用的是 JSONEachRow
或者,我们也可以使用 JSONCompactEachRow,通过省略列名来节省磁盘空间:

将数据类型统一转为字符串

ClickHouse 会遵循数据类型,并按标准导出 JSON。但如果需要将所有值都编码为字符串,可以使用 JSONStringsEachRow 格式:
现在,hits 数值列会被编码为字符串。所有 JSON* 格式都支持以字符串形式导出;只需查看 JSONStrings\*JSONCompactStrings\* 格式:

连同数据一起导出元数据

应用中常见的通用 JSON 格式不仅会导出结果数据,还会导出列类型和查询统计信息:
JSONCompact 格式会输出相同的元数据,但数据本身会采用更紧凑的形式:
可以考虑使用 JSONStringsJSONCompactStrings 格式变体,将所有值都编码为字符串。

以紧凑方式导出 JSON 数据及其结构

一种更高效的方式是使用 JSONCompactEachRowWithNamesAndTypes 格式,同时包含数据及其结构:
这将使用一种紧凑的 JSON 格式,并在开头添加两行表头,分别包含列名和类型。随后即可使用这种格式将数据摄取到另一个 ClickHouse 实例 (或其他应用) 中。

将 JSON 导出到文件

若要将导出的 JSON 数据保存到文件中,可使用 INTO OUTFILE 子句:
ClickHouse 仅用 2 秒就将近 3700 万条记录导出到一个 JSON 文件中。我们也可以使用 COMPRESSION 子句,在导出时即时启用压缩:
完成此操作耗时更长,但生成的压缩文件会小得多:
最后修改于 2026年6月29日