Estos ajustes están disponibles en system.settings y se generan automáticamente a partir del código fuente.
adaptive_aggregator_freeze_threshold
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 16384 | Nueva configuración para establecer el número de claves a partir del cual el agregador adaptativo (`enable_adaptive_aggregator`) congela la tabla hash local de un hilo. |
El número de claves a partir del cual el agregador adaptativo congela la tabla hash local de un hilo (consulte enable_adaptive_aggregator). Los valores menores mantienen las tablas congeladas en caché, mientras que los valores mayores permiten que absorban más claves frecuentes. El valor 0 congela las tablas en la primera oportunidad, lo que hace que el algoritmo se comporte de forma similar al agregador con segmentación (enable_sharding_aggregator): cada clave se enruta según su hash y se agrega en un único propietario, pero se difiere a la fase de fusión en lugar de intercambiarse entre hilos durante el escaneo.
adaptive_aggregator_freeze_threshold_bytes
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.9 | 4194304 | Nueva configuración que limita en bytes las tablas locales congeladas del agregador adaptativo; se aplica el límite que se alcance primero entre este y el umbral de recuento de claves. 0 desactiva el límite de bytes. |
El tamaño de memoria a partir del cual el agregador adaptativo congela la tabla hash local de un hilo (consulta enable_adaptive_aggregator). Una tabla se congela al alcanzarse primero este valor o adaptive_aggregator_freeze_threshold. El tamaño corresponde a los bytes asignados por la propia tabla local (su búfer de tabla hash más sus arenas) y se comprueba entre bloques. El límite de bytes es relevante cuando las claves o los estados de agregación son anchos: el umbral de recuento de claves por sí solo permitiría que estas tablas superaran la capacidad de las cachés de CPU. Con el valor predeterminado, las tablas con claves y estados de ancho normal siguen congelándose según el recuento de claves. 0 desactiva el límite de bytes, por lo que decide únicamente el umbral de recuento de claves.
add_http_cors_header
Escribe el encabezado HTTP CORS adicional.
analyze_index_with_space_filling_curves
Si una tabla tiene una curva de llenado de espacio en su índice, por ejemplo, ORDER BY mortonEncode(x, y) o ORDER BY hilbertEncode(x, y), y la consulta tiene condiciones sobre sus argumentos, por ejemplo, x >= 10 AND x <= 20 AND y >= 20 AND y <= 30, use la curva de llenado de espacio para el análisis de índices.
analyzer_inline_views
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.4 | 0 | Nueva configuración |
Cuando está habilitada, el analizador reemplaza las vistas ordinarias (no materializadas y no parametrizadas) por las subconsultas que las definen, lo que permite optimizaciones entre límites como el pushdown de predicados y la poda de columnas.
any_join_distinct_right_table_keys
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 19.14 | 0 | Desactiva ANY RIGHT y ANY FULL JOIN de forma predeterminada para evitar inconsistencias |
Habilita el comportamiento heredado del servidor ClickHouse en las operaciones ANY INNER|LEFT JOIN.
Cuando el comportamiento heredado está habilitado:
- Los resultados de las operaciones
t1 ANY LEFT JOIN t2yt2 ANY RIGHT JOIN t1no son iguales porque ClickHouse usa una lógica de asociación de claves entre tablas de muchas a una, de izquierda a derecha. - Los resultados de las operaciones
ANY INNER JOINcontienen todas las filas de la tabla izquierda, como ocurre con las operacionesSEMI LEFT JOIN.
Cuando el comportamiento heredado está deshabilitado:
- Los resultados de las operaciones
t1 ANY LEFT JOIN t2yt2 ANY RIGHT JOIN t1son iguales porque ClickHouse usa una lógica que proporciona una asociación de claves de una a muchas en las operacionesANY RIGHT JOIN. - Los resultados de las operaciones
ANY INNER JOINcontienen una fila por clave de las tablas izquierda y derecha.
Valores posibles:
- 0 — El comportamiento heredado está deshabilitado.
- 1 — El comportamiento heredado está habilitado.
Véase también:
archive_adaptive_buffer_max_size_bytes
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.1 | 8388608 | configuración |
Limita el tamaño máximo del búfer adaptativo utilizado al escribir en archivos contenedores (por ejemplo, archivos tar
arrow_flight_request_descriptor_type
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.11 | path | Nueva configuración. Tipo de descriptor que se usará para las solicitudes de Arrow Flight: 'path' o 'command'. Dremio requiere 'command'. |
Tipo de descriptor que se usará para las solicitudes de Arrow Flight. 'path' envía el nombre del conjunto de datos como descriptor PATH. 'command' envía una consulta SQL como descriptor de comando (obligatorio para Dremio).
Posibles valores:
- 'path' — Usa FlightDescriptor::Path (predeterminado; funciona con la mayoría de los servidores Arrow Flight)
- 'command' — Usa FlightDescriptor::Command con una consulta SELECT (obligatorio para Dremio)
backup_slow_all_threads_after_retryable_s3_error
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.8 | 0 | Nueva configuración |
| 25.6 | 0 | Nueva configuración |
| 25.10 | 0 | Configuración deshabilitada de forma predeterminada |
Cuando se establece en true, todos los hilos que ejecutan solicitudes S3 al mismo endpoint de copia de seguridad se ralentizan
después de que una sola solicitud S3 encuentre un error de S3 reintentable, como 'Slow Down'.
Cuando se establece en false, cada hilo gestiona el backoff de las solicitudes S3 de forma independiente de los demás.
cache_warmer_threads
Solo tiene efecto en ClickHouse Cloud. Número de hilos en segundo plano para descargar de forma especulativa nuevas partes de datos a la caché del sistema de archivos cuando cache_populated_by_fetch está habilitado. Cero para deshabilitarlo.
calculate_text_stack_trace
Calcula la traza de pila textual en caso de excepciones durante la ejecución de consultas. Este es el valor predeterminado. Requiere búsquedas de símbolos que pueden ralentizar las pruebas de fuzzing cuando se ejecuta una gran cantidad de consultas erróneas. En condiciones normales, no debería desactivar esta opción.
cancel_http_readonly_queries_on_client_close
Cancela las consultas HTTP de solo lectura (por ejemplo, SELECT) cuando un cliente cierra la conexión sin esperar la respuesta.
Valor predeterminado en Cloud: 1.
checksum_on_read
Valida las sumas de comprobación al leer. Está habilitada de forma predeterminada y siempre debe estarlo en producción. No espere obtener ningún beneficio por deshabilitar este ajuste. Solo debería usarse para experimentos y benchmarks. Este ajuste solo se aplica a tablas de la familia MergeTree. Las sumas de comprobación siempre se validan en otros motores de tabla y al recibir datos a través de la red.
compression
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | Nueva configuración para aplicar compresión genérica al cuerpo de la respuesta. |
Aplica compresión genérica al cuerpo de la respuesta, por ejemplo, compression=gz. Tenga en cuenta que es independiente de Content-Encoding (compresión HTTP) y del parámetro heredado compress (compresión nativa de ClickHouse). Especificar una extensión de archivo comprimido en la ruta de la URL tiene el mismo efecto.
Esta configuración de la interfaz HTTP da forma a la respuesta: se procesa antes de ejecutar la consulta (los búferes de respuesta se configuran de antemano), por lo que debe proporcionarse mediante el parámetro URL de HTTP, la extensión de archivo de la ruta de la URL o un perfil de usuario, y no mediante una cláusula SETTINGS dentro de la consulta (donde no tiene efecto y se rechaza).
connection_pool_max_wait_ms
El tiempo de espera en milisegundos de una conexión cuando el grupo de conexiones está lleno.
Valores posibles:
- Entero positivo.
- 0 — tiempo de espera infinito.
connections_with_failover_max_tries
El número máximo de intentos de conexión con cada réplica para el motor de tabla Distributed.
convert_query_to_cnf
Cuando se establece en true, una consulta SELECT se convierte a la forma normal conjuntiva (CNF). En algunos casos, reescribir una consulta en CNF puede ejecutarse más rápido (consulta este Github issue para obtener una explicación).
Por ejemplo, observa cómo la siguiente consulta SELECT no se modifica (este es el comportamiento predeterminado):
EXPLAIN SYNTAX
SELECT *
FROM
(
SELECT number AS x
FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = false;El resultado es:
┌─explain────────────────────────────────────────────────────────┐
│ SELECT x │
│ FROM │
│ ( │
│ SELECT number AS x │
│ FROM numbers(20) │
│ WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15)) │
│ ) AS a │
│ WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15)) │
│ SETTINGS convert_query_to_cnf = 0 │
└────────────────────────────────────────────────────────────────┘Establezcamos convert_query_to_cnf en true y veamos qué cambia:
EXPLAIN SYNTAX
SELECT *
FROM
(
SELECT number AS x
FROM numbers(20)
) AS a
WHERE ((x >= 1) AND (x <= 5)) OR ((x >= 10) AND (x <= 15))
SETTINGS convert_query_to_cnf = true;Observa que la cláusula WHERE se reescribe en CNF, pero el conjunto de resultados sigue siendo idéntico: la lógica booleana no cambia.
┌─explain───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ SELECT x │
│ FROM │
│ ( │
│ SELECT number AS x │
│ FROM numbers(20) │
│ WHERE ((x <= 15) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x >= 10) OR (x >= 1)) │
│ ) AS a │
│ WHERE ((x >= 10) OR (x >= 1)) AND ((x >= 10) OR (x <= 5)) AND ((x <= 15) OR (x >= 1)) AND ((x <= 15) OR (x <= 5)) │
│ SETTINGS convert_query_to_cnf = 1 │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘Valores posibles: true, false
count_matches_stop_at_empty_match
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.6 | 0 | configuración. |
Deja de contar cuando un patrón tenga una coincidencia de longitud cero en la función countMatches.
cross_to_inner_join_rewrite
Usa inner join en lugar de comma join/cross join si hay expresiones de join en la sección WHERE. Valores: 0 - sin reescritura, 1 - aplicar si es posible para comma/cross, 2 - forzar la reescritura de todos los joins con coma, cross - si es posible
data_type_default_nullable
Permite que los tipos de datos sin modificadores explícitos NULL o NOT NULL en la definición de columnas sean Nullable.
Valores posibles:
- 1 — Los tipos de datos en las definiciones de columnas se establecen como
Nullablede forma predeterminada. - 0 — Los tipos de datos en las definiciones de columnas se establecen como no
Nullablede forma predeterminada.
decimal_check_overflow
Comprueba el desbordamiento en las operaciones aritméticas y de comparación de Decimal
deduplicate_blocks_in_dependent_materialized_views
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.2 | 1 | Habilita de forma predeterminada la deduplicación para las vistas materializadas dependientes. |
Habilita o deshabilita la comprobación de deduplicación para las vistas materializadas que reciben datos de tablas Replicated*.
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
Cuando está habilitado, ClickHouse realiza la deduplicación de bloques en las vistas materializadas que dependen de tablas Replicated*. Esta configuración es útil para garantizar que las vistas materializadas no contengan datos duplicados cuando se reintenta la operación de inserción debido a un fallo.
Véase también
defer_partition_pruning_after_final
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.5 | 1 | Configuración añadida en la versión 26.5 para controlar el comportamiento de poda de particiones de FINAL, incorporado de forma silenciosa en la 26.3 (https://github.com/ClickHouse/ClickHouse/pull/98242). El cambio semántico relevante se registra en el bloque de la 26.3 para que `compatibility = '26.2'` lo revierta; esta entrada existe para que la comprobación de actualización desde la 26.4 acepte el nombre recién introducido. |
| 26.3 | 1 | Controla la omisión incondicional, por parte del planner de FINAL, de la poda de particiones cuando la columna de la clave de partición no está en la clave de ordenación. El cambio de comportamiento en sí se incorporó de forma silenciosa en la 26.3 mediante https://github.com/ClickHouse/ClickHouse/pull/98242; esta entrada lo documenta de forma retroactiva para que `compatibility = '26.2'` restaure el comportamiento anterior a la regresión (0 = podar antes de FINAL, rápido; 1 = aplazar la poda, seguro desde el punto de vista de la corrección). |
Cuando está habilitada (valor predeterminado), se omite la poda de particiones en consultas FINAL sobre tablas cuyas
columnas de la clave de partición no forman parte de la clave de ordenación. Este es el comportamiento seguro desde el punto de vista de la corrección
introducido en la 26.3: FINAL puede necesitar deduplicar filas que comparten una clave primaria pero están
en distintas particiones, y la poda de particiones excluiría silenciosamente esas filas del
conjunto de entrada para la deduplicación.
Cuando está deshabilitada, la poda de particiones se aplica incluso con FINAL, restaurando el comportamiento
anterior a la 26.3. Esto puede ser bastante más rápido para consultas con predicados WHERE sobre la
columna de partición, pero solo es correcto cuando no pueden existir filas con la misma clave primaria
en distintas particiones; por ejemplo, en tablas de registro de eventos cuya columna de partición se establece en el momento de la inserción
y nunca cambia.
Esta configuración solo afecta a las tablas particionadas cuyas columnas de la clave de partición no están incluidas en la clave de ordenación; en las demás tablas, la poda de particiones siempre se aplica.
Posibles valores:
- 0 — Aplicar la poda de particiones antes de
FINAL(comportamiento anterior a la 26.3, más rápido pero inseguro en el caso general). - 1 — Aplazar la poda de particiones hasta después de
FINAL(valor predeterminado, seguro desde el punto de vista de la corrección).
describe_compact_output
Si es true, incluye solo los nombres de las columnas y los tipos en el resultado de la consulta DESCRIBE
dialect
El dialecto que se utilizará para analizar la consulta.
Valores admitidos:
clickhouse(predeterminado) — SQL estándar de ClickHouse.kusto— Kusto Query Language. Requiere la configuración experimentalallow_experimental_kusto_dialect.prql— PRQL. Requiere la configuración experimentalallow_experimental_prql_dialect.polyglot— transpila SQL de otros dialectos (MySQL, PostgreSQL, etc.) a ClickHouse SQL. Requiere la configuración experimentalallow_experimental_polyglot_dialect.promql— PromQL (Prometheus Query Language) evaluado sobre una tabla TimeSeries, configurada mediante las opcionespromql_database,promql_tableypromql_evaluation_time.clickhouse_json— en lugar de texto SQL, la consulta se interpreta como un AST JSON (la salida deparseQueryToJSON). La consultaSETse sigue reconociendo en formato sin procesar para poder volver a cambiar el dialecto. Requiere la configuración experimentalenable_json_ast_dialect.
discard_query_data
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.7 | 0 | Nueva configuración para omitir el envío al cliente de las filas del resultado de la consulta a través del protocolo TCP nativo. |
Si está habilitado, el servidor omite enviar al cliente las filas del resultado de la consulta. La consulta se sigue ejecutando y registrando por completo en el servidor, y el cliente sigue recibiendo los paquetes restantes.
Se usa para shadow traffic, benchmark y fuzzing.
No tiene efecto en las consultas secundarias.
Afecta solo al protocolo TCP nativo.
distinct_overflow_mode
Establece lo que sucede cuando la cantidad de datos supera uno de los límites.
Valores posibles:
throw: lanzar una excepción (predeterminado).break: detener la ejecución de la consulta y devolver el resultado parcial, como si los datos de origen se hubieran agotado.
do_not_merge_across_partitions_select_final
Mejora las consultas FINAL al evitar las fusiones entre distintas particiones.
Cuando está habilitado, durante las consultas SELECT FINAL, las partes de distintas particiones no se fusionarán entre sí. En su lugar, la fusión solo se producirá por separado dentro de cada partición. Esto puede mejorar significativamente el rendimiento de las consultas al trabajar con tablas particionadas.
dynamic_throw_on_type_mismatch
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.4 | 1 | Nueva configuración para controlar el comportamiento ante incompatibilidades de tipo en la implementación predeterminada de Dynamic |
Al aplicar una función a una columna Dynamic mediante la implementación predeterminada, controla qué ocurre con las filas cuyo tipo real es incompatible con la función:
true(predeterminado) — lanzar una excepción.false— devolverNULLpara esas filas.
enforce_strict_identifier_format
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.10 | 0 | Nueva configuración. |
Si está habilitado, solo se permiten identificadores que contengan caracteres alfanuméricos y guiones bajos.
engine_url_skip_empty_files
Activa o desactiva la omisión de archivos vacíos en las tablas con motor URL.
Valores posibles:
- 0 —
SELECTgenera una excepción si el archivo vacío no es compatible con el formato solicitado. - 1 —
SELECTdevuelve un resultado vacío cuando el archivo está vacío.
exact_rows_before_limit
Cuando está habilitada, ClickHouse proporcionará el valor exacto de la estadística rows_before_limit_at_least, pero a costa de que los datos anteriores al límite deban leerse por completo
except_default_mode
Establece el modo predeterminado en la consulta EXCEPT. Posibles valores: cadena vacía, 'ALL', 'DISTINCT'. Si está vacío, una consulta sin modo lanzará una excepción.
exclude_materialize_skip_indexes_on_insert
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.10 | Nueva configuración. |
Excluye los índices de omisión especificados para que no se construyan ni se almacenen durante las operaciones INSERT. Los índices de omisión excluidos seguirán construyéndose y almacenándose durante las fusiones o mediante una consulta MATERIALIZE INDEX explícita.
No tiene efecto si materialize_skip_indexes_on_insert es false.
Ejemplo:
CREATE TABLE tab
(
a UInt64,
b UInt64,
INDEX idx_a a TYPE minmax,
INDEX idx_b b TYPE set(3)
)
ENGINE = MergeTree ORDER BY tuple();
SET exclude_materialize_skip_indexes_on_insert='idx_a'; -- idx_a will be not be updated upon insert
--SET exclude_materialize_skip_indexes_on_insert='idx_a, idx_b'; -- neither index would be updated on insert
INSERT INTO tab SELECT number, number / 50 FROM numbers(100); -- only idx_b is updated
-- since it is a session setting it can be set on a per-query level
INSERT INTO tab SELECT number, number / 50 FROM numbers(100, 100) SETTINGS exclude_materialize_skip_indexes_on_insert='idx_b';
ALTER TABLE tab MATERIALIZE INDEX idx_a; -- this query can be used to explicitly materialize the index
SET exclude_materialize_skip_indexes_on_insert = DEFAULT; -- reset setting to defaultexecute_exists_as_scalar_subquery
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.8 | 1 | configuración |
Ejecuta subconsultas EXISTS no correlacionadas como subconsultas escalares. Al igual que con las subconsultas escalares, se utiliza la caché y el plegado de constantes se aplica al resultado.
Valor predeterminado en Cloud: 0.
explain_query_plan_default
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.7 | pretty | A partir de la versión 26.7, `EXPLAIN PLAN` usa por defecto `actions=1, compact=1, pretty=1`. Establece este valor en `legacy` para restaurar la salida anterior a la versión 26.7. |
Formato predeterminado que usa EXPLAIN PLAN.
Posibles valores:
pretty(predeterminado desde la versión 26.7) —actions,compactyprettytomantruepor defecto, lo que genera un plan compacto, Pretty y anotado con acciones.legacy— salida anterior a la versión 26.7.
Si especificas explícitamente las opciones actions, compact o pretty en la sentencia EXPLAIN (por ejemplo, EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...), esta configuración siempre se sobrescribe.
EXPLAIN PLAN con json = 1 o distributed = 1 mantiene los valores predeterminados de legacy (anteriores a la versión 26.7) independientemente de esta configuración, a menos que actions, compact o pretty se establezcan explícitamente. La salida Pretty no puede representar resultados JSON ni planes distribuidos por segmento, por lo que esos modos solo se muestran correctamente en el formato legacy.
explain_syntax_single_record
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 1 | A partir de la versión 26.8, `EXPLAIN SYNTAX` devuelve la consulta reformateada como un único registro (con saltos de línea incrustados), en lugar de un registro por línea. Establezca esta opción en `false` para restaurar la salida anterior a la versión 26.8, con un registro por línea. |
Devuelve la salida de EXPLAIN SYNTAX como un único registro (con saltos de línea incrustados), en lugar de un registro por línea, de modo que el resultado sea una única fila recuperable (por ejemplo, SELECT count() FROM (EXPLAIN SYNTAX ...) devuelve 1).
Especificar explícitamente la opción single_record en la sentencia EXPLAIN SYNTAX (por ejemplo, EXPLAIN SYNTAX single_record = 0 SELECT ...) siempre tiene prioridad sobre esta configuración.
Establezca esta opción en false para restaurar la salida anterior a la versión 26.8, con un registro por línea, o configure compatibility con cualquier versión anterior a 26.8.
extract_key_value_pairs_max_pairs_per_row
Alias: extract_kvp_max_pairs_per_row
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.2 | 1000 | Número máximo de pares que puede generar la función `extractKeyValuePairs`. Se utiliza como medida de protección para evitar un consumo excesivo de memoria. |
Número máximo de pares que puede generar la función extractKeyValuePairs. Se utiliza como medida de protección para evitar un consumo excesivo de memoria.
extremes
Indica si se deben contabilizar los valores extremos (los mínimos y máximos de las columnas del resultado de una consulta). Acepta 0 o 1. El valor predeterminado es 0 (deshabilitado). Para obtener más información, consulte la sección "Valores extremos".
fallback_to_stale_replicas_for_distributed_queries
Fuerza una consulta a una réplica obsoleta si no hay datos actualizados disponibles. Consulte Replicación.
ClickHouse selecciona la réplica más adecuada entre las réplicas obsoletas de la tabla.
Se utiliza al realizar SELECT desde una tabla distribuida que apunta a tablas replicadas.
De forma predeterminada, 1 (habilitado).
file_like_engine_default_partition_strategy
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.6 | hive | Cambia la estrategia de partición predeterminada de los motores de tabla tipo archivo (S3, AzureBlobStorage, etc.) de `wildcard` a `hive` cuando no se proporciona `partition_strategy`. |
Estrategia de partición predeterminada para motores tipo archivo. Se aplica solo a consultas CREATE con una ruta que no contiene ningún patrón glob ni el marcador de posición {_partition_id}. Una ruta con {_partition_id} siempre usa wildcard. Una ruta con otro patrón glob no utiliza ninguna estrategia de partición e ignora PARTITION BY. Si esta configuración es wildcard, pero la ruta no contiene {_partition_id}, no se utiliza ninguna estrategia de partición; los motores de tabla que no pueden persistir esta decisión en sus argumentos de motor (por ejemplo, HDFS) rechazan dicho CREATE.
filesystem_prefetches_limit
Número máximo de prefetches. Cero significa que no hay límite. Se recomienda más la configuración filesystem_prefetches_max_memory_usage si desea limitar el número de prefetches
filter
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | Nueva configuración para añadir una cláusula WHERE alrededor de una consulta. |
Añade una cláusula WHERE a la consulta envolviéndola en una subconsulta. Varios filtros se combinan con AND. La interfaz HTTP permite varios parámetros URL filter, que se combinan con AND, en orden, y con el valor de esta configuración.
Esta es una configuración para la construcción de consultas que el motor aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona con todos los protocolos: puede proporcionarse mediante el parámetro URL HTTP, una cláusula SETTINGS dentro de la consulta o un perfil de usuario.
Afecta a las consultas SELECT / UNION que producen resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia instrucción INSERT / CREATE, no se propaga al SELECT de origen; se aplica la misma regla de no propagación que a cualquier otra configuración.
final
Aplica automáticamente el modificador FINAL a todas las tablas de una consulta en las que FINAL sea aplicable, incluidas las tablas unidas, las tablas en subconsultas y las tablas distribuidas.
Posibles valores:
- 0 - deshabilitado
- 1 - habilitado
Ejemplo:
CREATE TABLE test
(
key Int64,
some String
)
ENGINE = ReplacingMergeTree
ORDER BY key;
INSERT INTO test FORMAT Values (1, 'first');
INSERT INTO test FORMAT Values (1, 'second');
SELECT * FROM test;
┌finalize_projection_parts_synchronously
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.4 | 0 | Nueva configuración para finalizar las partes de proyección de forma síncrona durante INSERT y reducir el uso máximo de memoria. |
Si se habilita, las partes de proyección se finalizan de forma síncrona durante INSERT, lo que reduce el uso máximo de memoria a costa de un menor paralelismo de carga en S3. De forma predeterminada, el flujo de salida de cada proyección se mantiene activo hasta que se finaliza toda la parte (incluidas todas las proyecciones), lo que permite solapar las cargas en S3, pero aumenta el uso máximo de memoria de forma proporcional al número de proyecciones. Esta configuración solo afecta a INSERT; merge y mutation ya finalizan las proyecciones de forma síncrona.
flatten_nested
Establece el formato de los datos de las columnas Nested.
Valores posibles:
- 1 — La columna Nested se aplana en arrays separados.
- 0 — La columna Nested permanece como un único array de tuplas.
Uso
Si este ajuste se establece en 0, es posible usar un nivel arbitrario de anidamiento.
Ejemplos
Consulta:
SET flatten_nested = 1;
CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();
SHOW CREATE TABLE t_nest;Resultado:
┌─statement───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
`n.a` Array(UInt32),
`n.b` Array(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘Consulta:
SET flatten_nested = 0;
CREATE TABLE t_nest (`n` Nested(a UInt32, b UInt32)) ENGINE = MergeTree ORDER BY tuple();
SHOW CREATE TABLE t_nest;Resultado:
┌─statement──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_nest
(
`n` Nested(a UInt32, b UInt32)
)
ENGINE = MergeTree
ORDER BY tuple()
SETTINGS index_granularity = 8192 │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘format
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | Nueva configuración para sobrescribir el FORMAT de la consulta, tanto de entrada como de salida. |
Sobrescribe el FORMAT de la consulta, tanto de entrada como de salida. Tiene prioridad sobre el formato especificado en la consulta y en la extensión de archivo. Las configuraciones más específicas input_format y output_format tienen prioridad sobre esta configuración genérica format para sus respectivas direcciones.
framing_output_format
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | None | Nueva configuración para seleccionar un formato de enmarcado que multiplexa paquetes de datos, totales, extremos, progreso, registros y eventos de perfil en un único flujo de salida a través de HTTP. |
Permite multiplexar distintas partes de la respuesta de la consulta en un único flujo: fragmentos de datos, totales y extremos, paquetes de progreso, eventos de perfil (métricas) y registros del servidor; todo lo que admite el protocolo nativo.
Los formatos de enmarcado son independientes de los formatos de salida: encapsulan los bytes producidos por cualquier formato de salida, separando y, potencialmente, codificando estos fragmentos de bytes. La concatenación de las cargas útiles de todos los paquetes data, totals y extremes es exactamente lo que habría producido el formato de salida sin enmarcado. Los paquetes auxiliares (progreso, registros, eventos de perfil y excepciones) se representan como JSON.
Hay una excepción deliberada: un formato de salida que omite los totales y extremos en su salida sin enmarcado porque no puede representarlos (la familia JSONCompactEachRow) sí los emite con enmarcado, en los paquetes totals y extremes. Para dichos formatos, la concatenación de los paquetes data por sí sola es exactamente la salida sin enmarcado, y los paquetes totals y extremes contienen filas adicionales que la salida sin enmarcado no incluye.
Los registros del servidor se incluyen si se ha configurado send_logs_level, y los eventos de perfil se incluyen si send_profile_events está habilitada (se envían como máximo una vez cada interactive_delay microsegundos, y los paquetes de progreso también se limitan mediante interactive_delay).
Un flujo correcto termina con un paquete progress final que contiene los contadores finales (result_rows, result_bytes, memory_usage), escrito después de los paquetes finales log y profile_events emitidos al registrar la finalización de la consulta, al igual que el paquete de progreso final del protocolo nativo. En caso de error, el paquete exception es el último paquete, salvo en un caso: cuando el error ocurre después de que parte del flujo de paquetes ya se haya incluido en la respuesta y ya no pueda descartarse (si la escritura de un paquete falla a mitad de camino, falla la entrega del propio paquete exception, o el flujo de respuesta falla durante el vaciado o el cierre), el enmarcado falla de forma segura: el flujo termina sin un paquete exception final, y el cliente recibe una respuesta truncada y una conexión HTTP interrumpida en lugar de un paquete final que pueda analizarse. Nunca se añade nada después de un flujo parcial de paquetes, por lo que nunca se mezcla con él un cuerpo de error HTTP sin formato.
Todo lo que una consulta habilita únicamente mediante su propia cláusula SETTINGS —un formato de enmarcado, send_logs_level o send_profile_events— no se conoce hasta que se ha analizado la consulta, por lo que los registros y eventos de perfil correspondientes solo se capturan a partir de la ejecución de la consulta. Los registros y eventos de perfil de las fases de análisis sintáctico, planificación y análisis solo se capturan cuando la configuración procede de la sesión o de la URL. Por ejemplo, una consulta que falla durante el análisis (como una referencia a una tabla desconocida) y habilita send_logs_level solo en su cláusula SETTINGS entrega únicamente el paquete exception, no los registros de la fase de análisis; configure send_logs_level en la sesión o en la URL para capturarlos.
La misma salvedad sobre el descubrimiento tardío se aplica a send_logs_source_regexp: la cola de registros filtra las entradas por origen en el momento en que se captura cada una, por lo que una expresión regular establecida solo en la propia cláusula SETTINGS de la consulta surte efecto a partir de la ejecución de la consulta. Los paquetes log de las fases de análisis sintáctico, planificación y análisis se filtran según el valor de la configuración de la sesión o de la URL (no se filtran si no está configurado allí), por lo que pueden incluir orígenes que no coincidan con la expresión regular de nivel de consulta; a la inversa, las entradas descartadas por una expresión regular más restrictiva de la sesión o la URL no se recuperan mediante otra más amplia de nivel de consulta. Configure send_logs_source_regexp en la sesión o en la URL para filtrar todo el ciclo de vida de la consulta.
Actualmente, la configuración se aplica al protocolo HTTP y se ignora en otras interfaces.
Valores posibles:
None- enruta de forma transparente todo lo aplicable (datos, totales, extremos, progreso) al formato de salida e ignora todo lo que no lo es (métricas, registros), por lo que todo funciona como de forma predeterminada.EventStream- encapsula los paquetes como eventos HTTP enviados por el servidor (text/event-stream). Cada paquete se envía como un evento con el nombre correspondiente:data,totals,extremes,progress,log,profile_events,exception. El progreso y otros paquetes auxiliares se envían como JSON. Dado que los eventos enviados por el servidor son un protocolo de texto que trata los saltos de línea (incluidos los retornos de carro,\r) como delimitadores, un bloque de datos formateados se codifica en Base64 en un único campodatadel evento, que se decodifica en la carga útil completamente formateada con todos sus saltos de línea;Content-Typeincluye un parámetropayload=base64para indicarlo. Cualquier formato de salida, ya sea de texto o binario, puede transportarse de esta forma con exactitud de bytes.JSONEachPacketBase64- cada paquete es un objeto JSON en una línea independiente y los datos formateados se codifican en Base64, por ejemplo:{"packet":"data","data":"eyJ4IjoxfQo="}. Adecuado para formatos de salida binarios.JSONEachPacketString- cada paquete es un objeto JSON en una línea independiente y los datos formateados se incluyen en una cadena, por ejemplo:{"packet":"data","data":"{\"x\":1}\n"}.
JSONEachPacketString coloca los bytes de la carga útil en una cadena JSON sin validarlos ni recodificarlos. Las columnas String y FixedString pueden contener bytes arbitrarios, por lo que los formatos de salida de texto (como JSONEachRow, TSV o CSV) pueden emitir UTF-8 no válido para dichos valores, igual que el propio JSONEachRow de ClickHouse con el valor predeterminado output_format_json_validate_utf8 = 0; por tanto, no se garantiza que el flujo NDJSON resultante sea UTF-8 válido. Use JSONEachPacketBase64 para transportar bytes arbitrarios con exactitud de bytes.
Ejemplo:
curl "http://localhost:8123/?framing_output_format=JSONEachPacketString" -d "SELECT number FROM numbers(3) FORMAT JSONEachRow"Resultado:
{"packet":"data","data":"{\"number\":\"0\"}\n{\"number\":\"1\"}\n{\"number\":\"2\"}\n"}
{"packet":"profile_events","profile_events":[{"host_name":"localhost","current_time":"2026-07-11 00:00:00","thread_id":"0","type":"increment","name":"SelectedRows","value":"3"}]}
{"packet":"progress","progress":{"read_rows":"3","read_bytes":"24","total_rows_to_read":"3","result_rows":"3","result_bytes":"24","elapsed_ns":"1265958"}}fsync_metadata
Habilita o deshabilita fsync al escribir archivos .sql. Está habilitado de forma predeterminada.
Puede tener sentido deshabilitarlo si el server tiene millones de tablas pequeñas que se crean y eliminan constantemente.
functions_h3_default_if_invalid
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.2 | 0 | Una nueva configuración para el comportamiento heredado que permite entradas no válidas en las funciones h3 |
Si es false, las funciones h3, por ejemplo h3CellAreaM2, lanzan una excepción si la entrada no es válida. Si es true, devuelven 0 o el valor predeterminado.
geo_distance_returns_float64_on_float64_arguments
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.3 | 1 | Se aumenta la precisión predeterminada. |
Si los cuatro argumentos de las funciones geoDistance, greatCircleDistance y greatCircleAngle son Float64, estas devuelven Float64 y emplean doble precisión en los cálculos internos. En versiones anteriores de ClickHouse, las funciones siempre devolvían Float32.
geotoh3_argument_order
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.5 | lat_lon | Una nueva configuración para el comportamiento heredado que establece el orden de los argumentos lon y lat |
La función 'geoToH3' acepta (lon, lat) si se establece en 'lon_lat' y (lat, lon) si se establece en 'lat_lon'.
glob_expansion_max_elements
Máximo número de direcciones permitidas (para almacenamiento externo, funciones de tabla, etc.).
h3togeo_lon_lat_result_order
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.1 | 0 | Nueva configuración |
La función 'h3ToGeo' devuelve (lon, lat) si es true; de lo contrario, (lat, lon).
handshake_timeout_ms
Tiempo de espera, en milisegundos, para recibir el paquete Hello de las réplicas durante el handshake.
hedged_connection_timeout_ms
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 23.4 | 50 | Inicia una nueva conexión en solicitudes hedged después de 50 ms en lugar de 100, para que coincida con el tiempo de espera de conexión anterior |
Tiempo de espera para establecer una conexión con una réplica en solicitudes hedged
highlight_max_matches_per_row
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.4 | 10000 | Nueva configuración para limitar el número de coincidencias resaltadas por fila y evitar un uso excesivo de memoria. |
Establece el número máximo de coincidencias resaltadas por fila en la función highlight. Sirve para evitar un uso excesivo de memoria al resaltar patrones muy repetitivos en textos extensos.
Valores posibles:
- Entero positivo.
hnsw_candidate_list_size_for_search
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.10 | 256 | Nueva configuración. Anteriormente, el valor se especificaba opcionalmente en CREATE INDEX y el valor predeterminado era 64. |
El tamaño de la lista dinámica de candidatos durante la búsqueda en el índice de similitud vectorial, también conocido como 'ef_search'.
hsts_max_age
Tiempo de expiración de HSTS. 0 significa desactivar HSTS.
idle_connection_timeout
Tiempo de espera para cerrar conexiones TCP inactivas tras el número especificado de segundos.
Valores posibles:
- Entero positivo (0: cerrar inmediatamente, tras 0 segundos).
inject_random_order_for_select_without_order_by
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.10 | 0 | Nueva configuración |
Si está habilitada, inserta 'ORDER BY rand()' en las consultas SELECT sin cláusula ORDER BY. Se aplica solo cuando la profundidad de la subconsulta = 0. Las subconsultas e INSERT INTO … SELECT no se ven afectados. Si la estructura de nivel superior es UNION, 'ORDER BY rand()' se inserta en cada rama de forma independiente. Solo es útil para pruebas y desarrollo (la ausencia de ORDER BY es una fuente de resultados no deterministas en las consultas).
input_format
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | Nueva configuración para sobrescribir el formato de entrada de la consulta. |
Sobrescribe el formato de entrada de la consulta. Tiene prioridad sobre el formato especificado en ella.
interactive_delay
El intervalo, en microsegundos, para comprobar si se ha cancelado la ejecución de la solicitud y enviar el progreso.
intersect_default_mode
Establece el modo predeterminado en la consulta INTERSECT. Valores posibles: cadena vacía, 'ALL', 'DISTINCT'. Si está vacío, una consulta sin modo generará una excepción.
least_greatest_legacy_null_behavior
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.12 | 0 | Nueva configuración |
Si está habilitada, las funciones 'least' y 'greatest' devuelven NULL si alguno de sus argumentos es NULL.
legacy_column_name_of_tuple_literal
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 21.7 | 0 | Se añadió esta configuración solo por motivos de compatibilidad. Tiene sentido establecerla en 'true' al realizar una actualización progresiva del clúster desde una versión anterior a la 21.7 a una posterior |
Enumera todos los nombres de los elementos de los literales de tupla grandes en los nombres de sus columnas en lugar del hash. Esta configuración existe solo por motivos de compatibilidad. Tiene sentido establecerla en 'true' al realizar una actualización progresiva del clúster desde una versión anterior a la 21.7 a una posterior.
límite
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 0 | El tipo se amplió de UInt64 a Float para admitir valores negativos y fraccionarios, que se pasan directamente al soporte nativo de ClickHouse para `LIMIT` negativos/fraccionarios. |
Establece el número máximo de filas que se obtienen del resultado de la consulta. Ajusta el valor establecido por la cláusula LIMIT. El valor se pasa directamente a LIMIT y acepta todo lo que admite LIMIT, incluidos los valores negativos (cuenta desde el final del resultado) y las fracciones en (0, 1) (interpretadas como una proporción del resultado).
Valores posibles:
- 0 — El número de filas no está limitado.
- Entero positivo — número exacto de filas.
- Entero negativo — devuelve las últimas N filas.
- Un número real en el intervalo abierto
(0, 1)— devuelve esa fracción del resultado.
Esta configuración afecta a las consultas SELECT / UNION que generan resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo tiene efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen: se aplica la misma regla de no propagación que para cualquier otra configuración.
load_marks_asynchronously
Carga las marcas de MergeTree de forma asíncrona
Valor predeterminado en Cloud: 1.
lock_acquire_timeout
Define cuántos segundos espera una solicitud de bloqueo antes de fallar.
El tiempo de espera de bloqueo se usa para proteger frente a interbloqueos al ejecutar operaciones de lectura/escritura con tablas. Cuando el tiempo de espera expira y la solicitud de bloqueo falla, el servidor de ClickHouse lanza una excepción "¡El intento de bloqueo excedió el tiempo de espera! Se evitó un posible interbloqueo. El cliente debería reintentar." con el código de error DEADLOCK_AVOIDED.
Valores posibles:
- Entero positivo (en segundos).
- 0 — Sin tiempo de espera de bloqueo.
low_priority_query_wait_time_ms
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.4 | Nueva configuración. | 1000 |
Cuando se utiliza el mecanismo de priorización de consultas (consulte la configuración priority), las consultas de baja prioridad esperan a que terminen las consultas de mayor prioridad. Esta configuración especifica cuánto tiempo deben esperar.
make_distributed_plan
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.5 | 0 | Nueva configuración experimental. |
Crea un plan de consulta distribuida.
Al habilitarlo, se ajustan automáticamente las configuraciones que controlan funcionalidades que los planes de consulta distribuida aún no admiten:
enable_parallel_replicas = 0yautomatic_parallel_replicas_mode = 0— el plan distribuido realiza su propia distribución del trabajo;correlated_subqueries_use_in_memory_buffer = 0;use_skip_indexes_on_data_read = 0;compile_expressions = 0;query_plan_direct_read_from_text_index = 0.
merge_table_max_tables_to_look_for_schema_inference
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.1 | 1000 | Nueva configuración |
Al crear una tabla Merge sin un esquema explícito o al usar la función de tabla merge, se infiere el esquema como una unión de no más del número especificado de tablas coincidentes.
Si hay un número mayor de tablas, el esquema se inferirá a partir del primer número especificado de tablas.
mongodb_throw_on_unsupported_query
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.9 | 1 | Nueva configuración. |
| 24.10 | 1 | Nueva configuración. |
Si está habilitada, las tablas de MongoDB devolverán un error cuando no se pueda generar una consulta de MongoDB. De lo contrario, ClickHouse lee la tabla completa y la procesa localmente. Esta opción no se aplica cuando 'allow_experimental_analyzer=0'.
multiple_joins_try_to_keep_original_names
No añadir alias a la lista de expresiones de nivel superior al reescribir múltiples joins
normalize_function_names
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 21.3 | 1 | Normalizar los nombres de las funciones a su forma canónica; esto era necesario para el enrutamiento de consultas de proyección |
Normalizar los nombres de las funciones a su forma canónica
offset
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 0 | Tipo ampliado de UInt64 a Float para admitir valores negativos y fraccionarios, que se transfieren a la compatibilidad nativa de ClickHouse con `OFFSET` negativo/fraccionario. |
Establece el número de filas que se omiten antes de empezar a devolver filas de la consulta. Ajusta el desplazamiento establecido por la cláusula OFFSET. El valor se transfiere a OFFSET y admite todo lo que admite OFFSET, incluidos valores negativos y fracciones en (0, 1).
Valores posibles:
- 0 — No se omite ninguna fila.
- Entero positivo.
- Entero negativo.
- Un número real en el intervalo abierto
(0, 1)— se omite esa fracción del resultado.
Ejemplo
Tabla de entrada:
CREATE TABLE test (i UInt64) ENGINE = MergeTree() ORDER BY i;
INSERT INTO test SELECT number FROM numbers(500);Consulta:
SET limit = 5;
SET offset = 7;
SELECT * FROM test LIMIT 10 OFFSET 100;Resultado:
┌───i─┐
│ 107 │
│ 108 │
│ 109 │
└─────┘Esta configuración define el comportamiento de las consultas SELECT / UNION que producen resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen, conforme a la misma regla de no propagación aplicable a cualquier otra configuración.
order
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | Nueva configuración para añadir una cláusula ORDER BY alrededor de una consulta. |
Añade una cláusula ORDER BY a la consulta como subconsulta envolvente. Acepta una lista arbitraria de expresiones.
Esta es una configuración de construcción de consultas que el engine aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona en todos los protocolos: se puede proporcionar mediante el parámetro de URL HTTP, una cláusula SETTINGS en la consulta o un perfil de usuario.
Da forma a las consultas SELECT / UNION que generan resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen, igual que ocurre con cualquier otra configuración.
output_format
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | Nueva configuración para sobrescribir el formato de salida de la consulta. |
Sobrescribe el formato de salida de la consulta. Tiene prioridad sobre el formato especificado en la consulta, la extensión de archivo o mediante default_format.
página
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 0 | Nueva configuración para respuestas HTTP paginadas, equivalente a offset = limit * (page - 1). Float para admitir valores negativos o fraccionarios (se transmite a `LIMIT`/`OFFSET` de SQL). |
Establece el número de página de los resultados paginados. Equivale a offset = limit * (page - 1). Solo se puede especificar cuando se establece limit y no offset. Las páginas se numeran a partir de 1. Admite los mismos valores negativos o fraccionarios que limit y offset.
Es una configuración de construcción de consultas que el engine aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona con todos los protocolos: se puede proporcionar mediante el parámetro URL de HTTP, una cláusula SETTINGS en la consulta o un perfil de usuario.
Afecta a las consultas SELECT / UNION que producen resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia instrucción INSERT / CREATE, no se propaga al SELECT de origen: se aplica la misma regla de no propagación que a cualquier otra configuración.
paimon_target_snapshot_id
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.5 | -1 | Nueva configuración. |
Lectura de la instantánea de destino a nivel de consulta para el modo incremental de Paimon. Cuando es >0, el lector solo recuperará el delta del snapshot_id especificado sin avanzar la marca de agua confirmada. Predeterminado: -1 (deshabilitado)
parallelize_output_from_storages
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 23.5 | 1 | Permite el paralelismo al ejecutar consultas que leen desde file/url/s3/etc. Esto puede reordenar las filas. |
Paraleliza la salida en la etapa de lectura desde el almacenamiento. Permite paralelizar el procesamiento de consultas justo después de la lectura desde el almacenamiento, cuando sea posible
partial_result_on_first_cancel
Permite que la consulta devuelva un resultado parcial después de cancelarse.
per_part_index_stats
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.8 | 0 | Nueva opción. |
Registra estadísticas de índices por parte
poll_interval
Bloquea el bucle de espera de la consulta en el servidor durante el número de segundos especificado.
polyglot_dialect
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.3 | Nueva opción de configuración para especificar el dialecto SQL de origen del transpilador polyglot. |
Dialecto SQL de origen del transpilador polyglot (p. ej., 'sqlite', 'mysql', 'postgresql', 'snowflake', 'duckdb').
postgresql_fault_injection_probability
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.2 | 0 | Nueva configuración |
Probabilidad aproximada de que fallen las consultas internas de PostgreSQL (para la replicación). El valor válido está en el intervalo [0.0f, 1.0f]
predicate_statistics_sample_rate
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.5 | 0 | Nueva configuración para recopilar estadísticas de selectividad de predicados en system.predicate_statistics_log |
Recopila estadísticas de selectividad de predicados en system.predicate_statistics_log. Cuando se establece en N > 0, se toma una muestra de aproximadamente 1/N de las consultas (en función del ID de la consulta). 0 significa que está deshabilitado.
prefetch_buffer_size
El tamaño máximo del búfer de precarga para leer desde el sistema de archivos. Los valores superiores a 256 MiB se ajustan a 256 MiB, ya que un búfer de lectura nunca necesita ser mayor.
print_pretty_type_names
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.1 | 1 | Mejora la experiencia del usuario. |
Permite mostrar nombres de tipos con anidamiento profundo de forma legible y con sangrías en la consulta DESCRIBE y en la función toTypeName().
Ejemplo:
CREATE TABLE test (a Tuple(b String, c Tuple(d Nullable(UInt64), e Array(UInt32), f Array(Tuple(g String, h Map(String, Array(Tuple(i String, j UInt64))))), k Date), l Nullable(String))) ENGINE=Memory;
DESCRIBE TABLE test FORMAT TSVRaw SETTINGS print_pretty_type_names=1;a Tuple(
b String,
c Tuple(
d Nullable(UInt64),
e Array(UInt32),
f Array(Tuple(
g String,
h Map(
String,
Array(Tuple(
i String,
j UInt64
))
)
)),
k Date
),
l Nullable(String)
)priority
Prioridad de la consulta. 1: la más alta; cuanto mayor sea el valor, menor será la prioridad; 0: no usar prioridades.
push_external_roles_in_interserver_queries
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.11 | 1 | Nueva configuración. |
Permite enviar los roles de usuario desde el nodo de origen a otros nodos al ejecutar una consulta.
query_metric_log_interval
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.10 | -1 | Nueva configuración. |
El intervalo, en milisegundos, con el que se recopila el query_metric_log de las consultas individuales.
Si se establece en cualquier valor negativo, tomará el valor collect_interval_milliseconds de la configuración query_metric_log o, si no está presente, usará 1000 de forma predeterminada.
Para deshabilitar la recopilación de una sola consulta, establezca query_metric_log_interval en 0.
Valor predeterminado: -1
queue_max_wait_ms
El tiempo de espera en la cola de solicitudes si el número de solicitudes concurrentes supera el máximo.
rabbitmq_max_wait_ms
El tiempo de espera para leer de RabbitMQ antes de volver a intentarlo.
readonly
0: sin restricciones de solo lectura. 1: solo solicitudes de lectura, así como el cambio de configuraciones permitidas explícitamente. 2: solo solicitudes de lectura, así como el cambio de configuraciones, excepto la configuración 'readonly'.
recursive_cte_max_steps_in_type_inference
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.5 | 10 | Número máximo de iteraciones para inferir los tipos de las columnas en CTE recursivas mediante `getLeastSupertype` iterativo |
Número máximo de iteraciones para inferir los tipos de las columnas en CTE recursivas. Los tipos de las columnas se determinan aplicando iterativamente getLeastSupertype a las partes no recursiva y recursiva de la UNION ALL hasta alcanzar la convergencia. Establézcalo en 0 para desactivar la ampliación de tipos y usar solo los tipos de la parte no recursiva.
regexp_max_matches_per_row
Establece el número máximo de coincidencias de una única expresión regular por fila. Úselo para evitar la sobrecarga de memoria al usar una expresión regular codiciosa en la función extractAllGroupsHorizontal.
Posibles valores:
- Entero positivo.
reject_expensive_hyperscan_regexps
Rechaza patrones cuya evaluación con hyperscan probablemente resulte costosa (debido a la explosión de estados del NFA)
remerge_sort_lowered_memory_bytes_ratio
Si el uso de memoria después del remerge no se reduce en esta proporción, el remerge se deshabilitará.
remote_read_min_bytes_for_seek
Cantidad mínima de bytes necesaria para que una lectura remota (url, s3) haga seek en lugar de leer ignorando datos.
rename_files_after_processing
-
Type: String
-
Valor predeterminado: Cadena vacía
Esta configuración permite especificar un patrón de cambio de nombre para los archivos procesados por la función de tabla file. Cuando esta opción está establecida, todos los archivos leídos por la función de tabla file se renombrarán según el patrón especificado con placeholders, siempre que el procesamiento de los archivos haya finalizado correctamente.
Marcadores de posición
%a— Nombre completo del archivo original (p. ej., "sample.csv").%f— Nombre del archivo original sin extensión (p. ej., "sample").%e— Extensión del archivo original con punto (p. ej., ".csv").%t— Marca de tiempo (en microsegundos).%%— Signo de porcentaje ("%").
Ejemplo
-
Opción:
--rename_files_after_processing="processed_%f_%t%e" -
Consulta:
SELECT * FROM file('sample.csv')
Si sample.csv se lee correctamente, el archivo se renombrará a processed_sample_1683473210851438.csv
replication_wait_for_inactive_replica_timeout
Especifica cuánto tiempo (en segundos) hay que esperar para que las réplicas inactivas ejecuten consultas ALTER, OPTIMIZE o TRUNCATE.
Valores posibles:
0— No esperar.- Entero negativo — Esperar indefinidamente.
- Entero positivo — Número de segundos de espera.
reserve_memory
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.7 | 0 | Nueva configuración para reservar memoria para una carga de trabajo específica antes de iniciar una consulta. |
Se usa en la planificación de cargas de trabajo. Es la cantidad mínima de RAM reservada para ejecutar una consulta en un solo servidor. La reserva se realiza a través de la jerarquía WORKLOAD usando el valor de la configuración de consulta workload.
Si no hay suficiente memoria disponible para la carga de trabajo, la consulta no se inicia y queda en estado pendiente hasta que la reserva pueda satisfacerse.
Un valor de 0 significa que no hay reserva.
Esta configuración solo tiene efecto si se crea el recurso MEMORY RESERVATION.
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.2 | 0 | Nueva configuración. |
Sustituye el motor de tabla de ReplicatedMergeTree por SharedMergeTree durante RESTORE.
Valor predeterminado en Cloud: 1.
result_overflow_mode
Establece qué hacer si el volumen del resultado supera alguno de los límites.
Valores posibles:
throw: lanzar una excepción (predeterminado).break: detener la ejecución de la consulta y devolver el resultado parcial, como si se hubieran agotado los datos de origen.
Usar 'break' es similar a usar LIMIT. Break interrumpe la ejecución solo a nivel de
bloque. Esto significa que la cantidad de filas devueltas es mayor que
max_result_rows, es múltiplo de max_block_size
y depende de max_threads.
Ejemplo
SET max_threads = 3, max_block_size = 3333;
SET max_result_rows = 3334, result_overflow_mode = 'break';
SELECT *
FROM numbers_mt(100000)
FORMAT Null;6666 rows in set. ...resumable_backup_from_snapshot
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 0 | Nueva configuración experimental para habilitar `BACKUP FROM SNAPSHOT` reanudable. |
Habilita BACKUP FROM SNAPSHOT reanudable: se puede volver a ejecutar un intento fallido sin copiar de nuevo las
entradas de los lotes ya completados. Solo está disponible en ClickHouse Cloud para destinos S3 y
AzureBlobStorage de tipo directorio. Habilitarla en compilaciones de código abierto de ClickHouse, donde
BACKUP FROM SNAPSHOT no está disponible, provoca que BACKUP falle con WRONG_BACKUP_SETTINGS.
rows_before_aggregation
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.8 | 0 | Proporciona el valor exacto de la estadística rows_before_aggregation; representa el número de filas leídas antes de la agregación |
Si está habilitado, ClickHouse proporcionará el valor exacto de la estadística rows_before_aggregation; representa el número de filas leídas antes de la agregación
run_query_in_background
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 0 | Nueva configuración para ejecutar una consulta en segundo plano, desconectada de la conexión que la envió y descartando el resultado. |
Si está habilitada, el servidor programa la consulta en segundo plano, devuelve inmediatamente un resultado vacío satisfactorio y ejecuta la consulta hasta completarla, independientemente de lo que ocurra con la conexión.
Una consulta en segundo plano no sobrevive a un reinicio del servidor. Durante el apagado, respeta la misma configuración del servidor que una consulta en primer plano: shutdown_wait_unfinished_queries determina si se cancela o se espera a que finalice (en ambos casos, las entradas en cola se descartan sin generar una entrada en system.query_log), y shutdown_wait_unfinished limita cuánto tiempo espera el servidor.
Realice el seguimiento de la consulta mediante su query_id: en system.processes mientras se ejecuta y en system.query_log después de que finalice y se escriba la entrada en el registro de consultas.
Se aplica a las consultas recibidas mediante los protocolos TCP nativo y HTTP. A través de HTTP, pase la configuración como parámetro de URL. No se puede cambiar con SET; habilítela por consulta o a nivel de usuario o perfil.
El principal caso de uso es un INSERT ... SELECT de larga duración que no debe perderse cuando se interrumpe la conexión del client.
secondary_indices_enable_bulk_filtering
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.5 | 1 | Un nuevo algoritmo de filtrado con índices de omisión de datos |
Activa el algoritmo de filtrado masivo para los índices. Se espera que siempre ofrezca mejores resultados, pero esta configuración se mantiene por compatibilidad y control.
select
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | Nueva configuración para envolver una consulta en `SELECT <expr_list> FROM (<query>)`. |
Envuelve la consulta en una subconsulta con una lista explícita de expresiones SELECT. Si no está vacía, la consulta que produce resultados se envuelve como SELECT <expr_list> FROM (<query>).
Es una configuración de construcción de consultas que el motor aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona con todos los protocolos: se puede especificar mediante el parámetro URL de HTTP, una cláusula SETTINGS en la consulta o un perfil de usuario.
Da forma a las consultas SELECT / UNION que producen resultados. En el caso de una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen; se aplica la misma regla de no propagación que a cualquier otra configuración.
select_sequential_consistency
Habilita o deshabilita la consistencia secuencial para las consultas SELECT. Requiere que insert_quorum_parallel esté deshabilitado (habilitado de forma predeterminada).
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
Uso
Cuando la consistencia secuencial está habilitada, ClickHouse permite al client ejecutar la consulta SELECT solo en aquellas réplicas que contienen datos de todas las consultas INSERT anteriores ejecutadas con insert_quorum. Si el client hace referencia a una réplica parcial, ClickHouse generará una excepción. La consulta SELECT no incluirá datos que aún no se hayan escrito en el quórum de réplicas.
Cuando insert_quorum_parallel está habilitado (el valor predeterminado), select_sequential_consistency no funciona. Esto se debe a que las consultas INSERT en paralelo pueden escribirse en distintos conjuntos de réplicas de quórum, por lo que no hay garantía de que una sola réplica haya recibido todas las escrituras.
Véase también:
session_timezone
Establece la zona horaria implícita de la sesión o consulta actual. La zona horaria implícita es la zona horaria que se aplica a los valores de tipo DateTime/DateTime64 que no tienen una zona horaria especificada de forma explícita. Esta configuración tiene prioridad sobre la zona horaria implícita configurada globalmente (a nivel del servidor). Un valor de '' (cadena vacía) significa que la zona horaria implícita de la sesión o consulta actual es igual a la zona horaria del servidor.
Puede usar las funciones timeZone() y serverTimeZone() para obtener la zona horaria de la sesión y la del servidor.
Valores posibles:
- Cualquier nombre de zona horaria de
system.time_zones, por ejemplo,Europe/Berlin,UTCoZulu
Ejemplos:
SELECT timeZone(), serverTimeZone() FORMAT CSV
"Europe/Berlin","Europe/Berlin"SELECT timeZone(), serverTimeZone() SETTINGS session_timezone = 'Asia/Novosibirsk' FORMAT CSV
"Asia/Novosibirsk","Europe/Berlin"Asigne la zona horaria de la sesión 'America/Denver' al DateTime interno sin una zona horaria especificada explícitamente:
SELECT toDateTime64(toDateTime64('1999-12-12 23:23:23.123', 3), 3, 'Europe/Zurich') SETTINGS session_timezone = 'America/Denver' FORMAT TSV
1999-12-13 07:23:23.123CREATE TABLE test_tz (`d` DateTime('UTC')) ENGINE = Memory AS SELECT toDateTime('2000-01-01 00:00:00', 'UTC');
SELECT *, timeZone() FROM test_tz WHERE d = toDateTime('2000-01-01 00:00:00') SETTINGS session_timezone = 'Asia/Novosibirsk'
0 rows in set.
SELECT *, timeZone() FROM test_tz WHERE d = '2000-01-01 00:00:00' SETTINGS session_timezone = 'Asia/Novosibirsk'
┌Esto sucede debido a distintos flujos de análisis:
toDateTime()sin una zona horaria especificada explícitamente, usado en la primera consultaSELECT, respeta la configuraciónsession_timezoney la zona horaria global.- En la segunda consulta, se interpreta un DateTime a partir de un String y hereda el tipo y la zona horaria de la columna existente
d. Por lo tanto, no se respetan la configuraciónsession_timezoneni la zona horaria global.
Véase también
set_overflow_mode
Establece qué sucede cuando la cantidad de datos supera uno de los límites.
Valores posibles:
throw: lanzar una excepción (predeterminado).break: dejar de ejecutar la consulta y devolver el resultado parcial, como si los datos de origen se hubieran agotado.
single_join_prefer_left_table
Para un solo JOIN, en caso de ambigüedad de identificadores, se prefiere la tabla de la izquierda
skip_redundant_aliases_in_udf
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.12 | 0 | Cuando está habilitado, permite usar la misma función definida por el usuario varias veces para varias columnas materializadas en la misma tabla. |
Los alias redundantes se omiten (se sustituyen) en las funciones definidas por el usuario para simplificar su uso.
Valores posibles:
- 1 — Los alias se omiten (se sustituyen) en las UDF.
- 0 — Los alias no se omiten (se sustituyen) en las UDF.
Ejemplo
La diferencia entre habilitado y deshabilitado:
Consulta:
SET skip_redundant_aliases_in_udf = 0;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));
EXPLAIN SYNTAX SELECT test_03274(4 + 2);Resultado:
SELECT ((4 + 2) + 1 AS y, y + 2)Consulta:
SET skip_redundant_aliases_in_udf = 1;
CREATE FUNCTION IF NOT EXISTS test_03274 AS ( x ) -> ((x + 1 as y, y + 2));
EXPLAIN SYNTAX SELECT test_03274(4 + 2);Resultado:
SELECT ((4 + 2) + 1, ((4 + 2) + 1) + 2)sleep_after_receiving_query_ms
Tiempo de espera tras recibir una consulta en TCPHandler
snappy_mode
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.7 | basic | Nueva configuración para controlar el formato de transmisión usado para la compresión snappy en la E/S genérica de archivos/URL. El valor predeterminado `basic` conserva la compatibilidad con versiones anteriores para la lectura del formato de bloques snappy de Hadoop; HTTP `Content-Encoding: snappy` siempre usa el formato framing, independientemente de esta configuración. |
Controla el formato de transmisión usado para la compresión snappy en rutas genéricas de E/S de archivos, como file y url. HTTP Content-Encoding: snappy siempre usa el formato framing e ignora esta configuración.
Ten en cuenta que el formato bruto de bloques snappy producido por una única llamada a snappy::Compress (por ejemplo, las cargas útiles del protocolo remoto de Prometheus gestionadas por SnappyBasicReadBuffer) es un formato de transmisión independiente y específico del protocolo, y no está controlado por esta configuración.
Valores posibles:
basic— Formato de bloques snappy de Hadoop. Compatible con archivos leídos y escritos por Hadoop. Admite lectura y escritura.framed— Formato framing de Snappy, el formato estándar de streaming definido por Google. Admite lectura y escritura.
sort
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | Nueva configuración para añadir una cláusula ORDER BY simple que envuelve una consulta. |
Añade una cláusula ORDER BY simple a la consulta envolviéndola en una subconsulta. Acepta una lista de identificadores o referencias posicionales a columnas (enteros positivos) separada por comas, con un prefijo opcional + (ASC) o - (DESC). Ejemplo: sort=a,-b ordena por a de forma ascendente y por b de forma descendente; sort=1,-2 ordena por la primera columna de forma ascendente y por la segunda de forma descendente. No se puede combinar con order.
Esta es una configuración de construcción de consultas que el motor aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona en todos los protocolos: se puede especificar mediante el parámetro URL de HTTP, una cláusula SETTINGS dentro de la consulta o un perfil de usuario.
Da forma a las consultas SELECT / UNION que producen resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo tiene efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen, igual que ocurre con cualquier otra configuración.
sort_overflow_mode
Establece qué sucede si el número de filas recibidas antes de la ordenación supera uno de los límites.
Valores posibles:
throw: lanzar una excepción.break: detener la ejecución de la consulta y devolver el resultado parcial.
splitby_max_substrings_includes_remaining_string
Controla si la función splitBy*() con el argumento max_substrings > 0 incluirá la cadena restante en el último elemento del array de resultados.
Valores posibles:
0- La cadena restante no se incluirá en el último elemento del array de resultados.1- La cadena restante se incluirá en el último elemento del array de resultados. Este es el comportamiento de la funciónsplit()de Spark y del método 'string.split()' de Python.
statistics_max_set_size_for_exact_selectivity_estimation
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 10000 | Nueva configuración para limitar el coste de estimar la selectividad de `IN` con un conjunto grande: por encima del límite, el estimador usa el tamaño del conjunto y su rango acotado en lugar de los rangos exactos. Antes de la versión 26.8, la estimación no tenía límite, por lo que el valor anterior es 0 (sin límite) y `compatibility` con una versión anterior restaura los rangos exactos para conjuntos de cualquier tamaño. |
El tamaño máximo del conjunto situado en el lado derecho del operador IN para el que el estimador de selectividad determina los rangos exactos que abarca el conjunto. Determinarlos requiere un Field por elemento, una ordenación y una sonda de estadísticas por elemento, lo que, en conjuntos grandes, domina la planificación de consultas. Por encima de este límite, el estimador calcula la selectividad a partir del tamaño del conjunto y de su rango acotado, mediante una única pasada lineal por el conjunto, sin ordenación ni sondas de estadísticas por elemento. Cero significa que no hay límite.
stop_refreshable_materialized_views_on_startup
Al iniciar el servidor, impide la planificación de las vistas materializadas actualizables, como si se hubiera ejecutado SYSTEM STOP VIEWS. Después, puedes iniciarlas manualmente con SYSTEM START VIEWS o SYSTEM START VIEW <name>. También se aplica a las vistas creadas posteriormente. No tiene efecto sobre las vistas materializadas no actualizables.
tcp_keep_alive_timeout
El tiempo, en segundos, que debe permanecer inactiva la conexión antes de que TCP comience a enviar sondas de keepalive
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.4 | 600000 | Tiempo de espera para bloquear la caché al reservar espacio para datos temporales en la caché del sistema de archivos |
Tiempo de espera para bloquear la caché al reservar espacio para datos temporales en la caché del sistema de archivos
throw_if_no_data_to_insert
Permite o prohíbe los INSERT vacíos; está habilitada de forma predeterminada (lanza un error si el insert está vacío). Solo se aplica a los INSERT que usan clickhouse-client o la interfaz gRPC.
time_series_prefer_recent_samples_table
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 1 | Nueva configuración para leer de la tabla de muestras recientes de una tabla TimeSeries cuando el intervalo de tiempo solicitado se encuentra dentro de su ventana TTL. |
Lee de la tabla de muestras recientes de una tabla TimeSeries en lugar de la tabla de muestras principal cuando todo el intervalo de tiempo solicitado se encuentra dentro de la ventana TTL de la tabla de muestras recientes (consulta la configuración recent_samples_ttl_seconds del motor de tabla TimeSeries).
timeout_before_checking_execution_speed
Comprueba que la velocidad de ejecución no sea demasiado baja (no inferior a min_execution_speed)
una vez transcurrido el tiempo especificado en segundos.
transfer_overflow_mode
Establece qué sucede cuando la cantidad de datos supera uno de los límites.
Valores posibles:
throw: lanzar una excepción (por defecto).break: dejar de ejecutar la consulta y devolver el resultado parcial, como si los datos de origen se hubieran agotado.
transform_null_in
Habilita la igualdad entre valores NULL para el operador IN.
De forma predeterminada, los valores NULL no se pueden comparar porque NULL significa un valor indefinido. Por lo tanto, la comparación expr = NULL siempre debe devolver false. Con esta configuración, NULL = NULL devuelve true para el operador IN.
Valores posibles:
- 0 — La comparación de valores
NULLen el operadorINdevuelvefalse. - 1 — La comparación de valores
NULLen el operadorINdevuelvetrue.
Ejemplo
Considere la tabla null_in:
┌──idx─┬─────i─┐
│ 1 │ 1 │
│ 2 │ NULL │
│ 3 │ 3 │
└──────┴───────┘Consulta:
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 0;Resultado:
┌──idx─┬────i─┐
│ 1 │ 1 │
└──────┴──────┘Consulta:
SELECT idx, i FROM null_in WHERE i IN (1, NULL) SETTINGS transform_null_in = 1;Resultado:
┌──idx─┬─────i─┐
│ 1 │ 1 │
│ 2 │ NULL │
└──────┴───────┘Véase también
traverse_shadow_remote_data_paths
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.3 | 0 | Recorre el directorio shadow al consultar system.remote_data_paths. |
Recorre los datos congelados (directorio shadow), además de los datos reales de la tabla, al consultar system.remote_data_paths
union_default_mode
Establece un modo para combinar los resultados de las consultas SELECT. Esta configuración solo se usa con UNION cuando no se especifica explícitamente UNION ALL ni UNION DISTINCT.
Valores posibles:
'DISTINCT'— ClickHouse devuelve como resultado de la combinación de consultas las filas sin duplicados.'ALL'— ClickHouse devuelve como resultado de la combinación de consultas todas las filas, incluidas las duplicadas.''— ClickHouse genera una excepción cuando se usa conUNION.
Vea ejemplos en UNION.
unknown_packet_in_send_data
Envía un paquete desconocido en lugar del enésimo paquete de datos
variant_throw_on_type_mismatch
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.4 | 1 | Nueva configuración para controlar el comportamiento ante incompatibilidades de tipo en la implementación predeterminada de Variant |
Al aplicar una función a una columna Variant mediante la implementación predeterminada, controla qué ocurre con las filas cuyo tipo real es incompatible con la función:
true(por defecto) — lanzar una excepción.false— devolverNULLpara esas filas.
wait_changes_become_visible_after_commit_mode
Esperar a que los cambios confirmados sean realmente visibles en la instantánea más reciente
workload
Nombre del workload que se utilizará para acceder a los recursos
write_full_path_in_iceberg_metadata
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.8 | 0 | Nueva configuración. |
Escribir rutas completas (incluido s3://) en los archivos de metadatos de Iceberg.
zstd_window_log_max
Permite seleccionar el valor máximo de window log de ZSTD (no se utilizará para la familia MergeTree)