| Входной | Выходной | Псевдоним |
|---|---|---|
| ✔ | ✔ |
Описание
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
Настройки формата
| Настройка | Описание | По умолчанию | Примечания |
|---|---|---|---|
input_format_import_nested_json | сопоставляет вложенные данные JSON с вложенными таблицами (работает для формата JSONEachRow). | false | |
input_format_json_read_bools_as_numbers | разрешает разбирать логические значения как числа во входных форматах JSON. | true | |
input_format_json_read_bools_as_strings | позволяет разбирать логические значения как строки в форматах ввода JSON. | true | |
input_format_json_read_numbers_as_strings | позволяет разбирать числа как строки в форматах ввода JSON. | true | |
input_format_json_read_arrays_as_strings | позволяет разбирать JSON-массивы как строки в форматах ввода JSON. | true | |
input_format_json_read_objects_as_strings | позволяет разбирать объекты JSON как строки в форматах ввода JSON. | true | |
input_format_json_named_tuples_as_objects | разбирать столбцы именованного кортежа как объекты JSON. | true | |
input_format_json_try_infer_numbers_from_strings | пытаться определять числа в строковых полях при выводе схемы. | false | |
input_format_json_try_infer_named_tuples_from_objects | пытаться определять именованный кортеж по объектам JSON при выводе схемы. | true | |
input_format_json_infer_incomplete_types_as_strings | использовать тип String для ключей, которые при определении схемы в JSON input formats содержат только значения NULL или пустые объекты/массивы. | true | |
input_format_json_defaults_for_missing_elements_in_named_tuple | вставлять значения по умолчанию для отсутствующих элементов в объекте JSON при разборе именованного Tuple. | true | |
input_format_json_ignore_unknown_keys_in_named_tuple | игнорировать неизвестные ключи в объекте JSON для именованных Tuple. | false | |
input_format_json_compact_allow_variable_number_of_columns | разрешить переменное число столбцов в формате JSONCompact/JSONCompactEachRow, игнорировать лишние столбцы и использовать значения по умолчанию для отсутствующих столбцов. | false | |
input_format_json_throw_on_bad_escape_sequence | сгенерировать исключение, если строка JSON содержит некорректную escape-последовательность. Если этот параметр отключён, некорректные escape-последовательности останутся в данных как есть. | true | |
input_format_json_empty_as_default | считать пустые поля во входных JSON-данных значениями по умолчанию. | false. | Для сложных выражений по умолчанию также должен быть включен параметр input_format_defaults_for_omitted_fields. |
output_format_json_quote_64bit_integers | управляет заключением 64-битных целых чисел в кавычки в формате вывода JSON. | true | |
output_format_json_quote_64bit_floats | управляет заключением 64-битных чисел с плавающей точкой в кавычки в формате вывода JSON. | false | |
output_format_json_quote_denormals | включает вывод значений ‘+nan’, ‘-nan’, ‘+inf’, ‘-inf’ в формате вывода JSON. | false | |
output_format_json_quote_decimals | управляет заключением десятичных чисел в кавычки в формате вывода JSON. | false | |
output_format_json_escape_forward_slashes | управляет экранированием прямых слешей в строковых значениях в формате вывода JSON. | true | |
output_format_json_named_tuples_as_objects | сериализует столбцы именованных кортежей как объекты JSON. | true | |
output_format_json_array_of_rows | выводит JSON-массив всех строк в формате JSONEachRow(Compact). | false | |
output_format_json_validate_utf8 | включает проверку последовательностей UTF-8 в выходных форматах JSON (обратите внимание, что это не влияет на форматы JSON/JSONCompact/JSONColumnsWithMetadata — в них utf8 всегда проверяется). | false |