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

如何将 JSON 导入 ClickHouse?

ClickHouse 支持广泛的 输入和输出数据格式。其中有多种 JSON 变体,但最常用于数据摄取的是 JSONEachRow。它期望每行有一个 JSON 对象,每个对象通过换行符分隔。

示例

使用 HTTP 接口:

$ echo '{"foo":"bar"}' | curl 'http://localhost:8123/?query=INSERT%20INTO%20test%20FORMAT%20JSONEachRow' --data-binary @-

使用 CLI 接口:

$ echo '{"foo":"bar"}'  | clickhouse-client --query="INSERT INTO test FORMAT JSONEachRow"

您可以考虑使用 集成工具 而不是手动插入数据。

有用的设置

  • input_format_skip_unknown_fields 允许插入 JSON,即使有额外字段不在表模式中(通过丢弃它们)。
  • input_format_import_nested_json 允许将嵌套 JSON 对象插入到 Nested 类型的列中。
备注

设置作为 GET 参数为 HTTP 接口指定,或作为以 -- 为前缀的额外命令行参数为 CLI 接口指定。