Перейти к основному содержанию
Перейти к основному содержанию

Как импортировать 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.