> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# configurações de formato de schema_inference_*

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

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="schema_inference_hints">
  ## schema\_inference\_hints
</div>

A lista de nomes e tipos de colunas a ser usada como indicações na inferência de esquema para formatos sem esquema.

Exemplo:

Consulta:

```sql theme={null}
desc format(JSONEachRow, '{"x" : 1, "y" : "String", "z" : "0.0.0.0" }') settings schema_inference_hints='x UInt8, z IPv4';
```

Resultado:

```sql theme={null}
x   UInt8
y   Nullable(String)
z   IPv4
```

<Note>
  Se `schema_inference_hints` não estiver formatado corretamente, ou se houver um erro de digitação, um tipo de dado incorreto etc., todo o schema\_inference\_hints será ignorado.
</Note>

<div id="schema_inference_make_columns_nullable">
  ## schema\_inference\_make\_columns\_nullable
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="3" />

Controla se os tipos inferidos serão definidos como `Nullable` na inferência de esquema.
Valores possíveis:

* 0 - o tipo inferido nunca será `Nullable` (use input\_format\_null\_as\_default para controlar o que fazer com valores nulos nesse caso),
* 1 - todos os tipos inferidos serão `Nullable`,
* 2 ou `auto` - o tipo inferido será `Nullable` somente se a coluna contiver `NULL` em uma amostra processada durante a inferência de esquema ou se os metadados do arquivo contiverem informações sobre a nulabilidade da coluna,
* 3 - a nulabilidade do tipo inferido corresponderá aos metadados do arquivo, se o formato oferecer isso (por exemplo, Parquet); caso contrário, será sempre `Nullable` (por exemplo, CSV).

<div id="schema_inference_make_json_columns_nullable">
  ## schema\_inference\_make\_json\_columns\_nullable
</div>

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

Controla se os tipos JSON inferidos serão definidos como `Nullable` na inferência de esquema.
Se esta configuração estiver habilitada junto com schema\_inference\_make\_columns\_nullable, o tipo JSON inferido será `Nullable`.

<div id="schema_inference_mode">
  ## schema\_inference\_mode
</div>

<SettingsInfoBlock type="SchemaInferenceMode" default_value="default" />

Modo de inferência de esquema. 'default' - pressupõe que todos os arquivos tenham o mesmo esquema e que ele possa ser inferido a partir de qualquer arquivo, 'union' - os arquivos podem ter esquemas diferentes, e o esquema resultante deve ser a união dos esquemas de todos os arquivos
