跳到主要内容
跳到主要内容

导出 JSON

几乎所有用于导入的 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 子句来实时启用压缩:

这需要更多时间来完成,但生成了一个更小的压缩文件: