Estos ajustes están disponibles en system.settings y se generan automáticamente a partir del código fuente.
allow_aggregate_partitions_independently
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.7 | 1 | Habilita de forma predeterminada la agregación independiente por partición cuando la clave de partición coincide con la clave de GROUP BY. Las heurísticas de ejecución existentes en `ReadFromMergeTree::requestOutputEachPartitionThroughSeparatePortForAggregation` ya omiten la optimización cuando la distribución de las particiones es desfavorable (muy pocas particiones, demasiadas particiones o tamaños de partición muy desiguales), por lo que habilitar esta configuración es seguro en los casos en los que, de otro modo, no tendría efecto. |
Habilita la agregación independiente de las particiones en hilos separados cuando la clave de partición coincide con la clave de group by. Resulta beneficioso cuando el número de particiones es cercano al número de núcleos y las particiones tienen aproximadamente el mismo tamaño. Las heurísticas de ReadFromMergeTree desactivan automáticamente la optimización para distribuciones desfavorables (muy pocas particiones, demasiadas particiones o tamaños de partición muy desiguales); consulta force_aggregate_partitions_independently para omitir esas comprobaciones.
allow_archive_path_syntax
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.8 | 1 | Se añadió una nueva configuración que permite deshabilitar la sintaxis de rutas de archivos comprimidos. |
| 24.5 | 1 | Se añadió una nueva configuración que permite deshabilitar la sintaxis de rutas de archivos comprimidos. |
Los motores File/S3 y la función de tabla interpretarán las rutas con '::' como <archive> :: <file> si el archivo tiene la extensión correcta.
allow_asynchronous_read_from_io_pool_for_merge_tree
Usa el grupo de E/S en segundo plano para leer desde tablas MergeTree. Esta configuración puede mejorar el rendimiento de las consultas limitadas por E/S.
allow_calculating_subcolumns_sizes_for_merge_tree_reading
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.3 | 1 | Permite calcular los tamaños de las subcolumnas para la lectura de MergeTree y mejorar la división de las tareas de lectura |
Cuando está habilitado, ClickHouse calculará el tamaño de los archivos necesarios para leer cada subcolumna, lo que mejora el cálculo de los tamaños de las tareas y los bloques.
allow_changing_replica_until_first_data_packet
Si está habilitado, en las solicitudes hedged podemos iniciar una nueva conexión hasta recibir el primer paquete de datos, incluso si ya se ha registrado cierto progreso
(aunque el progreso no se haya actualizado durante el tiempo de espera de receive_data_timeout); de lo contrario, se deshabilita el cambio de réplica después de la primera vez que se registra progreso.
allow_create_index_without_type
Permite la consulta CREATE INDEX sin TYPE. La consulta se ignorará. Creado para pruebas de compatibilidad con SQL.
allow_creating_set_partitions_independently
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 1 | Nueva configuración para habilitar la predesduplicación paralela por partición del resultado de la subconsulta al crear el conjunto para `IN (subquery)`, cuando la expresión de partición es una función determinista de las columnas de salida de la subconsulta. |
Habilita la predesduplicación paralela por partición del resultado de la subconsulta al crear el conjunto para IN (subquery), cuando la expresión de partición de la tabla MergeTree de la subconsulta es una función determinista de las columnas de salida de la subconsulta. Cada partición se lee mediante un flujo independiente y se deduplica por separado, por lo que la única transformada de llenado del conjunto solo calcula hashes de filas únicas. No se aplica con FINAL, réplicas paralelas ni GLOBAL IN. La optimización solicita la lectura por partición únicamente cuando los datos tienen más de una partición y la partición más grande contiene como máximo el doble de filas que la partición promedio (consulte force_creating_set_partitions_independently para omitir la comprobación de desequilibrio); cuando los flujos ya están separados por partición porque otra función por partición los dividió (por ejemplo, LIMIT BY por partición), la predesduplicación se aplica de todos modos, ya que la disposición de lectura ya está fijada. Mientras se crea el conjunto, las tablas de deduplicación de todos los flujos contienen aproximadamente una copia adicional de las claves únicas.
allow_custom_error_code_in_throwif
Permite usar un código de error personalizado en la función throwIf(). Si es true, las excepciones lanzadas pueden tener códigos de error inesperados.
allow_ddl
Si se establece en true, un usuario puede ejecutar consultas DDL.
allow_delta_kernel_rs
Alias: allow_experimental_delta_kernel_rs
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 1 | Nuevo nombre de `allow_experimental_delta_kernel_rs`, que ya no es experimental y se mantiene como alias. El valor predeterminado no cambia. |
| 25.5 | 1 | Nueva SETTING. Se introdujo con el nombre `allow_experimental_delta_kernel_rs`, que ahora es un alias; la fila se conserva bajo el nombre canónico para mantener todo el historial. |
Permite usar la implementación delta-kernel-rs para leer tablas de Delta Lake.
allow_distinct_partitions_independently
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 1 | Nueva SETTING para habilitar la evaluación independiente de `DISTINCT` por partición cuando la expresión de partición es una función determinista de las columnas de `DISTINCT`. |
Habilita la evaluación independiente de DISTINCT por partición en hilo separado cuando la expresión de partición es una función determinista de las columnas de DISTINCT, evitando la combinación entre flujos. Resulta beneficioso cuando el número de particiones se aproxima al número de núcleos y las particiones tienen aproximadamente el mismo tamaño; de lo contrario, una heurística de coste la omite. Consulte max_number_of_partitions_for_independent_distinct y force_distinct_partitions_independently. No se aplica con FINAL ni con réplicas paralelas.
No se aplica cuando se configura max_rows_in_distinct o max_bytes_in_distinct: estos límites los aplica la única transformada DISTINCT que procesa todo el resultado combinado, por lo que se mantiene la combinación entre flujos para preservar su alcance global.
allow_distributed_ddl
Si se establece en true, se permite a un usuario ejecutar consultas DDL distribuidas.
allow_drop_detached
Permite las consultas ALTER TABLE … DROP DETACHED PART[ITION] …
allow_dynamic_type_in_join_keys
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.10 | 0 | No permitir el uso del tipo Dynamic en las claves de JOIN de forma predeterminada |
Permite usar el tipo Dynamic en las claves de JOIN. Se añadió por compatibilidad. No se recomienda usar el tipo Dynamic en las claves de JOIN, porque la comparación con otros tipos puede dar lugar a resultados inesperados.
allow_execute_multiif_columnar
Permite ejecutar la función multiIf de forma columnar
allow_fuzz_query_functions
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.2 | 0 | Nueva opción de configuración para habilitar la función fuzzQuery. |
Habilita la función fuzzQuery, que aplica mutaciones aleatorias del AST a una cadena de consulta.
allow_general_join_planning
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.1 | 1 | Permite un algoritmo de planificación de JOIN más general cuando está habilitado el algoritmo hash join. |
Permite un algoritmo de planificación de JOIN más general, capaz de manejar condiciones más complejas, pero solo funciona con hash join. Si hash join no está habilitado, se usa el algoritmo habitual de planificación de JOIN independientemente del valor de esta configuración.
allow_get_client_http_header
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.3 | 0 | Se introdujo una nueva función. |
Permite usar la función getClientHTTPHeader, que permite obtener el valor de un encabezado de la solicitud HTTP actual. No está habilitada de forma predeterminada por motivos de seguridad, porque algunos encabezados, como Cookie, podrían contener información sensible. Ten en cuenta que los encabezados X-ClickHouse-*, Authentication y Authorization siempre están restringidos y no se pueden obtener con esta función.
allow_hyperscan
Permite el uso de funciones que utilizan la biblioteca Hyperscan. Desactívelo para evitar tiempos de compilación potencialmente largos y un uso excesivo de recursos.
allow_iceberg_remove_orphan_files
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.4 | 0 | Nueva configuración para habilitar la eliminación de archivos huérfanos de Iceberg |
Permite usar 'ALTER TABLE … EXECUTE remove_orphan_files()' en tablas Iceberg.
allow_insert_into_iceberg
Aliases: allow_experimental_insert_into_iceberg
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.2 | 0 | La inserción en Iceberg pasó a Beta |
| 25.7 | 0 | Nueva configuración. |
Permite ejecutar consultas insert en Iceberg.
allow_introspection_functions
Activa o desactiva las funciones de introspección para el perfilado de consultas.
Valores posibles:
- 1 — Funciones de introspección activadas.
- 0 — Funciones de introspección desactivadas.
Véase también
- Sampling Query Profiler
- Tabla del sistema trace_log
allow_key_condition_coalesce_rewrite
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.5 | 1 | Nueva SETTING para reescribir predicados de la forma `coalesce(a_1, ..., a_N) <op> const` (o, de forma equivalente, `ifNull`, o con la constante a la izquierda) como una disyunción antes del análisis de índices, de modo que puedan usarse la clave primaria por columna y los índices de omisión de cada `a_i`. También se manejan formas con constantes parciales como `coalesce(a, 42, b)` y `coalesce(a, b, 42)`. |
Reescribe predicados de la forma coalesce(a_1, ..., a_N) <op> const (o, de forma equivalente, ifNull, o con la constante a la izquierda) como la disyunción (a_1 <op> const) OR (a_1 IS NULL AND a_2 <op> const) OR ... OR (a_1 IS NULL AND ... AND a_{N-1} IS NULL AND a_N <op> const) antes del análisis de índices, de modo que puedan usarse la clave primaria por columna y los índices de omisión de cada a_i. Se manejan formas con constantes parciales como coalesce(a, 42, b) y coalesce(a, b, 42): la lista de argumentos se normaliza como el propio coalesce (se eliminan los literales NULL y los argumentos posteriores al primero que no es Nullable) y, si existe, una constante no NULL final se emite como la rama final. La reescritura es estrictamente aditiva para la poda de índices; el filtrado en tiempo de ejecución sigue usando el predicado original.
Además, los predicados de igualdad exacta de la forma nullIf(key, sentinel) = const (donde sentinel != const y los tipos coinciden exactamente) se reescriben como key = const para que la clave primaria, la partición y los índices de omisión de key puedan descartar gránulos directamente. No se admite la poda por rango ni disyuntiva de nullIf.
allow_limit_by_partitions_independently
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.6 | 1 | Nueva opción para habilitar la evaluación independiente de `LIMIT BY` por partición cuando la expresión de partición es una función determinista de las columnas de `LIMIT BY`. |
Habilita la evaluación independiente de LIMIT BY por partición en hilos separados cuando la expresión de partición es una función determinista de las columnas de LIMIT BY.
allow_lossy_numeric_supertype
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 0 | Nueva SETTING que permite que if/multiIf/coalesce/ifNull/array/map resuelvan ramas exclusivamente numéricas sin un tipo común sin pérdida (p. ej., Decimal + Float64) a un supertipo numérico (Float64, con posible pérdida de precisión), de modo que el resultado pueda agregarse. Es independiente de use_variant_as_common_type: con esta opción desactivada, dichas ramas antes generaban NO_COMMON_TYPE; con ella activada, se convertían en un Variant; en ambos casos, ahora se resuelven a Float64. |
Cuando está habilitada, if/multiIf/coalesce/ifNull/array/map aplicadas a un conjunto de argumentos numéricos que no tiene un tipo común sin pérdida (por ejemplo, un Decimal y un Float64, o un Int64 y un Float64) se resuelven en un supertipo numérico (Float64) en lugar de producir un error, con posible pérdida de precisión. Esto permite usar el resultado directamente con funciones de agregación que combinan valores, como sum, avg, min y max. Esta opción es independiente de use_variant_as_common_type: el supertipo numérico se produce independientemente de que use_variant_as_common_type esté habilitada o no. Cuando está deshabilitada (de forma predeterminada), estos conjuntos de argumentos no tienen un tipo común, por lo que se convierten en un Variant (si use_variant_as_common_type está habilitada) o generan NO_COMMON_TYPE.
allow_materialized_view_with_bad_select
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.4 | 0 | No permitir la creación de MV que hagan referencia a columnas o tablas inexistentes |
| 24.9 | 1 | Admitir (pero sin habilitar aún) una validación más estricta en CREATE MATERIALIZED VIEW |
Permite CREATE MATERIALIZED VIEW con una consulta SELECT que haga referencia a tablas o columnas inexistentes. Debe seguir siendo sintácticamente válida. No se aplica a las MV refrescables. No se aplica si el esquema de la MV debe inferirse a partir de la consulta SELECT (es decir, si CREATE no tiene lista de columnas ni cláusula TO). Puede usarse para crear una MV antes de su tabla de origen.
allow_metadata_only_named_tuple_alter
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 0 | Nueva configuración para controlar ALTER de solo metadatos al añadir subcampos a Tuple con nombre. |
Si es true, ALTER MODIFY COLUMN en una Tuple con nombre que solo añade nuevos subcampos es una operación de solo metadatos (sin mutación de datos). Establézcalo en false para forzar el comportamiento anterior de mutación completa.
allow_minmax_index_for_json
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.7 | 0 | Prohíbe crear índices de omisión minmax en columnas JSON de forma predeterminada, porque la serialización del índice no puede manejar valores de Field heterogéneos |
Permite crear índices de omisión minmax en columnas JSON (Object). Está deshabilitado de forma predeterminada porque la ruta de serialización del índice minmax no puede manejar valores de Field heterogéneos que pueden contener las columnas JSON.
allow_named_collection_override_by_default
Permite sobrescribir de forma predeterminada los campos de las colecciones con nombre.
allow_non_metadata_alters
Permite ejecutar operaciones ALTER que afectan no solo a los metadatos de las tablas, sino también a los datos en disco
allow_nonconst_timezone_arguments
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 23.4 | 0 | Permite argumentos de zona horaria no constantes en determinadas funciones relacionadas con el tiempo, como toTimeZone(), fromUnixTimestamp*(), snowflakeToDateTime*(). |
Permite argumentos de zona horaria no constantes en determinadas funciones relacionadas con el tiempo, como toTimeZone(), fromUnixTimestamp*(), snowflakeIDToDateTime*(). Esta configuración existe únicamente por motivos de compatibilidad. En ClickHouse, la zona horaria es una propiedad del tipo de dato y, por extensión, de la columna. Habilitar esta configuración da la impresión errónea de que distintos valores dentro de una columna pueden tener distintas zonas horarias. Por lo tanto, no habilite esta configuración.
allow_nullable_tuple_in_extracted_subcolumns
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.3 | 0 | Nueva configuración que controla si las subcolumnas extraídas de tipo Tuple pueden ser anulables. |
Controla si las subcolumnas extraídas de tipo Tuple(...) pueden tener el tipo Nullable(Tuple(...)).
false: DevuelveTuple(...)y usa valores de tupla predeterminados para las filas en las que falta la subcolumna.true: DevuelveNullable(Tuple(...))y usaNULLpara las filas en las que falta la subcolumna.
Esta configuración controla solo el comportamiento de las subcolumnas extraídas.
No controla si se pueden crear columnas Nullable(Tuple(...)) en tablas; eso lo controla enable_nullable_tuple_type.
ClickHouse usa el valor de esta configuración cargado al iniciar el servidor.
Los cambios realizados con SET o con SETTINGS a nivel de consulta no cambian el comportamiento de las subcolumnas extraídas.
Para cambiar el comportamiento de las subcolumnas extraídas, actualiza allow_nullable_tuple_in_extracted_subcolumns en la configuración del perfil de inicio (por ejemplo, users.xml) y reinicia el servidor.
allow_rank_dense_rank_arguments
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.5 | 0 | Nueva configuración. Antes de la versión 26.5, las funciones de ventana `RANK` y `DENSE_RANK` ignoraban silenciosamente cualquier argumento proporcionado (equivalente a `allow_rank_dense_rank_arguments = 1`). A partir de la versión 26.5, rechazan los argumentos de forma predeterminada con `NUMBER_OF_ARGUMENTS_DOESNT_MATCH` porque, según el estándar SQL, estas funciones no aceptan argumentos. Establezca esto en `1` para restaurar el comportamiento heredado. |
Permite pasar argumentos a las funciones de ventana RANK y DENSE_RANK para mantener la compatibilidad con versiones anteriores.
Según el estándar SQL, RANK y DENSE_RANK no aceptan argumentos: clasifican las filas basándose únicamente en la
window OVER (ORDER BY ...). En las versiones de ClickHouse anteriores a la 26.5, consultas como
RANK(x) OVER (...) aceptaban e ignoraban silenciosamente el argumento, lo que generaba confusión entre los usuarios
(el argumento visible sugería que influía en la clasificación, pero no era así).
Cuando esta configuración es false (la predeterminada), RANK y DENSE_RANK rechazan cualquier argumento y
lanzan NUMBER_OF_ARGUMENTS_DOESNT_MATCH. Cuando se establece en true, se
restaura el comportamiento flexible heredado: los argumentos se ignoran silenciosamente, igual que antes de la versión 26.5.
allow_reorder_prewhere_conditions
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 24.10 | 1 | Nueva opción |
Permite reordenar las condiciones al moverlas de WHERE a PREWHERE para optimizar el filtrado
allow_replace_partition_from_empty_source
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.6 | 0 | Nueva comprobación de seguridad: `ALTER TABLE ... REPLACE PARTITION ... FROM ...` ahora genera una excepción cuando la tabla de origen no tiene partes en la partición solicitada (corrige la pérdida silenciosa de datos en [#23727](https://github.com/ClickHouse/ClickHouse/issues/23727)). El comportamiento anterior, que eliminaba silenciosamente la partición de destino, se conserva estableciendo `allow_replace_partition_from_empty_source = 1`. |
Permite que ALTER TABLE ... REPLACE PARTITION ... FROM ... elimine silenciosamente la partición de destino cuando la tabla de origen no tiene partes en esa partición.
De forma predeterminada, esto no está permitido: REPLACE PARTITION desde una tabla de origen que no tiene datos en la partición solicitada genera una excepción, porque en ese caso la operación pasa, en la práctica, a ser un DROP PARTITION silencioso en el destino (se eliminan los datos del destino y nada los sustituye), una causa habitual de pérdida accidental de datos (consulta #23727).
Habilita esta configuración para restaurar el comportamiento anterior, por ejemplo, cuando uses intencionadamente una partición de origen vacía para borrar datos del destino. Si quieres eliminarla sin condiciones, es preferible usar ALTER TABLE ... DROP PARTITION ....
allow_settings_after_format_in_insert
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 22.4 | 0 | No permitir `SETTINGS` después de `FORMAT` en las consultas `INSERT`, porque ClickHouse puede interpretar `SETTINGS` como valores, lo cual puede resultar confuso |
Controla si se permite o no SETTINGS después de FORMAT en las consultas INSERT. No se recomienda usarlo, ya que puede interpretar parte de SETTINGS como valores.
Ejemplo:
INSERT INTO FUNCTION null('foo String') SETTINGS max_threads=1 VALUES ('bar');Pero la siguiente consulta solo funcionará con allow_settings_after_format_in_insert:
SET allow_settings_after_format_in_insert=1;
INSERT INTO FUNCTION null('foo String') VALUES ('bar') SETTINGS max_threads=1;Valores posibles:
- 0 — No permitir.
- 1 — Permitir.
allow_simdjson
Permite usar la library simdjson en las funciones 'JSON*' si hay disponibles instrucciones AVX2. Si se desactiva, se usará rapidjson.
allow_special_serialization_kinds_in_output_formats
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 25.11 | 1 | Habilita la salida directa de representaciones especiales de columnas, como Sparse/Replicated, en algunos formatos de salida |
| 25.10 | 0 | Agrega una configuración para permitir la salida de representaciones especiales de columnas, como Sparse/Replicated, sin convertirlas en columnas completas |
Permite generar la salida de columnas con tipos especiales de serialización, como Sparse y Replicated, sin convertirlas a una representación de columna completa. Ayuda a evitar copias de datos innecesarias durante el formateo.
allow_unrestricted_reads_from_keeper
Permite lecturas sin restricciones (sin condición sobre la ruta) desde la tabla system.zookeeper; puede resultar útil, pero no es seguro para ZooKeeper
allow_window_partitions_independently
Historial de versiones
| Versión | Valor predeterminado | Comentario |
|---|---|---|
| 26.8 | 1 | Nueva configuración para evaluar funciones de ventana de forma independiente por partición (sin la dispersión hash) cuando la expresión de partición es una función determinista de las columnas de `PARTITION BY` de la ventana. |
Habilita la evaluación independiente de funciones de ventana por partición en hilos separados cuando la expresión de partición de la tabla MergeTree es una función determinista de las columnas de PARTITION BY de la ventana. Cada partición se lee mediante un flujo independiente, se ordena según la descripción de ordenación de la ventana y se procesa mediante su propia transformada de ventana, sin la dispersión hash que normalmente redistribuye cada fila entre los hilos. Resulta beneficioso cuando el número de particiones es cercano al número de núcleos y las particiones tienen aproximadamente el mismo tamaño; de lo contrario, una heurística de coste lo omite. Consulte max_number_of_partitions_for_independent_window y force_window_partitions_independently. No se aplica con FINAL ni con réplicas paralelas.