> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ajustes de sesión de parallel_replicas_*

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

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <span>Beta</span>
            </a>;
  }
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#beta-features" className="betaBadge">
            <span>Funcionalidad beta</span>
        </a>;
};

export const ExperimentalBadge = () => {
  return <a href="https://clickhouse.com/docs/reference/settings/beta-and-experimental-features#experimental-features" className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Funcionalidad experimental
        </a>;
};

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>;
};

Estas configuraciones 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).

## parallel\_replicas\_allow\_in\_with\_subquery

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Si es true, la subconsulta de IN se ejecutará en cada réplica seguidora"}]}]} />

Si es true, la subconsulta de IN se ejecutará en cada réplica seguidora.

## parallel\_replicas\_allow\_materialized\_views

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Permite usar vistas materializadas con réplicas paralelas"}]}]} />

Permite usar vistas materializadas con réplicas paralelas

## parallel\_replicas\_allow\_merge\_tables

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Nueva configuración que permite leer de una tabla `Merge` con réplicas paralelas basadas en el plan, expandiendo la lectura de `Merge` en una unión de las lecturas de las tablas `MergeTree` subyacentes. Solo tiene efecto junto con `parallel_replicas_plan_based`."}]}, {"id": "row-2","items": [{"label": "26.9"},{"label": "0"},{"label": "Nueva configuración que permite leer de una tabla `Merge` con réplicas paralelas basadas en el plan, expandiendo la lectura de `Merge` en una unión de las lecturas de las tablas `MergeTree` subyacentes. Solo tiene efecto junto con `parallel_replicas_plan_based`."}]}]} />

Permite leer de una tabla `Merge` con réplicas paralelas. Solo es efectivo junto con [parallel\_replicas\_plan\_based](/es/reference/settings/session-settings/parallel-replicas#parallel_replicas_plan_based): la lectura de la tabla `Merge` se expande en una unión de las lecturas de las tablas `MergeTree` subyacentes, que luego se distribuye como cualquier otra unión. Una tabla `Merge` se asigna a una sola réplica cuando no se puede leer de este modo alguna de sus tablas subyacentes (una tabla que no es `MergeTree` o una lectura `FINAL`). Establézcalo en `false` para leer cada tabla `Merge` en una sola réplica, como antes de que se añadiera esta compatibilidad. Experimental.

## parallel\_replicas\_allow\_view\_over\_mergetree

<BetaBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Permite que las réplicas paralelas ejecuten la consulta externa de una vista simple sobre tablas `MergeTree` (en lugar de la consulta interna de la vista), lo que mejora la paralelización entre nodos. También se aplica a las vistas `UNION ALL` cuyas ramas leen todas de tablas `MergeTree` diferentes.

## parallel\_replicas\_connect\_timeout\_ms

<SettingsInfoBlock type="Milliseconds" default_value="300" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "300"},{"label": "Tiempo de espera de conexión específico para consultas con réplicas paralelas"}]}]} />

Tiempo de espera, en milisegundos, para conectarse a una réplica remota durante la ejecución de consultas con réplicas paralelas. Si se agota el tiempo de espera, la réplica correspondiente no se utiliza para la ejecución de la consulta

## parallel\_replicas\_count

<BetaBadge />

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

Se trata de una configuración interna que no debe usarse directamente y representa un detalle de implementación del modo de 'parallel replicas'. El servidor iniciador la establecerá automáticamente, en las consultas distribuidas, con el número de réplicas paralelas que participan en el procesamiento de la consulta.

## parallel\_replicas\_custom\_key

<BetaBadge />

Una expresión entera arbitraria que puede usarse para dividir el trabajo entre réplicas de una tabla específica.
El valor puede ser cualquier expresión entera.

Se prefieren las expresiones simples que usan claves primarias.

Si la configuración se usa en un clúster que consta de un solo segmento con varias réplicas, esas réplicas se convertirán en segmentos virtuales.
De lo contrario, se comportará igual que con la clave `SAMPLE`: usará varias réplicas de cada segmento.

La expresión se comprueba con respecto a los permisos `SELECT` de nivel de columna del usuario. En el caso de una vista con `SQL SECURITY DEFINER` o `NONE`, se aplica a las columnas de la vista; el cuerpo de la vista se lee sin ella.

