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

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