> ## 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 de format « format_schema_* »

> Paramètres de format ClickHouse du groupe généré format_schema_*.

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="format_schema">
  ## format\_schema
</div>

Ce paramètre est utile lorsque vous utilisez des formats qui nécessitent une définition de schéma, comme [Cap'n Proto](https://capnproto.org/) ou [Protobuf](https://developers.google.com/protocol-buffers/). Sa valeur dépend du format.

<div id="format_schema_message_name">
  ## format\_schema\_message\_name
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": ""},{"label": "Nouveau paramètre"}]}]} />

Spécifie le nom du message requis dans le schéma défini dans `format_schema`.
Pour préserver la compatibilité avec le format `format_schema` legacy (`file_name:message_name`) :

* Si `format_schema_message_name` n'est pas spécifié, le nom du message est déduit de la partie `message_name` de la valeur `format_schema` legacy.
* Si `format_schema_message_name` est spécifié lors de l'utilisation du format legacy, une erreur est générée.

<div id="format_schema_source">
  ## format\_schema\_source
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "file"},{"label": "Nouveau paramètre"}]}]} />

Définit la source de `format_schema`.
Valeurs possibles :

* 'file' (par défaut) : `format_schema` correspond au nom d’un fichier de schéma situé dans le répertoire `format_schemas`.
* 'string' : `format_schema` correspond au contenu littéral du schéma.
* 'query' : `format_schema` est une requête permettant de récupérer le schéma.
  Lorsque `format_schema_source` est défini sur 'query', les conditions suivantes s’appliquent :
* La requête doit renvoyer exactement une valeur : une seule ligne avec une seule colonne de type chaîne.
* Le résultat de la requête est traité comme le contenu du schéma.
* Ce résultat est mis en cache localement dans le répertoire `format_schemas`.
* Vous pouvez vider le cache local à l’aide de la commande : `SYSTEM DROP FORMAT SCHEMA CACHE FOR Files`.
* Une fois mis en cache, les requêtes identiques ne sont plus exécutées pour récupérer de nouveau le schéma tant que le cache n’est pas explicitement vidé.
* En plus des fichiers du cache local, les messages Protobuf sont également mis en cache en mémoire. Même après avoir vidé les fichiers du cache local, le cache en mémoire doit être vidé à l’aide de `SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf]` pour actualiser complètement le schéma.
* Exécutez la requête `SYSTEM DROP FORMAT SCHEMA CACHE` pour vider en une seule fois le cache des fichiers locaux et celui des schémas des messages Protobuf.
