Descripción
En este formato, todos los datos se representan como un único objeto JSON, y cada fila se representa como un campo independiente de ese objeto, de forma similar al formatoJSONEachRow.
Ejemplo de uso
Ejemplo básico
Dado el siguiente JSON: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
Supongamos que tenemos la tablatest con dos columnas:
JSONObjectEachRow y usemos la SETTING format_json_object_each_row_column_for_object_name:
Query
Response
Entrada
Supongamos que hemos guardado la salida del ejemplo anterior en un archivo llamadodata.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
ClickHouse sustituye los valores omitidos por los valores predeterminados de los tipos de datos correspondientes. Si se especificaDEFAULT 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
Considere la tablaUserActivity 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
Si tiene una tabla con columnas del tipo de datoNested, 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