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

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