Descrição
Neste formato, todos os dados são representados como um único objeto JSON, com cada linha representada como um campo separado desse objeto, de maneira semelhante ao formatoJSONEachRow.
Exemplo de uso
Exemplo básico
Dado o seguinte JSON:format_json_object_each_row_column_for_object_name.
O valor dessa configuração é definido como o nome de uma coluna, usada como chave JSON de uma linha no objeto resultante.
Saída
Digamos que temos a tabelatest com duas colunas:
JSONObjectEachRow e usar a configuração format_json_object_each_row_column_for_object_name:
Query
Response
Entrada
Digamos que armazenamos a saída do exemplo anterior em um arquivo chamadodata.json:
Query
Response
Query
Response
Inserção de dados
Query
- Qualquer ordem dos pares chave-valor no objeto.
- Omitir alguns valores.
Processamento de valores omitidos
O ClickHouse substitui os valores omitidos pelos valores padrão dos tipos de dados correspondentes. SeDEFAULT expr for especificado, o ClickHouse usará regras de substituição diferentes, dependendo da configuração input_format_defaults_for_omitted_fields.
Considere a tabela a seguir:
Query
- Se
input_format_defaults_for_omitted_fields = 0, o valor padrão dexeaé0(o valor padrão do tipo de dadoUInt32). - Se
input_format_defaults_for_omitted_fields = 1, o valor padrão dexé0, mas o valor padrão deaéx * 2.
Ao inserir dados com
input_format_defaults_for_omitted_fields = 1, o ClickHouse consome mais recursos computacionais do que na inserção com input_format_defaults_for_omitted_fields = 0.Selecionando dados
Considere a tabelaUserActivity como um exemplo:
SELECT * FROM UserActivity FORMAT JSONEachRow retorna:
JSON.
Qualquer conjunto de bytes pode ser emitido nas strings. Use o formato
JSONEachRow se tiver certeza de que os dados da tabela podem ser formatados como JSON sem perda de informação.Uso de estruturas aninhadas
Se você tiver uma tabela com colunas do tipo de dadoNested, poderá inserir dados JSON com a mesma estrutura. Ative esse recurso com a configuração input_format_import_nested_json.
Por exemplo, considere a seguinte tabela:
Query
Nested, o ClickHouse trata cada componente da estrutura aninhada como uma coluna separada (n.s e n.i na nossa tabela). Você pode inserir os dados da seguinte forma:
Query
input_format_import_nested_json=1.
Query
Response
Query
Response
Query
Response