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

# paramètres de session materialized_views_*

> Paramètres de session ClickHouse du groupe généré materialized_views_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Version", "Valeur par défaut", "Commentaire"];
  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
  }}>
        Historique des versions
      </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
  }}>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 disponibles dans [system.settings](/fr/reference/system-tables/settings) et sont générés automatiquement à partir du [code source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="materialized_views_ignore_errors">
  ## materialized\_views\_ignore\_errors
</div>

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

Si cette option est activée, les exceptions levées lors de l’envoi de données vers une vue matérialisée dépendante (dans son `SELECT` ou dans le sink de la table interne) sont consignées sous forme d’avertissement et l’instruction `INSERT` réussit. Si elle est désactivée (par défaut), une telle exception se propage et l’instruction `INSERT` échoue.

Ce paramètre contrôle uniquement le signalement des erreurs. Il n’annule pas une écriture dans la table source et ne garantit pas non plus que le bloc d’origine ait déjà été validé dans la table source lorsqu’une erreur se produit dans le pipeline d’une vue dépendante. Lorsqu’il est désactivé (par défaut), l’`INSERT` échoue en cas d’erreur sur une vue — relancez-le avec la déduplication d’insertion (`insert_deduplicate`, `deduplicate_blocks_in_dependent_materialized_views`) pour une livraison exactly-once vers la table source et toutes les vues dépendantes. Lorsqu’il est activé, l’`INSERT` est signalé comme réussi malgré une livraison partielle aux vues défaillantes et à leurs chaînes en aval ; utilisez-le uniquement lorsque les écritures dans la table source ne doivent pas être bloquées par des problèmes du côté des vues (par exemple, les tables `system.*_log`). Consultez la documentation `CREATE VIEW` pour la sémantique complète.

<div id="materialized_views_populate_atomically">
  ## materialized\_views\_populate\_atomically
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1"},{"label": "Nouveau paramètre qui rend `CREATE MATERIALIZED VIEW ... POPULATE` atomique localement : les données existantes sont instantanées et la vue s'abonne simultanément aux nouvelles insertions, sous un bref verrou exclusif sur la source, afin que les lignes insérées via le même serveur ne soient ni omises ni dupliquées. La garantie couvre uniquement le chemin d'insertion local — les insertions arrivant sur une autre réplique ou via une écriture distribuée ne sont pas couvertes — et requiert une source capable de fournir un instantané figé (la famille `MergeTree` et `Memory`) ; les autres sources, ainsi que `CREATE OR REPLACE` \/ `REPLACE`, conservent le remplissage legacy non atomique. Définissez ce paramètre sur `false` pour utiliser partout le comportement legacy non atomique."}]}]} />

Rend `CREATE MATERIALIZED VIEW ... POPULATE` atomique : la vue s'abonne aux nouvelles insertions dans la table source et un instantané des données existantes est pris simultanément, sous un bref verrou exclusif sur la table source, afin que chaque ligne insérée pendant le remplissage soit transmise à la vue exactement une fois (sans être ni omise ni dupliquée). Le remplissage, potentiellement long, lit ensuite l'instantané figé sans maintenir de verrou.

Il s'agit d'une atomicité du chemin d'insertion local : le verrou exclusif ne se synchronise qu'avec les insertions qui acquièrent le verrou de stockage de cette table source sur le même serveur ; la garantie d'exactement une fois couvre donc les insertions arrivant via ce serveur. Il ne s'agit pas d'une garantie à l'échelle du cluster : les lignes insérées sur une autre réplique d'une source `ReplicatedMergeTree`, ou via un chemin d'écriture distribuée (par exemple, dans une table `Distributed` ou via `ON CLUSTER`) pendant le remplissage peuvent toujours être omises ou dupliquées.

La table source doit prendre en charge la lecture d'un instantané figé à un instant donné (la famille `MergeTree` et `Memory`). Pour toute autre source (une vue, `Distributed`, `Merge`, la famille `Log` ou une table ne se trouvant pas dans une base de données `Atomic`), le remplissage revient au comportement legacy non atomique (consigné dans le journal du serveur) : les données existantes sont lues à partir d'un instantané distinct et non coordonné, de sorte que les lignes insérées pendant le remplissage peuvent être omises ou dupliquées. Définissez ce paramètre sur `false` pour imposer le comportement legacy à toutes les sources. S'applique uniquement à `CREATE MATERIALIZED VIEW` simple ; `CREATE OR REPLACE` / `REPLACE` utilisent toujours le remplissage legacy non atomique, tout comme une vue créée dans une base de données `Replicated` (où `POPULATE` requiert `database_replicated_allow_heavy_create`), car l'échec d'un remplissage ne pourrait pas y être annulé de manière cohérente sur toutes les répliques.

<div id="materialized_views_squash_parallel_inserts">
  ## materialized\_views\_squash\_parallel\_inserts
</div>

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.10"},{"label": "1"},{"label": "Ajout d'un paramètre pour préserver l'ancien comportement si nécessaire."}]}]} />

Regroupe, dans la table de destination des vues matérialisées, les insertions parallèles issues d'une même requête INSERT afin de réduire le nombre de parts générées.
Si ce paramètre est défini sur false et que `parallel_view_processing` est activé, la requête INSERT générera une part dans la table de destination pour chaque `max_insert_thread`.