## parallel\_replicas\_custom\_key\_range\_lower

<BetaBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Se añaden configuraciones para controlar el filtro de rango al usar réplicas paralelas con segmentos dinámicos"}]}]} />

Permite que el tipo de filtro `range` divida el trabajo de forma uniforme entre réplicas en función del rango personalizado `[parallel_replicas_custom_key_range_lower, INT_MAX]`.

Cuando se usa junto con [parallel\_replicas\_custom\_key\_range\_upper](/es/reference/settings/session-settings/parallel-replicas#parallel_replicas_custom_key_range_upper), permite que el filtro divida uniformemente el trabajo entre las réplicas para el rango `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]`.

Nota: Esta configuración no hará que se filtren datos adicionales durante el procesamiento de consultas; más bien, cambia los puntos en los que el filtro de rango divide el intervalo `[0, INT_MAX]` para el procesamiento en paralelo.

## parallel\_replicas\_custom\_key\_range\_upper

<BetaBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "0"},{"label": "Se añaden ajustes para controlar el filtro de rango al usar réplicas paralelas con segmentos dinámicos. Un valor de 0 desactiva el límite superior"}]}]} />

Permite que el tipo de filtro `range` divida el trabajo de forma uniforme entre réplicas según el rango personalizado `[0, parallel_replicas_custom_key_range_upper]`. Un valor de 0 desactiva el límite superior y lo establece en el valor máximo de la expresión de clave personalizada.

Cuando se usa junto con [parallel\_replicas\_custom\_key\_range\_lower](/es/reference/settings/session-settings/parallel-replicas#parallel_replicas_custom_key_range_lower), permite que el filtro divida uniformemente el trabajo entre las réplicas para el rango `[parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper]`.

Nota: esta configuración no hará que se filtren datos adicionales durante el procesamiento de consultas; más bien, cambia los puntos en los que el filtro de rango divide el intervalo `[0, INT_MAX]` para el procesamiento paralelo

## parallel\_replicas\_filter\_pushdown

<BetaBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Permite trasladar los filtros a la parte de la consulta que ejecutan las réplicas paralelas

## parallel\_replicas\_for\_cluster\_engines

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.3"},{"label": "1"},{"label": "Nueva opción."}]}]} />

Sustituye los motores de las funciones de tabla por sus alternativas -Cluster

## parallel\_replicas\_for\_non\_replicated\_merge\_tree

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

Si es true, ClickHouse también usará el algoritmo de réplicas paralelas en las tablas MergeTree no replicadas

## parallel\_replicas\_index\_analysis\_only\_on\_coordinator

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "1"},{"label": "El análisis de índices se realiza solo en el coordinador de réplicas y se omite en las demás réplicas. Solo surte efecto cuando parallel_replicas_local_plan está habilitado"}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "1"},{"label": "El análisis de índices se realiza solo en el coordinador de réplicas y se omite en las demás réplicas. Solo surte efecto cuando parallel_replicas_local_plan está habilitado"}]}]} />

El análisis de índices se realiza solo en el coordinador de réplicas y se omite en las demás réplicas. Solo surte efecto cuando parallel\_replicas\_local\_plan está habilitado

## parallel\_replicas\_insert\_select\_local\_pipeline

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Usa la canalización local durante INSERT SELECT distribuido con réplicas paralelas. Actualmente está deshabilitado por problemas de rendimiento"}]}, {"id": "row-2","items": [{"label": "25.4"},{"label": "0"},{"label": "Usa la canalización local durante INSERT SELECT distribuido con réplicas paralelas. Actualmente está deshabilitado por problemas de rendimiento"}]}]} />

Usa la canalización local durante INSERT SELECT distribuido con réplicas paralelas

## parallel\_replicas\_local\_plan

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Usar el plan local para la réplica local en una consulta con réplicas paralelas"}]}, {"id": "row-2","items": [{"label": "24.11"},{"label": "1"},{"label": "Usar el plan local para la réplica local en una consulta con réplicas paralelas"}]}, {"id": "row-3","items": [{"label": "24.10"},{"label": "1"},{"label": "Usar el plan local para la réplica local en una consulta con réplicas paralelas"}]}]} />

