| Entrada | Salida | Alias |
|---|---|---|
| ✔ | ✔ |
Descripción
JSONEachRow.
Ejemplo de uso
Ejemplo básico
format_json_object_each_row_column_for_object_name.
El valor de esta SETTING se establece en el nombre de una columna, que se utiliza como clave JSON para una fila en el objeto resultante.
Resultado
test con dos columnas:
JSONObjectEachRow y usemos la SETTING format_json_object_each_row_column_for_object_name:
Query
Response
Entrada
data.json:
Query
Response
Query
Response
Insertar datos
Query
- Cualquier orden de los pares clave-valor dentro del objeto.
- Omitir algunos valores.
Procesamiento de los valores omitidos
DEFAULT expr, ClickHouse aplica reglas de sustitución diferentes según la SETTING input_format_defaults_for_omitted_fields.
Considere la siguiente tabla:
Query
- Si
input_format_defaults_for_omitted_fields = 0, el valor predeterminado dexyaes0(el valor predeterminado del tipo de datoUInt32). - Si
input_format_defaults_for_omitted_fields = 1, el valor predeterminado dexes0, pero el valor predeterminado deaesx * 2.
Al insertar datos con
input_format_defaults_for_omitted_fields = 1, ClickHouse consume más recursos de cómputo que con la inserción usando input_format_defaults_for_omitted_fields = 0.Selección de datos
UserActivity como ejemplo:
SELECT * FROM UserActivity FORMAT JSONEachRow devuelve:
JSON.
En las cadenas se puede generar cualquier secuencia de bytes. Utilice el formato
JSONEachRow si está seguro de que los datos de la tabla pueden representarse como JSON sin perder información.Uso de estructuras anidadas
Nested, puede insertar datos JSON con la misma estructura. Habilite esta función con la SETTING input_format_import_nested_json.
Por ejemplo, considere la siguiente tabla:
Query
Nested, ClickHouse trata cada componente de la estructura anidada como una columna independiente (n.s y n.i para nuestra tabla). Puede insertar datos de la siguiente manera:
Query
input_format_import_nested_json=1.
Query
Response
Query
Response
Query
Response
Configuración de formato
| Ajuste | Descripción | Valor predeterminado | Notas |
|---|---|---|---|
input_format_import_nested_json | asigna datos JSON anidados a tablas anidadas (funciona con el formato JSONEachRow). | false | |
input_format_json_read_bools_as_numbers | permite analizar valores booleanos como números en los formatos de entrada JSON. | true | |
input_format_json_read_bools_as_strings | permitir interpretar valores booleanos como cadenas en formatos de entrada JSON. | true | |
input_format_json_read_numbers_as_strings | permitir interpretar números como cadenas en formatos de entrada JSON. | true | |
input_format_json_read_arrays_as_strings | permitir interpretar arrays JSON como cadenas en formatos de entrada JSON. | true | |
input_format_json_read_objects_as_strings | permitir interpretar objetos JSON como cadenas en formatos de entrada JSON. | true | |
input_format_json_named_tuples_as_objects | analizar las columnas de tuplas con nombre como objetos JSON. | true | |
input_format_json_try_infer_numbers_from_strings | intentar inferir números a partir de campos de texto durante la inferencia de esquemas. | false | |
input_format_json_try_infer_named_tuples_from_objects | intentar inferir tuplas con nombre a partir de objetos JSON durante la inferencia de esquemas. | true | |
input_format_json_infer_incomplete_types_as_strings | usar el tipo String para las claves que contengan solo valores NULL u objetos/arreglos vacíos durante la inferencia de esquemas en formatos de entrada JSON. | true | |
input_format_json_defaults_for_missing_elements_in_named_tuple | insertar valores predeterminados para los elementos faltantes en un objeto JSON al analizar una tuple con nombre. | true | |
input_format_json_ignore_unknown_keys_in_named_tuple | ignorar las claves desconocidas en un objeto JSON para las tuples con nombre. | false | |
input_format_json_compact_allow_variable_number_of_columns | permite un número variable de columnas en el formato JSONCompact/JSONCompactEachRow, ignora las columnas adicionales y usa valores predeterminados para las columnas ausentes. | false | |
input_format_json_throw_on_bad_escape_sequence | lanza una excepción si la cadena JSON contiene una secuencia de escape no válida. Si se desactiva, las secuencias de escape no válidas permanecerán tal cual en los datos. | true | |
input_format_json_empty_as_default | trata los campos vacíos de la entrada JSON como valores predeterminados. | false. | Para las expresiones predeterminadas complejas, también debe habilitarse input_format_defaults_for_omitted_fields. |
output_format_json_quote_64bit_integers | controla si los enteros de 64 bits se escriben entre comillas en el formato de salida JSON. | true | |
output_format_json_quote_64bit_floats | controla si los números de coma flotante de 64 bits se escriben entre comillas en el formato de salida JSON. | false | |
output_format_json_quote_denormals | habilita la salida de ‘+nan’, ‘-nan’, ‘+inf’ y ‘-inf’ en el formato de salida JSON. | false | |
output_format_json_quote_decimals | controla si los decimales se encierran entre comillas en el formato de salida JSON. | false | |
output_format_json_escape_forward_slashes | controla el escape de barras diagonales en las salidas de String del formato de salida JSON. | true | |
output_format_json_named_tuples_as_objects | serializa las columnas de named tuple como objetos JSON. | true | |
output_format_json_array_of_rows | genera un array JSON con todas las filas en formato JSONEachRow(Compact). | false | |
output_format_json_validate_utf8 | habilita la validación de secuencias UTF-8 en los formatos de salida JSON (ten en cuenta que no afecta a los formatos JSON/JSONCompact/JSONColumnsWithMetadata, ya que siempre validan UTF-8). | false |