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

# ajustes de la sesión de materialized_views_*

> Ajustes de la sesión de ClickHouse del grupo generado materialized_views_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Versión", "Valor predeterminado", "Comentario"];
  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
  }}>
        Historial de versiones
      </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"
  }}>Predeterminado</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Modificable sin reiniciar
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Estos ajustes están disponibles en [system.settings](/es/reference/system-tables/settings) y se generan automáticamente a partir del [código fuente](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 está habilitada, las excepciones que se produzcan al enviar datos a una vista materializada dependiente (en su `SELECT` o en el sink de la tabla interna) se registran como advertencia y la sentencia `INSERT` se completa correctamente. Si está deshabilitada (valor predeterminado), la excepción se propaga y la sentencia `INSERT` falla.

Esta configuración solo controla cómo se notifican los errores. No revierte una escritura en la tabla de origen ni garantiza si el bloque original ya se ha confirmado en la tabla de origen cuando se produce un error en la canalización de una vista dependiente. Cuando está deshabilitada (valor predeterminado), `INSERT` falla si se produce un error en una vista; reinténtelo con deduplicación de inserción (`insert_deduplicate`, `deduplicate_blocks_in_dependent_materialized_views`) para lograr una entrega exactamente una vez a la tabla de origen y a todas las vistas dependientes. Cuando está habilitada, `INSERT` informa de que la operación se ha realizado correctamente a pesar de una entrega parcial a las vistas con errores y a sus cadenas posteriores; úsela solo cuando las escrituras en la tabla de origen no deban bloquearse por problemas del lado de la vista (por ejemplo, las tablas `system.*_log`). Consulte la documentación de `CREATE VIEW` para conocer la semántica completa.

<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": "Nueva SETTING que hace que `CREATE MATERIALIZED VIEW ... POPULATE` sea atómico localmente: se toma una instantánea de los datos existentes y la vista se suscribe a las nuevas inserciones de forma conjunta, bajo un breve bloqueo exclusivo del origen, de modo que las filas insertadas a través del mismo servidor no se omiten ni se duplican. La garantía solo cubre la ruta de inserción local; las inserciones que llegan a otra réplica o mediante una escritura distribuida quedan fuera de su alcance, y requiere un origen que pueda proporcionar una instantánea fijada (la familia `MergeTree` y `Memory`); otros orígenes, así como `CREATE OR REPLACE` \/ `REPLACE`, mantienen la carga inicial heredada no atómica. Establezca `false` para aplicar el comportamiento heredado no atómico a todos los casos."}]}]} />

Hace que `CREATE MATERIALIZED VIEW ... POPULATE` sea atómico: la vista se suscribe a las nuevas inserciones de la tabla de origen y, al mismo tiempo, se toma una instantánea de los datos existentes bajo un breve bloqueo exclusivo de la tabla de origen, de modo que cada fila insertada simultáneamente con la carga inicial se entrega a la vista exactamente una vez (sin omisiones ni duplicados). A continuación, la carga inicial, que puede ser prolongada, lee la instantánea fijada sin mantener ningún bloqueo.

Se trata de atomicidad en la ruta de inserción local: el bloqueo exclusivo solo se serializa con las inserciones que adquieren el bloqueo de almacenamiento de esta tabla de origen en el mismo servidor, por lo que la garantía de exactamente una vez cubre las inserciones que llegan a través de este servidor. No es una garantía para todo el clúster: las filas insertadas en otra réplica de un origen `ReplicatedMergeTree` o mediante una ruta de escritura distribuida (por ejemplo, en una tabla `Distributed` o mediante `ON CLUSTER`) simultáneamente con la carga inicial aún pueden omitirse o duplicarse.

Esto requiere que la tabla de origen admita la lectura de una instantánea fijada en un momento determinado (la familia `MergeTree` y `Memory`). Para cualquier otro origen (una vista, `Distributed`, `Merge`, la familia `Log` o una tabla que no esté en una base de datos `Atomic`), la carga inicial recurre al comportamiento heredado no atómico (registrado en el registro del servidor): los datos existentes se leen con una instantánea independiente y no coordinada, por lo que las filas insertadas durante la carga inicial pueden omitirse o duplicarse. Establezca esta SETTING en `false` para forzar el comportamiento heredado en todos los orígenes. Se aplica únicamente a `CREATE MATERIALIZED VIEW` simple; `CREATE OR REPLACE` / `REPLACE` siempre usan la carga inicial heredada no atómica, al igual que una vista creada en una base de datos `Replicated` (donde `POPULATE` requiere `database_replicated_allow_heavy_create`), porque una carga inicial fallida no podría revertirse de forma coherente en todas las réplicas.

<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": "Se añadió este ajuste para conservar el comportamiento anterior si es necesario."}]}]} />

Compacta en la tabla de destino de las vistas materializadas las inserciones de una única consulta INSERT procedentes de inserciones en paralelo para reducir la cantidad de partes generadas.
Si se establece en false y `parallel_view_processing` está habilitado, la consulta INSERT generará una parte en la tabla de destino por cada `max_insert_thread`.
