> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de formato input_format_*

> Configurações de formato do ClickHouse no grupo gerado de input_format_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versão", "Valor padrão", "Comentário"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        Histórico de versões
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Tipo</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Padrão</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Pode ser alterado sem reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Essas configurações são geradas automaticamente a partir do [código-fonte](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/FormatFactorySettings.h).

<div id="input_format_allow_errors_num">
  ## input\_format\_allow\_errors\_num
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Define o número máximo de erros aceitáveis ao ler formatos de texto (CSV, TSV etc.).

O valor padrão é 0.

Sempre use em conjunto com `input_format_allow_errors_ratio`.

Se ocorrer um erro durante a leitura de linhas, mas o contador de erros ainda estiver abaixo de `input_format_allow_errors_num`, o ClickHouse ignora a linha e passa para a próxima.

Se ambos `input_format_allow_errors_num` e `input_format_allow_errors_ratio` forem excedidos, o ClickHouse lança uma exceção.

<div id="input_format_allow_errors_ratio">
  ## input\_format\_allow\_errors\_ratio
</div>

<SettingsInfoBlock type="Float" default_value="0" />

Define a porcentagem máxima de erros permitida ao ler formatos de texto (CSV, TSV etc.).
A porcentagem de erros é definida como um número de ponto flutuante entre 0 e 1.

O valor padrão é 0.

Sempre use em conjunto com `input_format_allow_errors_num`.

Se ocorrer um erro durante a leitura de linhas, mas o contador de erros ainda estiver abaixo de `input_format_allow_errors_ratio`, o ClickHouse ignora a linha e passa para a próxima.

Se tanto `input_format_allow_errors_num` quanto `input_format_allow_errors_ratio` forem excedidos, o ClickHouse lança uma exceção.

<div id="input_format_allow_seeks">
  ## input\_format\_allow\_seeks
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite reposicionamentos (ou leituras por intervalo) ao ler os formatos de entrada ORC, Parquet e Arrow.
Quando habilitado e a origem oferece suporte a isso (por exemplo, arquivo local, S3, HTTP com suporte a intervalos e tamanho conhecido),
o ClickHouse pode ler apenas os intervalos de bytes necessários e usar menos memória.
Quando desabilitado, ou quando a origem não oferece suporte a reposicionamentos (por exemplo, sem tamanho de arquivo ou com fluxo sem suporte a seek),
alguns leitores podem recorrer ao carregamento do arquivo inteiro na memória.
Habilitado por padrão.

<div id="input_format_arrow_allow_missing_columns">
  ## input\_format\_arrow\_allow\_missing\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permitir colunas ausentes ao ler formatos de entrada do Arrow

<div id="input_format_arrow_case_insensitive_column_matching">
  ## input\_format\_arrow\_case\_insensitive\_column\_matching
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora maiúsculas e minúsculas ao corresponder colunas Arrow com colunas CH.

<div id="input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference">
  ## input\_format\_arrow\_skip\_columns\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignorar colunas com tipos não suportados durante a inferência de esquema do formato Arrow

<div id="input_format_arrow_use_native_reader">
  ## input\_format\_arrow\_use\_native\_reader
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Use o leitor nativo do ClickHouse para os formatos Arrow e ArrowStream em vez do baseado na biblioteca Apache Arrow.

<div id="input_format_avro_allow_missing_fields">
  ## input\_format\_avro\_allow\_missing\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Para o formato Avro/AvroConfluent: quando o campo não for encontrado no esquema, use o valor padrão em vez de gerar um erro

<div id="input_format_avro_null_as_default">
  ## input\_format\_avro\_null\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Para o formato Avro/AvroConfluent: insere o valor padrão no caso de null em coluna não Nullable

<div id="input_format_binary_decode_types_in_binary_format">
  ## input\_format\_binary\_decode\_types\_in\_binary\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ler os tipos de dados em formato binário, em vez de nomes de tipos, no formato de entrada RowBinaryWithNamesAndTypes

<div id="input_format_binary_max_type_complexity">
  ## input\_format\_binary\_max\_type\_complexity
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

Número máximo de nós de tipo ao decodificar tipos binários (não a profundidade, mas a contagem total). `Map(String, UInt32)` = 3 nós. Protege contra entradas maliciosas. 0 = ilimitado.

<div id="input_format_binary_read_json_as_string">
  ## input\_format\_binary\_read\_json\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Lê valores do tipo de dado [JSON](/pt-BR/reference/data-types/newjson) como valores [String](/pt-BR/reference/data-types/string) JSON no formato de entrada RowBinary.

<div id="input_format_bson_skip_fields_with_unsupported_types_in_schema_inference">
  ## input\_format\_bson\_skip\_fields\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora campos com tipos não suportados durante a inferência de esquema do formato BSON.

<div id="input_format_capn_proto_skip_fields_with_unsupported_types_in_schema_inference">
  ## input\_format\_capn\_proto\_skip\_fields\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora colunas com tipos não suportados durante a inferência de esquema do formato CapnProto

<div id="input_format_column_name_matching_mode">
  ## input\_format\_column\_name\_matching\_mode
</div>

<SettingsInfoBlock type="InputFormatColumnMatchingCaseSensitivity" default_value="auto" />

Define o modo de correspondência de nomes de colunas ao fazer a ingestão de dados por vários formatos (incluindo, entre outros, JSONEachRow, CSVWithNames, JSONColumns, BSONEachRow e RowBinaryWithNames).
Modos compatíveis:

* match\_case: faz a correspondência com distinção entre maiúsculas e minúsculas
  * ignore\_case: faz a correspondência sem distinção entre maiúsculas e minúsculas
  * auto: primeiro tenta fazer a correspondência com distinção entre maiúsculas e minúsculas; se falhar, tenta fazer a correspondência sem distinção entre maiúsculas e minúsculas.

