跳至主要内容

如何将 JSON 导入 ClickHouse?

·阅读时间:1分钟

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

示例

使用HTTP 接口

$ echo '{"foo":"bar"}' | curl 'https://127.0.0.1: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 对象插入到嵌套类型的列中。
注意

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