Описание
JSONEachRow.
Пример использования
Базовый пример
format_json_object_each_row_column_for_object_name.
В качестве значения этой настройки указывается имя столбца, которое используется как JSON-ключ для строки в результирующем объекте.
Результат
test с двумя столбцами:
JSONObjectEachRow и используем настройку format_json_object_each_row_column_for_object_name:
Query
Response
Входные данные
data.json:
Query
Response
Query
Response
Вставка данных
Query
- Любой порядок пар ключ-значение в объекте.
- Пропуск некоторых значений.
Обработка пропущенных значений
DEFAULT expr, ClickHouse использует разные правила подстановки в зависимости от настройки input_format_defaults_for_omitted_fields.
Рассмотрим следующую таблицу:
Query
- Если
input_format_defaults_for_omitted_fields = 0, то значение по умолчанию дляxиaравно0(это значение по умолчанию для типа данныхUInt32). - Если
input_format_defaults_for_omitted_fields = 1, то значение по умолчанию дляxравно0, а дляa—x * 2.
При вставке данных с
input_format_defaults_for_omitted_fields = 1 ClickHouse потребляет больше вычислительных ресурсов по сравнению со вставкой данных с input_format_defaults_for_omitted_fields = 0.Выборка данных
UserActivity в качестве примера:
SELECT * FROM UserActivity FORMAT JSONEachRow возвращает:
JSON.
В строки можно выводить любой набор байтов. Используйте формат
JSONEachRow, если уверены, что данные в таблице можно представить в формате JSON без потери информации.Использование вложенных структур
Nested, вы можете вставлять JSON-данные с той же структурой. Чтобы включить эту возможность, используйте настройку input_format_import_nested_json.
Например, рассмотрим следующую таблицу:
Query
Nested, ClickHouse рассматривает каждый элемент вложенной структуры как отдельный столбец (n.s и n.i в нашей таблице). Вы можете вставить данные следующим образом:
Query
input_format_import_nested_json=1.
Query
Response
Query
Response
Query
Response