| Entrada | Saída | Alias |
|---|---|---|
| ✔ | ✔ |
Descrição
JSONEachRow.
Exemplo de uso
Exemplo básico
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
test com duas colunas:
JSONObjectEachRow e usar a configuração format_json_object_each_row_column_for_object_name:
Query
Response
Entrada
data.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
DEFAULT 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
UserActivity 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
Nested, 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
Configurações de formato
| Configuração | Descrição | Padrão | Observações |
|---|---|---|---|
input_format_import_nested_json | mapeia dados JSON aninhados para tabelas aninhadas (funciona com o formato JSONEachRow). | false | |
input_format_json_read_bools_as_numbers | permite analisar valores booleanos como números em formatos de entrada JSON. | true | |
input_format_json_read_bools_as_strings | permite interpretar bools como strings em formatos de entrada JSON. | true | |
input_format_json_read_numbers_as_strings | permite interpretar números como strings em formatos de entrada JSON. | true | |
input_format_json_read_arrays_as_strings | permite interpretar arrays JSON como strings em formatos de entrada JSON. | true | |
input_format_json_read_objects_as_strings | permite interpretar objetos JSON como strings em formatos de entrada JSON. | true | |
input_format_json_named_tuples_as_objects | analisa colunas de tupla nomeada como objetos JSON. | true | |
input_format_json_try_infer_numbers_from_strings | tenta inferir números a partir de campos string durante a inferência de esquema. | false | |
input_format_json_try_infer_named_tuples_from_objects | tenta inferir tuplas nomeadas a partir de objetos JSON durante a inferência de esquema. | true | |
input_format_json_infer_incomplete_types_as_strings | usar o tipo String para chaves que contêm apenas NULLs ou objetos/arrays vazios durante a inferência de esquema em formatos de entrada JSON. | true | |
input_format_json_defaults_for_missing_elements_in_named_tuple | inserir valores padrão para elementos ausentes em objeto JSON durante a análise de tupla nomeada. | true | |
input_format_json_ignore_unknown_keys_in_named_tuple | ignorar chaves desconhecidas em objeto JSON para tuplas nomeadas. | false | |
input_format_json_compact_allow_variable_number_of_columns | permite um número variável de colunas no formato JSONCompact/JSONCompactEachRow, ignora colunas extras e usa valores padrão para colunas ausentes. | false | |
input_format_json_throw_on_bad_escape_sequence | gera uma exceção se a string JSON contiver uma sequência de escape inválida. Se desabilitado, as sequências de escape inválidas permanecerão como estão nos dados. | true | |
input_format_json_empty_as_default | trata campos vazios na entrada JSON como valores padrão. | false. | Para expressões padrão complexas, input_format_defaults_for_omitted_fields também precisa estar habilitado. |
output_format_json_quote_64bit_integers | controla o uso de aspas em inteiros de 64 bits no formato de saída JSON. | true | |
output_format_json_quote_64bit_floats | controla o uso de aspas em números de ponto flutuante de 64 bits no formato de saída JSON. | false | |
output_format_json_quote_denormals | habilita as saídas ‘+nan’, ‘-nan’, ‘+inf’ e ‘-inf’ no formato de saída JSON. | false | |
output_format_json_quote_decimals | controla o uso de aspas em valores decimais no formato de saída JSON. | false | |
output_format_json_escape_forward_slashes | controla o escape de barras normais em saídas de String no formato de saída JSON. | true | |
output_format_json_named_tuples_as_objects | serializa colunas de named tuple como objetos JSON. | true | |
output_format_json_array_of_rows | gera um array JSON de todas as linhas no formato JSONEachRow(Compact). | false | |
output_format_json_validate_utf8 | habilita a validação de sequências UTF-8 nos formatos de saída JSON (observe que isso não afeta os formatos JSON/JSONCompact/JSONColumnsWithMetadata, que sempre validam UTF-8). | false |