Generar el plan local para la réplica local

## parallel\_replicas\_mark\_segment\_size

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "El valor de esta configuración ahora se determina automáticamente"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "128"},{"label": "Se añadió una nueva configuración para controlar el tamaño del segmento en la nueva implementación del coordinador de réplicas paralelas"}]}]} />

Las partes se dividen virtualmente en segmentos para distribuirlas entre réplicas para la lectura paralela. Esta configuración controla el tamaño de estos segmentos. No se recomienda cambiarla hasta que estés completamente seguro de lo que haces. El valor debe estar en el rango \[128; 16384]

## parallel\_replicas\_min\_number\_of\_rows\_per\_replica

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

Limita el número de réplicas usadas en una consulta a (filas estimadas por leer / min\_number\_of\_rows\_per\_replica). El máximo sigue estando limitado por 'max\_parallel\_replicas'

## parallel\_replicas\_mode

<SettingsInfoBlock type="ParallelReplicasMode" default_value="read_tasks" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "read_tasks"},{"label": "Esta configuración se introdujo como parte de la transición de la funcionalidad de réplicas paralelas a Beta"}]}]} />

Tipo de filtro que se utiliza con la clave personalizada para las réplicas paralelas. default - usa la operación de módulo sobre la clave personalizada, range - usa un filtro de rango sobre la clave personalizada utilizando todos los valores posibles del tipo de valor de la clave personalizada.

## parallel\_replicas\_plan\_based

<ExperimentalBadge />

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "0"},{"label": "Nueva configuración"}]}]} />

Decide si se utilizan réplicas paralelas y dónde, mediante el análisis del plan de consulta en lugar del análisis basado en el árbol de consultas. Como resultado, se envía un fragmento del plan a las réplicas remotas en lugar de una consulta SQL. Experimental.

## parallel\_replicas\_prefer\_local\_join

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1"},{"label": "Si es true, y JOIN puede ejecutarse con el algoritmo de réplicas paralelas, y todos los motores de almacenamiento de la parte derecha del JOIN son *MergeTree, se usará JOIN local en lugar de GLOBAL JOIN."}]}]} />

Si es true, y `JOIN` puede ejecutarse con el algoritmo de réplicas paralelas, y cada motor de almacenamiento de la parte del `JOIN` que de otro modo se materializaría en una tabla temporal puede ser leído por cada réplica por su cuenta, se usará `JOIN` local en lugar de `GLOBAL JOIN`. Esa parte es la derecha, salvo en un `RIGHT JOIN`, donde es la izquierda y donde cada motor de almacenamiento debe ser apto para réplicas paralelas y no simplemente `*MergeTree`. Un motor de almacenamiento situado bajo el lado materializado de un `GLOBAL JOIN` anidado, o bajo un `GLOBAL IN`, no cuenta, porque el iniciador los materializa por su cuenta.

## parallel\_replicas\_prefer\_local\_replica

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Nueva configuración. Cuando está deshabilitada, las réplicas para la lectura en paralelo se seleccionan únicamente mediante el algoritmo de balanceo de carga, sin forzar la inclusión de la réplica local en el conjunto."}]}]} />

Cuando está habilitada (de forma predeterminada), la réplica local siempre se incluye en el conjunto de réplicas utilizadas para la lectura en paralelo.
Cuando está deshabilitada, no se da preferencia a la réplica local y las réplicas se seleccionan únicamente mediante el algoritmo de balanceo de carga.
Esto permite que las consultas con `max_parallel_replicas = 1` se dirijan a otro nodo, lo que puede mejorar la localidad de la caché cuando muchas consultas cortas se distribuyen en un clúster.

## parallel\_replicas\_support\_projection

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Nueva configuración. La optimización de las proyecciones puede aplicarse en las réplicas paralelas. Solo surte efecto cuando parallel_replicas_local_plan está habilitado y aggregation_in_order está inactivo."}]}]} />

La optimización de las proyecciones puede aplicarse en las réplicas paralelas. Solo surte efecto cuando parallel\_replicas\_local\_plan está habilitado y aggregation\_in\_order está inactivo.
