allow_aggregate_partitions_independently
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 deReadFromMergeTree 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
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
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 dereceive_data_timeout); de lo contrario, se deshabilita el cambio de réplica después de la primera vez que se registra progreso.
allow_correlated_subqueries
Aliases:allow_experimental_correlated_subqueries
Permite ejecutar subconsultas correlacionadas.
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
Habilita la predesduplicación paralela por partición del resultado de la subconsulta al crear el conjunto paraIN (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_database_glue_catalog
Aliases:allow_experimental_database_glue_catalog
Permite el motor de base de datos DataLakeCatalog con catalog_type = 'glue'
valor predeterminado en Cloud: 1.
allow_database_iceberg
Aliases:allow_experimental_database_iceberg
Permite el motor de base de datos DataLakeCatalog con catalog_type = 'iceberg'
Valor predeterminado en Cloud: 1.
allow_database_unity_catalog
Aliases:allow_experimental_database_unity_catalog
Permite el motor de base de datos DataLakeCatalog con catalog_type = 'unity'
valor predeterminado en Cloud: 1.
allow_ddl
Si se establece en true, un usuario puede ejecutar consultas DDL.allow_delta_kernel_rs
Alias:allow_experimental_delta_kernel_rs
Permite usar la implementación delta-kernel-rs para leer tablas de Delta Lake.
allow_delta_lake_create_table
Permite crear una nueva tabla de Delta Lake mediante delta-kernel-rs o registrar una existente en un catalog. Todavía no se admite la creación de tablas particionadas (PARTITION BY). En una base de datos DataLakeCatalog, la tabla se registra con su esquema de Delta, por lo que los tipos de ClickHouse declarados que se corresponden con un tipo de Delta más amplio (por ejemplo, UInt8 -> short, FixedString(N) -> string) se leen como el tipo asignado por Delta y no como el declarado.
allow_delta_lake_writes
Aliases:allow_experimental_delta_lake_writes
Habilita la funcionalidad de escrituras de delta-kernel.
allow_distinct_partitions_independently
Habilita la evaluación independiente deDISTINCT 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
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_executable_tables
Permite la lectura mediante la función de tablaexecutable y desde tablas Executable y ExecutablePool.
Al deshabilitarla, solo se rechazan las lecturas: crear, adjuntar, eliminar y describir dichas tablas sigue funcionando. Los procesos de ExecutablePool que ya se hayan iniciado siguen en ejecución en lugar de terminarse, pero cada lectura se seguirá rechazando hasta que la configuración vuelva a habilitarse.
allow_execute_multiif_columnar
Permite ejecutar la función multiIf de forma columnarallow_fuzz_query_functions
Habilita la funciónfuzzQuery, que aplica mutaciones aleatorias del AST a una cadena de consulta.
allow_general_join_planning
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_geo_types_in_iceberg
Aliases:allow_experimental_geo_types_in_iceberg
Permite el parsing de los tipos de field geometry y geography de Iceberg como el tipo Geometry (Variant) de ClickHouse.
allow_get_client_http_header
Permite usar la funcióngetClientHTTPHeader, 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
Permite usar ‘ALTER TABLE … EXECUTE remove_orphan_files()’ en tablas Iceberg.allow_insert_into_iceberg
Aliases:allow_experimental_insert_into_iceberg
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.
- Sampling Query Profiler
- Tabla del sistema trace_log
allow_join_right_table_sorting
Aliases:allow_experimental_join_right_table_sorting
Si se establece en true y se cumplen las condiciones de join_to_sort_minimum_perkey_rows y join_to_sort_maximum_table_rows, se reordena la tabla derecha por key para mejorar el rendimiento de los hash joins de tipo left o inner.
allow_kafka_offsets_storage_in_keeper
Aliases:allow_experimental_kafka_offsets_storage_in_keeper
Permite almacenar en ClickHouse Keeper los desplazamientos relacionados con Kafka. Cuando está habilitado, se pueden especificar una ruta de ClickHouse Keeper y un nombre de réplica en el Kafka table engine. Como resultado, en lugar del motor Kafka habitual, se utilizará un nuevo tipo de storage engine que almacena los committed offsets principalmente en ClickHouse Keeper
allow_key_condition_coalesce_rewrite
Reescribe predicados de la formacoalesce(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
Habilita la evaluación independiente deLIMIT 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
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
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
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
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 discoallow_nonconst_timezone_arguments
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
Controla si las subcolumnas extraídas de tipoTuple(...) 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.
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_preliminary_distinct_abandoning
Permite que elDISTINCT preliminar (por flujo) renuncie a deduplicar entradas mayormente únicas, liberando su hash table y dejando pasar las filas restantes. El DISTINCT preliminar es, por diseño, de mejor esfuerzo —los duplicados provenientes de distintos flujos lo atraviesan incluso cuando deduplica— y el DISTINCT final vuelve a deduplicar su salida, de modo que renunciar apenas sacrifica eliminaciones y, en cambio, ahorra la memoria y el hash de una segunda copia de las claves únicas. No se aplica cuando el DISTINCT preliminar lleva un hint de límite (un LIMIT simple sin ordenamiento posterior).
allow_rank_dense_rank_arguments
Permite pasar argumentos a las funciones de ventanaRANK 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
Permite reordenar las condiciones al moverlas de WHERE a PREWHERE para optimizar el filtradoallow_replace_partition_from_empty_source
Permite queALTER 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
Controla si se permite o noSETTINGS después de FORMAT en las consultas INSERT. No se recomienda usarlo, ya que puede interpretar parte de SETTINGS como valores.
Ejemplo:
allow_settings_after_format_in_insert:
- 0 — No permitir.
- 1 — Permitir.
Use esta configuración solo para mantener la compatibilidad con versiones anteriores si sus casos de uso dependen de la sintaxis anterior.
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
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 ZooKeeperallow_url_wildcard_from_index_pages
Aliases:allow_experimental_url_wildcard_from_index_pages
Permite la expansión de wildcard para url() y ENGINE = URL desde páginas de índice HTTP.
allow_window_partitions_independently
Habilita la evaluación independiente de funciones de ventana por partición en hilos separados cuando la expresión de partición de la tablaMergeTree 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.