导出 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
子句来动态启用压缩:
虽然实现所需时间更多,但会生成更小的压缩文件: