导出 JSON
几乎所有用于导入的 JSON 格式都可以用于导出。最流行的是 JSONEachRow
:
或者我们可以使用 JSONCompactEachRow
来通过跳过列名来节省磁盘空间:
将数据类型重写为字符串
ClickHouse 尊重数据类型,并将根据标准导出 JSON。但在我们需要将所有值编码为字符串的情况下,可以使用 JSONStringsEachRow 格式:
现在,hits
数值列被编码为字符串。作为字符串导出对于所有 JSON* 格式都是支持的,只需探索 JSONStrings\*
和 JSONCompactStrings\*
格式:
与数据一起导出元数据
通用的 JSON 格式,在应用程序中比较流行,将不仅导出结果数据,还会导出列类型和查询统计信息:
JSONCompact 格式将打印相同的元数据,但会使用压缩形式的数据:
考虑使用 JSONStrings
或 JSONCompactStrings
变体将所有值编码为字符串。
紧凑方式导出 JSON 数据和结构
更高效的方式来获取数据及其结构是使用 JSONCompactEachRowWithNamesAndTypes
格式:
这将使用一个紧凑的 JSON 格式,前面带有两行包含列名和类型的头。此格式可以用于将数据导入到另一个 ClickHouse 实例(或其他应用程序)中。
将 JSON 导出到文件
要将导出的 JSON 数据保存到文件中,我们可以使用 INTO OUTFILE 子句:
ClickHouse 只花了 2 秒就将近 3700 万条记录导出到 JSON 文件中。我们还可以使用 COMPRESSION
子句来实时启用压缩:
这需要更多时间来完成,但生成了一个更小的压缩文件: