> ## 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.

# paramètres du format schema_inference_*

> Paramètres de format de ClickHouse dans le groupe généré 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
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Par défaut</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modifiable sans redémarrage
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Ces paramètres sont générés automatiquement à partir du [code source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/FormatFactorySettings.h).

<div id="schema_inference_hints">
  ## schema\_inference\_hints
</div>

La liste des noms de colonnes et des types à utiliser comme indications pour l’inférence du schéma dans les formats sans schéma.

Exemple :

Requête :

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

Résultat :

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

<Note>
  Si `schema_inference_hints` n’est pas correctement formaté, ou s’il contient une faute de frappe, un type de données erroné, etc., l’intégralité de `schema&#95;inference&#95;hints` sera ignorée.
</Note>

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

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

Détermine si les types inférés doivent être rendus `Nullable` lors de l'inférence du schéma.
Valeurs possibles :

* 0 - le type inféré ne sera jamais `Nullable` (utilisez input\_format\_null\_as\_default pour définir le comportement à adopter avec les valeurs nulles dans ce cas),
* 1 - tous les types inférés seront `Nullable`,
* 2 ou `auto` - le type inféré sera `Nullable` uniquement si la colonne contient `NULL` dans un échantillon analysé lors de l'inférence du schéma, ou si les métadonnées du fichier contiennent des informations sur la nullabilité de la colonne,
* 3 - la nullabilité du type inféré correspondra aux métadonnées du fichier si le format la prend en charge (par exemple Parquet), et sera sinon toujours `Nullable` (par exemple CSV).

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

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

Contrôle si les types JSON inférés sont rendus `Nullable` lors de l'inférence du schéma.
Si ce paramètre est activé en même temps que schema\_inference\_make\_columns\_nullable, le type JSON inféré sera `Nullable`.

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

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

Mode d’inférence du schéma. 'default' : considère que tous les fichiers ont le même schéma et que celui-ci peut être inféré à partir de n’importe quel fichier ; 'union' : les fichiers peuvent avoir des schémas différents et le schéma résultant doit être l’union des schémas de tous les fichiers