<div id="input_format_connection_handling">
  ## input\_format\_connection\_handling
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Quando esta opção está ativada, se a conexão for fechada inesperadamente, quaisquer dados restantes no buffer serão analisados e processados em vez de serem tratados como erro

<Note>
  Ativar esta opção desabilita a análise paralela e torna a desduplicação impossível
</Note>

<div id="input_format_csv_allow_cr_end_of_line">
  ## input\_format\_csv\_allow\_cr\_end\_of\_line
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Se for definido como true, \r será permitido no final da linha sem ser seguido por

<div id="input_format_csv_allow_variable_number_of_columns">
  ## input\_format\_csv\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora colunas extras na entrada CSV (se o arquivo tiver mais colunas do que o esperado) e trata campos ausentes na entrada CSV como valores padrão

<div id="input_format_csv_allow_whitespace_or_tab_as_delimiter">
  ## input\_format\_csv\_allow\_whitespace\_or\_tab\_as\_delimiter
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Permite usar espaços e tabulações(\t) como delimitadores de campo em strings CSV

<div id="input_format_csv_arrays_as_nested_csv">
  ## input\_format\_csv\_arrays\_as\_nested\_csv
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ao ler `Array` de CSV, espera-se que seus elementos tenham sido serializados em CSV aninhado e depois colocados em uma string. Exemplo: "\[""Hello"", ""world"", ""42"""" TV""]". Os colchetes ao redor do array podem ser omitidos.

<div id="input_format_csv_deserialize_separate_columns_into_tuple">
  ## input\_format\_csv\_deserialize\_separate\_columns\_into\_tuple
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Se definido como true, colunas separadas gravadas no formato CSV podem ser desserializadas para uma coluna Tuple.

<div id="input_format_csv_detect_header">
  ## input\_format\_csv\_detect\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Detecta automaticamente o cabeçalho com nomes e tipos no formato CSV

<div id="input_format_csv_empty_as_default">
  ## input\_format\_csv\_empty\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Considera campos vazios na entrada CSV como valores padrão.

<div id="input_format_csv_enum_as_number">
  ## input\_format\_csv\_enum\_as\_number
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Trata os valores enum inseridos em formatos CSV como índices do enum

<div id="input_format_csv_missing_nullable_as_empty_string">
  ## input\_format\_csv\_missing\_nullable\_as\_empty\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Controla como `Nullable(String)` é lido a partir de um valor ausente no CSV. Um valor ausente é um espaço vazio entre/antes/depois de vírgulas, sem estar entre aspas. Se essa configuração estiver ativada, independentemente do valor de `input_format_csv_empty_as_default`, o valor ausente de `Nullable(String)` será interpretado como uma `String` vazia, não como NULL.

<div id="input_format_csv_skip_first_lines">
  ## input\_format\_csv\_skip\_first\_lines
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Ignora o número especificado de linhas no início dos dados no formato CSV

<div id="input_format_csv_skip_trailing_empty_lines">
  ## input\_format\_csv\_skip\_trailing\_empty\_lines
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora linhas vazias no final no formato CSV

<div id="input_format_csv_trim_whitespaces">
  ## input\_format\_csv\_trim\_whitespaces
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Remove espaços e tabulações (\t) no início e no fim de strings CSV

<div id="input_format_csv_try_infer_numbers_from_strings">
  ## input\_format\_csv\_try\_infer\_numbers\_from\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Se estiver habilitada, durante a inferência de esquema, o ClickHouse tentará inferir números a partir de campos do tipo string.
Isso pode ser útil se os dados CSV contiverem números UInt64 entre aspas.

Desabilitada por padrão.

<div id="input_format_csv_try_infer_strings_from_quoted_tuples">
  ## input\_format\_csv\_try\_infer\_strings\_from\_quoted\_tuples
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Interpreta tuplas entre aspas nos dados de entrada como um valor do tipo String.

<div id="input_format_csv_use_best_effort_in_schema_inference">
  ## input\_format\_csv\_use\_best\_effort\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Usa alguns ajustes e heurísticas para inferir o esquema no formato CSV

<div id="input_format_csv_use_default_on_bad_values">
  ## input\_format\_csv\_use\_default\_on\_bad\_values
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Permite definir o valor padrão da coluna quando a desserialização do campo CSV falhar devido a um valor inválido

<div id="input_format_custom_allow_variable_number_of_columns">
  ## input\_format\_custom\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora colunas extras na entrada CustomSeparated (se o arquivo tiver mais colunas do que o esperado) e trata campos ausentes na entrada CustomSeparated como valores padrão

<div id="input_format_custom_detect_header">
  ## input\_format\_custom\_detect\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Detecta automaticamente o cabeçalho com nomes e tipos no formato CustomSeparated

<div id="input_format_custom_skip_trailing_empty_lines">
  ## input\_format\_custom\_skip\_trailing\_empty\_lines
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora linhas vazias no final no formato CustomSeparated

<div id="input_format_defaults_for_omitted_fields">
  ## input\_format\_defaults\_for\_omitted\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ao executar consultas `INSERT`, substitua os valores omitidos das colunas de entrada pelos valores padrão das respectivas colunas. Esta opção se aplica aos formatos [JSONEachRow](/pt-BR/reference/formats/JSON/JSONEachRow) (e outros formatos JSON), [CSV](/pt-BR/reference/formats/CSV/CSV), [TabSeparated](/pt-BR/reference/formats/TabSeparated/TabSeparated), [TSKV](/pt-BR/reference/formats/TabSeparated/TSKV), [Parquet](/pt-BR/reference/formats/Parquet/Parquet), [Arrow](/pt-BR/reference/formats/Arrow/Arrow), [Avro](/pt-BR/reference/formats/Avro/Avro), [ORC](/pt-BR/reference/formats/ORC), [Native](/pt-BR/reference/formats/Native) e aos formatos com os sufixos `WithNames`/`WithNamesAndTypes`.

<Note>
  Quando esta opção está habilitada, metadados estendidos da tabela são enviados do servidor para o cliente. Isso consome recursos computacionais adicionais no servidor e pode reduzir o desempenho.
</Note>

Valores possíveis:

* 0 — Desabilitado.
* 1 — Habilitado.

<div id="input_format_force_null_for_omitted_fields">
  ## input\_format\_force\_null\_for\_omitted\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Força a inicialização de campos omitidos com valores NULL

<div id="input_format_geojson_unsupported_geometry_handling">
  ## input\_format\_geojson\_unsupported\_geometry\_handling
</div>

<SettingsInfoBlock type="GeoJSONUnsupportedGeometryHandling" default_value="throw" />

Controla o que acontece quando um tipo de geometria `GeoJSON` válido que não pode ser representado no tipo `Geometry` do ClickHouse (como `GeometryCollection` ou `MultiPoint`) precisa ser armazenado na coluna `geometry` durante a leitura de dados de entrada `GeoJSON`.

Valores possíveis:

* `'throw'` (padrão) — gera uma exceção.
* `'null'` — insere um valor `NULL` na coluna `geometry` e continua o parsing.

Isso se aplica somente quando a coluna `geometry` é materializada. Quando ela não é uma coluna de saída solicitada, essa geometria é validada para verificar se está bem formada, mas não aciona esse tratamento.

<div id="input_format_hive_text_allow_variable_number_of_columns">
  ## input\_format\_hive\_text\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ignora colunas extras na entrada no formato Hive Text (se o arquivo tiver mais colunas do que o esperado) e trata campos ausentes na entrada no formato Hive Text como valores padrão

<div id="input_format_hive_text_collection_items_delimiter">
  ## input\_format\_hive\_text\_collection\_items\_delimiter
</div>

<SettingsInfoBlock type="Char" default_value="" />

Delimitador entre os itens de coleção (array ou map) no Hive Text File

<div id="input_format_hive_text_fields_delimiter">
  ## input\_format\_hive\_text\_fields\_delimiter
</div>

<SettingsInfoBlock type="Char" default_value="" />

Delimitador entre os campos em Hive Text File

<div id="input_format_hive_text_map_keys_delimiter">
  ## input\_format\_hive\_text\_map\_keys\_delimiter
</div>

<SettingsInfoBlock type="Char" default_value="" />

Delimitador entre um par de chave/valor de map no Hive Text File

<div id="input_format_import_nested_json">
  ## input\_format\_import\_nested\_json
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ativa ou desativa a inserção de dados JSON com objetos aninhados.

Formatos suportados:

* [JSONEachRow](/pt-BR/reference/formats/JSON/JSONEachRow)

Valores possíveis:

* 0 — Desativado.
* 1 — Ativado.

Veja também:

* [Uso de estruturas Nested](/pt-BR/guides/clickhouse/data-formats/json/formats#accessing-nested-json-objects) com o formato `JSONEachRow`.

<div id="input_format_ipv4_default_on_conversion_error">
  ## input\_format\_ipv4\_default\_on\_conversion\_error
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

A desserialização de IPv4 usará valores padrão em vez de gerar uma exceção em caso de erro de conversão.

Desabilitado por padrão.

<div id="input_format_ipv6_default_on_conversion_error">
  ## input\_format\_ipv6\_default\_on\_conversion\_error
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

A desserialização de IPV6 usará valores padrão em vez de gerar uma exceção em caso de erro de conversão.

Desativado por padrão.

<div id="input_format_json_compact_allow_variable_number_of_columns">
  ## input\_format\_json\_compact\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Permite um número variável de colunas por linha nos formatos de entrada JSONCompact/JSONCompactEachRow.
Ignora colunas extras em linhas com mais colunas do que o esperado e trata colunas ausentes como valores padrão.

Desativado por padrão.

<div id="input_format_json_defaults_for_missing_elements_in_named_tuple">
  ## input\_format\_json\_defaults\_for\_missing\_elements\_in\_named\_tuple
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Insere valores padrão para elementos ausentes em objetos JSON ao analisar tuplas nomeadas.
Essa configuração funciona somente quando a configuração `input_format_json_named_tuples_as_objects` está habilitada.

Habilitado por padrão.

<div id="input_format_json_empty_as_default">
  ## input\_format\_json\_empty\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Quando habilitada, substitui campos de entrada vazios em JSON por valores padrão. Para expressões padrão complexas, `input_format_defaults_for_omitted_fields` também deve estar habilitada.

Valores possíveis:

* 0 — Desabilitado.
* 1 — Habilitado.

<div id="input_format_json_ignore_unknown_keys_in_named_tuple">
  ## input\_format\_json\_ignore\_unknown\_keys\_in\_named\_tuple
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ignora chaves desconhecidas em objetos JSON para tuplas nomeadas.

Habilitado por padrão.

<div id="input_format_json_ignore_unnecessary_fields">
  ## input\_format\_json\_ignore\_unnecessary\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ignora campos desnecessários sem analisá-los. Ao habilitar esta opção, exceções podem não ser geradas para strings JSON com formato inválido ou campos duplicados

<div id="input_format_json_infer_array_of_dynamic_from_array_of_different_types">
  ## input\_format\_json\_infer\_array\_of\_dynamic\_from\_array\_of\_different\_types
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Se estiver habilitado, durante a inferência de esquema o ClickHouse usará o tipo Array(Dynamic) para arrays JSON com valores de diferentes tipos de dados.

Exemplo:

```sql theme={null}
SET input_format_json_infer_array_of_dynamic_from_array_of_different_types=1;
DESC format(JSONEachRow, '{"a" : [42, "hello", [1, 2, 3]]}');
```

```response theme={null}
┌─name─┬─type───────────┐
│ a    │ Array(Dynamic) │
└──────┴────────────────┘
```

```sql theme={null}
SET input_format_json_infer_array_of_dynamic_from_array_of_different_types=0;
DESC format(JSONEachRow, '{"a" : [42, "hello", [1, 2, 3]]}');
```

```response theme={null}
┌─name─┬─type─────────────────────────────────────────────────────────────┐
│ a    │ Tuple(Nullable(Int64), Nullable(String), Array(Nullable(Int64))) │
└──────┴──────────────────────────────────────────────────────────────────┘
```

Habilitado por padrão.

<div id="input_format_json_infer_incomplete_types_as_strings">
  ## input\_format\_json\_infer\_incomplete\_types\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite usar o tipo String para chaves em JSON que contenham apenas `Null`/`{}`/`[]` na amostra de dados durante a inferência de esquema.
Nos formatos JSON, qualquer valor pode ser lido como String, e isso permite evitar erros como `Cannot determine type for column 'column_name' by first 25000 rows of data, most likely this column contains only Nulls or empty Arrays/Maps` durante a inferência de esquema,
usando o tipo String para chaves com tipos desconhecidos.

Exemplo:

```sql theme={null}
SET input_format_json_infer_incomplete_types_as_strings = 1, input_format_json_try_infer_named_tuples_from_objects = 1;
DESCRIBE format(JSONEachRow, '{"obj" : {"a" : [1,2,3], "b" : "hello", "c" : null, "d" : {}, "e" : []}}');
SELECT * FROM format(JSONEachRow, '{"obj" : {"a" : [1,2,3], "b" : "hello", "c" : null, "d" : {}, "e" : []}}');
```

Resultado:

```
┌─name─┬─type───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ obj  │ Tuple(a Array(Nullable(Int64)), b Nullable(String), c Nullable(String), d Nullable(String), e Array(Nullable(String))) │              │                    │         │                  │                │
└──────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘

┌─obj────────────────────────────┐
│ ([1,2,3],'hello',NULL,'{}',[]) │
└────────────────────────────────┘
```

Ativado por padrão.

<div id="input_format_json_map_as_array_of_tuples">
  ## input\_format\_json\_map\_as\_array\_of\_tuples
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Desserializa colunas do tipo map como arrays JSON de tuplas.

Desativado por padrão.

<div id="input_format_json_max_depth">
  ## input\_format\_json\_max\_depth
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

Profundidade máxima de um campo em JSON. Não é um limite estrito e não precisa ser aplicado exatamente.

<div id="input_format_json_named_tuples_as_objects">
  ## input\_format\_json\_named\_tuples\_as\_objects
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Interpreta colunas de tuplas nomeadas como objetos JSON.

Ativado por padrão.

<div id="input_format_json_read_arrays_as_strings">
  ## input\_format\_json\_read\_arrays\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite interpretar arrays JSON como strings em formatos de entrada JSON.

Exemplo:

```sql theme={null}
SET input_format_json_read_arrays_as_strings = 1;
SELECT arr, toTypeName(arr), JSONExtractArrayRaw(arr)[3] from format(JSONEachRow, 'arr String', '{"arr" : [1, "Hello", [1,2,3]]}');
```

Resultado:

```
┌─arr───────────────────┬─toTypeName(arr)─┬─arrayElement(JSONExtractArrayRaw(arr), 3)─┐
│ [1, "Hello", [1,2,3]] │ String          │ [1,2,3]                                   │
└───────────────────────┴─────────────────┴───────────────────────────────────────────┘
```

Ativado por padrão.

<div id="input_format_json_read_bools_as_numbers">
  ## input\_format\_json\_read\_bools\_as\_numbers
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite interpretar valores Bool como números em formatos de entrada JSON.

Ativado por padrão.

<div id="input_format_json_read_bools_as_strings">
  ## input\_format\_json\_read\_bools\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite analisar valores Bool como String em formatos de entrada JSON.

Ativado por padrão.

<div id="input_format_json_read_numbers_as_strings">
  ## input\_format\_json\_read\_numbers\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite interpretar números como strings em formatos de entrada JSON.

Ativado por padrão.

<div id="input_format_json_read_objects_as_strings">
  ## input\_format\_json\_read\_objects\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite analisar objetos JSON como strings em formatos de entrada JSON.

Exemplo:

```sql theme={null}
SET input_format_json_read_objects_as_strings = 1;
CREATE TABLE test (id UInt64, obj String, date Date) ENGINE=Memory();
INSERT INTO test FORMAT JSONEachRow {"id" : 1, "obj" : {"a" : 1, "b" : "Hello"}, "date" : "2020-01-01"};
SELECT * FROM test;
```

Resultado:

```
┌─id─┬─obj──────────────────────┬───────date─┐
│  1 │ {"a" : 1, "b" : "Hello"} │ 2020-01-01 │
└────┴──────────────────────────┴────────────┘
```

Habilitado por padrão.

<div id="input_format_json_throw_on_bad_escape_sequence">
  ## input\_format\_json\_throw\_on\_bad\_escape\_sequence
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Gera uma exceção se a string JSON contiver uma sequência de escape inválida nos formatos de entrada JSON. Se estiver desabilitada, as sequências de escape inválidas permanecerão como estão nos dados.

Ativado por padrão.

<div id="input_format_json_try_infer_named_tuples_from_objects">
  ## input\_format\_json\_try\_infer\_named\_tuples\_from\_objects
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Se estiver habilitada, durante a inferência de esquema o ClickHouse tentará inferir uma Tuple nomeada a partir de objetos JSON.
A Tuple nomeada resultante conterá todos os elementos de todos os objetos JSON correspondentes nos dados de exemplo.

Exemplo:

```sql theme={null}
SET input_format_json_try_infer_named_tuples_from_objects = 1;
DESC format(JSONEachRow, '{"obj" : {"a" : 42, "b" : "Hello"}}, {"obj" : {"a" : 43, "c" : [1, 2, 3]}}, {"obj" : {"d" : {"e" : 42}}}')
```

Resultado:

```
┌─name─┬─type───────────────────────────────────────────────────────────────────────────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ obj  │ Tuple(a Nullable(Int64), b Nullable(String), c Array(Nullable(Int64)), d Tuple(e Nullable(Int64))) │              │                    │         │                  │                │
└──────┴────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```

Habilitado por padrão.

<div id="input_format_json_try_infer_numbers_from_strings">
  ## input\_format\_json\_try\_infer\_numbers\_from\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Se estiver habilitado, durante a inferência de esquema, o ClickHouse tentará inferir números a partir de campos do tipo string.
Isso pode ser útil se os dados JSON contiverem números UInt64 entre aspas.

Desativado por padrão.

<div id="input_format_json_use_string_type_for_ambiguous_paths_in_named_tuples_inference_from_objects">
  ## input\_format\_json\_use\_string\_type\_for\_ambiguous\_paths\_in\_named\_tuples\_inference\_from\_objects
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Use o tipo String em vez de uma exceção no caso de caminhos ambíguos em objetos JSON durante a inferência de tuplas nomeadas

<div id="input_format_json_validate_types_from_metadata">
  ## input\_format\_json\_validate\_types\_from\_metadata
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Para os formatos de entrada JSON/JSONCompact/JSONColumnsWithMetadata, se essa configuração estiver definida como 1,
os tipos presentes nos metadados dos dados de entrada serão comparados com os tipos das colunas correspondentes da tabela.

Ativado por padrão.

<div id="input_format_max_block_size_bytes">
  ## input\_format\_max\_block\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Limita, em bytes, o tamanho dos blocos formados durante o parsing de dados em formatos de entrada. Usado em formatos de entrada baseados em linhas quando o bloco é formado no lado do ClickHouse.
0 significa que não há limite em bytes.

<div id="input_format_max_block_wait_ms">
  ## input\_format\_max\_block\_wait\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Limita o tempo máximo, em milissegundos, de espera antes da emissão de um bloco durante o parsing em formatos de entrada baseados em linhas. 0 significa que não há limite.

<Note>
  Esta opção só funciona se `input_format_connection_handling` estiver habilitado. Definir um valor também desabilita o parsing paralelo e impossibilita a desduplicação.
</Note>

<Note>
  Para inserções em streaming, você também deve definir `min_insert_block_size_rows=0` e `min_insert_block_size_bytes=0`. Caso contrário, os blocos analisados ainda podem ser acumulados na memória pelo estágio de squashing de blocos até que esses limites sejam atingidos, impedindo inserções em tempo hábil.
</Note>

**Exemplo: streaming de alterações recentes da Wikipedia para o ClickHouse**

```bash theme={null}
clickhouse-client --query 'CREATE TABLE wikipedia_edits (data JSON)'

curl -sS --globoff -H 'Accept: application/json' --no-buffer \
  'https://stream.wikimedia.org/v2/stream/recentchange' \
  | clickhouse-client \
      --query 'INSERT INTO wikipedia_edits FORMAT JSONAsObject' \
      --input_format_max_block_wait_ms 1000 \
      --input_format_connection_handling 1 \
      --min_insert_block_size_rows 0 \
      --min_insert_block_size_bytes 0
```

<div id="input_format_max_bytes_to_read_for_schema_inference">
  ## input\_format\_max\_bytes\_to\_read\_for\_schema\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="33554432" />

A quantidade máxima de dados, em bytes, a ser lida para a inferência automática de esquema.

<div id="input_format_max_rows_to_read_for_schema_inference">
  ## input\_format\_max\_rows\_to\_read\_for\_schema\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="25000" />

O número máximo de linhas de dados lidas para inferência automática de esquema.

<div id="input_format_msgpack_number_of_columns">
  ## input\_format\_msgpack\_number\_of\_columns
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

O número de colunas nos dados MsgPack inseridos. Usado para a inferência automática de esquema a partir dos dados.

<div id="input_format_mysql_dump_map_column_names">
  ## input\_format\_mysql\_dump\_map\_column\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Faz a correspondência entre as colunas da tabela no MySQL dump e as colunas da tabela do ClickHouse pelos nomes

<div id="input_format_mysql_dump_table_name">
  ## input\_format\_mysql\_dump\_table\_name
</div>

Nome da tabela no MySQL dump de onde ler os dados

<div id="input_format_native_allow_types_conversion">
  ## input\_format\_native\_allow\_types\_conversion
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permite a conversão de tipos de dados no formato de entrada Native

<div id="input_format_native_decode_types_in_binary_format">
  ## input\_format\_native\_decode\_types\_in\_binary\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ler tipos de dados em formato binário em vez de nomes de tipos no formato de entrada Native

<div id="input_format_null_as_default">
  ## input\_format\_null\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Habilita ou desabilita a inicialização de campos [NULL](/pt-BR/reference/syntax#literals) com [valores padrão](/pt-BR/reference/statements/create/table#default_values), caso o tipo de dados desses campos não seja [Nullable](/pt-BR/reference/data-types/nullable).
Se o tipo da coluna não for Nullable e essa configuração estiver desabilitada, inserir `NULL` causará uma exceção. Se o tipo da coluna for Nullable, os valores `NULL` serão inseridos como estão, independentemente dessa configuração.

Essa configuração se aplica à maioria dos formatos de entrada.

Para expressões padrão complexas, `input_format_defaults_for_omitted_fields` também deve estar habilitado.

Valores possíveis:

* 0 — Inserir `NULL` em uma coluna não Nullable causa uma exceção.
* 1 — Os campos `NULL` são inicializados com os valores padrão da coluna.

<div id="input_format_orc_allow_missing_columns">
  ## input\_format\_orc\_allow\_missing\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permitir colunas ausentes ao ler arquivos ORC no formato de entrada

<div id="input_format_orc_case_insensitive_column_matching">
  ## input\_format\_orc\_case\_insensitive\_column\_matching
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora diferenças entre maiúsculas e minúsculas ao corresponder colunas ORC com colunas CH.

<div id="input_format_orc_dictionary_as_low_cardinality">
  ## input\_format\_orc\_dictionary\_as\_low\_cardinality
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Considera colunas codificadas com dicionário ORC como colunas LowCardinality durante a leitura de arquivos ORC.

<div id="input_format_orc_filter_push_down">
  ## input\_format\_orc\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ao ler arquivos ORC, ignore stripes ou grupos de linhas inteiros com base nas expressões WHERE/PREWHERE, nas estatísticas de mín./máx. ou no filtro de Bloom nos metadados do ORC.

<div id="input_format_orc_reader_time_zone_name">
  ## input\_format\_orc\_reader\_time\_zone\_name
</div>

<SettingsInfoBlock type="String" default_value="GMT" />

Nome do fuso horário do leitor de linhas ORC; o fuso horário padrão do leitor de linhas ORC é GMT.

<div id="input_format_orc_row_batch_size">
  ## input\_format\_orc\_row\_batch\_size
</div>

<SettingsInfoBlock type="Int64" default_value="100000" />

Tamanho do lote na leitura de stripes do ORC.

<div id="input_format_orc_skip_columns_with_unsupported_types_in_schema_inference">
  ## input\_format\_orc\_skip\_columns\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora colunas com tipos não suportados durante a inferência de esquema do formato ORC

<div id="input_format_parallel_parsing">
  ## input\_format\_parallel\_parsing
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ativa ou desativa o parsing paralelo de formatos de dados, preservando a ordem. Compatível apenas com os formatos [TabSeparated (TSV)](/pt-BR/reference/formats/TabSeparated/TabSeparated), [TSKV](/pt-BR/reference/formats/TabSeparated/TSKV), [CSV](/pt-BR/reference/formats/CSV/CSV) e [JSONEachRow](/pt-BR/reference/formats/JSON/JSONEachRow).

Valores possíveis:

* 1 — Habilitado.
* 0 — Desabilitado.

<div id="input_format_parquet_allow_geoparquet_parser">
  ## input\_format\_parquet\_allow\_geoparquet\_parser
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Usar o parser de colunas geo para converter Array(UInt8) em tipos Point/Linestring/Polygon/MultiLineString/MultiPolygon

<div id="input_format_parquet_allow_missing_columns">
  ## input\_format\_parquet\_allow\_missing\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Permitir colunas ausentes ao ler formatos de entrada em Parquet

<div id="input_format_parquet_bloom_filter_push_down">
  ## input\_format\_parquet\_bloom\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ao ler arquivos Parquet, ignore grupos inteiros de linhas com base nas expressões WHERE e no filtro de Bloom nos metadados do Parquet.

<div id="input_format_parquet_case_insensitive_column_matching">
  ## input\_format\_parquet\_case\_insensitive\_column\_matching
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora a distinção entre maiúsculas e minúsculas ao corresponder colunas do Parquet com colunas CH.

<div id="input_format_parquet_enable_json_parsing">
  ## input\_format\_parquet\_enable\_json\_parsing
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ao ler arquivos Parquet, interpreta colunas JSON como a coluna JSON do ClickHouse.

<div id="input_format_parquet_enable_row_group_prefetch">
  ## input\_format\_parquet\_enable\_row\_group\_prefetch
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Habilita o prefetch de row groups durante o parsing de Parquet. Atualmente, apenas o parsing de thread única pode usar prefetch.

<div id="input_format_parquet_filter_push_down">
  ## input\_format\_parquet\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ao ler arquivos Parquet, ignore grupos de linhas inteiros com base nas expressões WHERE/PREWHERE e nas estatísticas mín./máx. dos metadados do Parquet.

<div id="input_format_parquet_local_file_min_bytes_for_seek">
  ## input\_format\_parquet\_local\_file\_min\_bytes\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="8192" />

Número mínimo de bytes necessário para que a leitura local (arquivo) faça `seek`, em vez de ler e ignorar, no formato de entrada Parquet

<div id="input_format_parquet_local_time_as_utc">
  ## input\_format\_parquet\_local\_time\_as\_utc
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Determina o tipo de dado usado pela inferência de esquema para timestamps Parquet com isAdjustedToUTC=false. Se true: DateTime64(..., 'UTC'); se false: DateTime64(...). Nenhum dos comportamentos está totalmente correto, pois o ClickHouse não tem um tipo de dado para horário local de relógio. Contraintuitivamente, 'true' provavelmente é a opção menos incorreta, porque formatar o timestamp 'UTC' como String produzirá a representação do horário local correto.

<div id="input_format_parquet_max_block_size">
  ## input\_format\_parquet\_max\_block\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="65409" />

Tamanho máximo do bloco do leitor de Parquet.

<div id="input_format_parquet_memory_high_watermark">
  ## input\_format\_parquet\_memory\_high\_watermark
</div>

<SettingsInfoBlock type="UInt64" default_value="4294967296" />

Limite aproximado de memória do leitor de Parquet v3. Limita quantos grupos de linhas ou colunas podem ser lidos em paralelo. Ao ler vários arquivos em uma única consulta, o limite se aplica ao uso total de memória desses arquivos.

<div id="input_format_parquet_memory_low_watermark">
  ## input\_format\_parquet\_memory\_low\_watermark
</div>

<SettingsInfoBlock type="UInt64" default_value="2097152" />

Realiza prefetches de forma mais agressiva se o uso de memória estiver abaixo do limite. Pode ser útil, por exemplo, se houver muitos filtros de Bloom pequenos para ler pela rede.

<div id="input_format_parquet_page_filter_push_down">
  ## input\_format\_parquet\_page\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Ignora páginas com base nos valores mín./máx. do índice da coluna.

<div id="input_format_parquet_prefer_block_bytes">
  ## input\_format\_parquet\_prefer\_block\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="16744704" />

Quantidade média de bytes por bloco gerados pelo leitor de Parquet

<div id="input_format_parquet_preserve_order">
  ## input\_format\_parquet\_preserve\_order
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Evite reordenar as linhas ao ler arquivos Parquet. Isso não é recomendado, pois a ordem das linhas em geral não é garantida, e outras partes do pipeline de consulta podem alterá-la. Use `ORDER BY _row_number` em vez disso.

<div id="input_format_parquet_skip_columns_with_unsupported_types_in_schema_inference">
  ## input\_format\_parquet\_skip\_columns\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora colunas com tipos não suportados durante a inferência de esquema do formato Parquet

<div id="input_format_parquet_use_offset_index">
  ## input\_format\_parquet\_use\_offset\_index
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Pequeno ajuste na forma de ler páginas de arquivo Parquet quando não há filtragem de páginas.

<div id="input_format_parquet_verify_checksums">
  ## input\_format\_parquet\_verify\_checksums
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Verifica os checksums das páginas ao ler arquivos Parquet.

<div id="input_format_protobuf_flatten_google_wrappers">
  ## input\_format\_protobuf\_flatten\_google\_wrappers
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ativa wrappers do Google para colunas comuns não aninhadas, por exemplo, google.protobuf.StringValue 'str' para a coluna do tipo String 'str'. Para colunas Nullable, wrappers vazios são reconhecidos como valores padrão, e valores ausentes como nulls

<div id="input_format_protobuf_oneof_presence">
  ## input\_format\_protobuf\_oneof\_presence
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Indica qual campo de `protobuf oneof` foi encontrado por meio da definição de um valor `enum` em uma coluna especial

<div id="input_format_protobuf_skip_fields_with_unsupported_types_in_schema_inference">
  ## input\_format\_protobuf\_skip\_fields\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora campos com tipos não suportados durante a inferência de esquema do formato Protobuf

<div id="input_format_record_errors_file_path">
  ## input\_format\_record\_errors\_file\_path
</div>

Caminho do arquivo usado para registrar erros ao ler formatos de texto (CSV, TSV).

<div id="input_format_skip_unknown_fields">
  ## input\_format\_skip\_unknown\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Habilita ou desabilita a omissão de dados extras durante a inserção.

Ao gravar dados, o ClickHouse lança uma exceção se os dados de entrada contiverem colunas que não existem na tabela de destino. Se essa opção estiver habilitada, o ClickHouse não insere os dados extras nem lança uma exceção.

Formatos suportados:

* [JSONEachRow](/pt-BR/reference/formats/JSON/JSONEachRow) (e outros formatos JSON)
* [BSONEachRow](/pt-BR/reference/formats/BSONEachRow) (e outros formatos JSON)
* [TSKV](/pt-BR/reference/formats/TabSeparated/TSKV)
* Todos os formatos com sufixos WithNames/WithNamesAndTypes
* [MySQLDump](/pt-BR/reference/formats/MySQLDump)
* [Native](/pt-BR/reference/formats/Native)

Valores possíveis:

* 0 — Desabilitado.
* 1 — Habilitado.

<div id="input_format_try_infer_dates">
  ## input\_format\_try\_infer\_dates
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Se habilitado, o ClickHouse tentará inferir o tipo `Date` a partir de campos do tipo string na inferência de esquema para formatos de texto. Se todos os campos de uma coluna nos dados de entrada forem convertidos com sucesso em datas, o tipo resultante será `Date`; se pelo menos um campo não for convertido em data, o tipo resultante será `String`.

Habilitado por padrão.

<div id="input_format_try_infer_datetimes">
  ## input\_format\_try\_infer\_datetimes
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Se estiver habilitado, o ClickHouse tentará inferir o tipo `DateTime64` a partir de campo do tipo string na inferência de esquema para formatos de texto. Se todos os campos de uma coluna nos dados de entrada forem convertidos com sucesso como datetimes, o tipo resultante será `DateTime64`; se pelo menos um campo não for convertido como datetime, o tipo resultante será `String`.

Habilitado por padrão.

<div id="input_format_try_infer_datetimes_only_datetime64">
  ## input\_format\_try\_infer\_datetimes\_only\_datetime64
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Quando `input_format_try_infer_datetimes` estiver habilitado, infira apenas tipos DateTime64, e não tipos DateTime

<div id="input_format_try_infer_exponent_floats">
  ## input\_format\_try\_infer\_exponent\_floats
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Tenta inferir números de ponto flutuante em notação exponencial durante a inferência de esquema em formatos de texto (exceto JSON, em que números com expoente são sempre inferidos)

<div id="input_format_try_infer_integers">
  ## input\_format\_try\_infer\_integers
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Se estiver habilitado, o ClickHouse tentará inferir inteiros em vez de números de ponto flutuante na inferência de esquema para formatos de texto. Se todos os números na coluna dos dados de entrada forem inteiros, o tipo resultante será `Int64`; se pelo menos um número for de ponto flutuante, o tipo resultante será `Float64`.

Habilitado por padrão.

<div id="input_format_try_infer_variants">
  ## input\_format\_try\_infer\_variants
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Se habilitado, o ClickHouse tentará inferir o tipo [`Variant`](/pt-BR/reference/data-types/variant) na inferência de esquema para formatos de texto quando houver mais de um tipo possível para elementos de coluna/array.

Valores possíveis:

* 0 — Habilitado.
* 1 — Habilitado.

<div id="input_format_tsv_allow_variable_number_of_columns">
  ## input\_format\_tsv\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignore colunas extras na entrada TSV (se o arquivo tiver mais colunas do que o esperado) e trate campos ausentes na entrada TSV como valores padrão

<div id="input_format_tsv_crlf_end_of_line">
  ## input\_format\_tsv\_crlf\_end\_of\_line
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Se estiver definido como true, a função file lerá o formato TSV usando \r\n em vez de \n.

<div id="input_format_tsv_detect_header">
  ## input\_format\_tsv\_detect\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Detecta automaticamente o cabeçalho com nomes e tipos no formato TSV

<div id="input_format_tsv_empty_as_default">
  ## input\_format\_tsv\_empty\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Trata campos vazios na entrada em TSV como valores padrão.

<div id="input_format_tsv_enum_as_number">
  ## input\_format\_tsv\_enum\_as\_number
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Tratar os valores enum inseridos em formatos TSV como índices de enum.

<div id="input_format_tsv_skip_first_lines">
  ## input\_format\_tsv\_skip\_first\_lines
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Ignora o número especificado de linhas no início dos dados no formato TSV

<div id="input_format_tsv_skip_trailing_empty_lines">
  ## input\_format\_tsv\_skip\_trailing\_empty\_lines
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Ignora linhas vazias no final no formato TSV

<div id="input_format_tsv_use_best_effort_in_schema_inference">
  ## input\_format\_tsv\_use\_best\_effort\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Usa alguns ajustes e heurísticas para inferir o esquema no formato TSV

<div id="input_format_values_accurate_types_of_literals">
  ## input\_format\_values\_accurate\_types\_of\_literals
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

No formato Values: ao fazer o parsing e interpretar expressões usando um modelo, verifique o tipo real do literal para evitar possíveis problemas de overflow e de precisão.

<div id="input_format_values_deduce_templates_of_expressions">
  ## input\_format\_values\_deduce\_templates\_of\_expressions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Para o formato Values: se o campo não puder ser analisado pelo parser de streaming, execute o parser SQL, deduza o modelo da expressão SQL, tente analisar todas as linhas usando o modelo e, em seguida, interprete a expressão para todas as linhas.

<div id="input_format_values_interpret_expressions">
  ## input\_format\_values\_interpret\_expressions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Para o formato Values: se o campo não puder ser analisado pelo parser de streaming, execute o parser SQL e tente interpretá-lo como uma expressão SQL.

<div id="input_format_with_names_use_header">
  ## input\_format\_with\_names\_use\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Habilita ou desabilita a verificação da ordem das colunas ao inserir dados.

Para melhorar o desempenho da inserção, recomendamos desabilitar essa verificação se você tiver certeza de que a ordem das colunas nos dados de entrada é a mesma da tabela de destino.

Formatos compatíveis:

* [CSVWithNames](/pt-BR/reference/formats/CSV/CSVWithNames)
* [CSVWithNamesAndTypes](/pt-BR/reference/formats/CSV/CSVWithNamesAndTypes)
* [TabSeparatedWithNames](/pt-BR/reference/formats/TabSeparated/TabSeparatedWithNames)
* [TabSeparatedWithNamesAndTypes](/pt-BR/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes)
* [JSONCompactEachRowWithNames](/pt-BR/reference/formats/JSON/JSONCompactEachRowWithNames)
* [JSONCompactEachRowWithNamesAndTypes](/pt-BR/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes)
* [JSONCompactStringsEachRowWithNames](/pt-BR/reference/formats/JSON/JSONCompactStringsEachRowWithNames)
* [JSONCompactStringsEachRowWithNamesAndTypes](/pt-BR/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes)
* [RowBinaryWithNames](/pt-BR/reference/formats/RowBinary/RowBinaryWithNames)
* [RowBinaryWithNamesAndTypes](/pt-BR/reference/formats/RowBinary/RowBinaryWithNamesAndTypes)
* [CustomSeparatedWithNames](/pt-BR/reference/formats/CustomSeparated/CustomSeparatedWithNames)
* [CustomSeparatedWithNamesAndTypes](/pt-BR/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes)

Valores possíveis:

* 0 — Desabilitado.
* 1 — Habilitado.

<div id="input_format_with_types_use_header">
  ## input\_format\_with\_types\_use\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Controla se o parser de formato deve verificar se os tipos de dados dos dados de entrada correspondem aos tipos de dados da tabela de destino.

Formatos compatíveis:

* [CSVWithNamesAndTypes](/pt-BR/reference/formats/CSV/CSVWithNamesAndTypes)
* [TabSeparatedWithNamesAndTypes](/pt-BR/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes)
* [JSONCompactEachRowWithNamesAndTypes](/pt-BR/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes)
* [JSONCompactStringsEachRowWithNamesAndTypes](/pt-BR/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes)
* [RowBinaryWithNamesAndTypes](/pt-BR/reference/formats/RowBinary/RowBinaryWithNamesAndTypes)
* [CustomSeparatedWithNamesAndTypes](/pt-BR/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes)

Valores possíveis:

* 0 — Desabilitado.
* 1 — Habilitado.
