enable_adaptive_aggregator
Habilita el algoritmo adaptativo deGROUP BY: cada hilo agrega datos en su tabla hash local hasta alcanzar adaptive_aggregator_freeze_threshold claves (o adaptive_aggregator_freeze_threshold_bytes de memoria); entonces, la tabla se congela, de modo que las filas con claves ya vistas (frecuentes) siguen actualizándola in situ, mientras que las claves nuevas (poco frecuentes) se enrutan según su hash a colas pendientes por bucket y se agregan exactamente una vez durante la fusión paralela por bucket. Las claves frecuentes permanecen en pequeñas tablas residentes en caché, y las claves poco frecuentes se almacenan y procesan una vez, en lugar de una vez por hilo.
Se respetan las configuraciones de agregación externa (max_bytes_before_external_group_by, max_bytes_ratio_before_external_group_by): al superar el umbral, las colas pendientes se vacían anticipadamente en la tabla compartida y, si eso no basta para volver a situarse por debajo de él, la tabla compartida se vuelca al disco mediante la agregación externa ordinaria.
enable_adaptive_memory_spill_scheduler
Hace que el procesador vuelque datos al almacenamiento externo de forma adaptativa. Actualmente, se admiten los hash joins que pueden volcar datos, tantograce_hash como la vía adaptativa hash / parallel_hash.
enable_add_distinct_to_in_subqueries
HabilitaDISTINCT en las subconsultas IN. Esta configuración implica una compensación: al habilitarla, puede reducir considerablemente el tamaño de las tablas temporales transferidas en las subconsultas IN distribuidas y acelerar de forma significativa la transferencia de datos entre segmentos, ya que garantiza que solo se envíen valores únicos.
Sin embargo, habilitar esta configuración añade trabajo adicional de merging en cada nodo, ya que debe realizarse la deduplicación (DISTINCT). Use esta configuración cuando la transferencia de red sea un cuello de botella y el costo adicional de merging sea aceptable.
enable_alp_codec
Habilita el códec de compresiónALP.
enable_automatic_decision_for_merging_across_partitions_for_final
Si está habilitada, ClickHouse activará automáticamente esta optimización cuando la expresión de la clave de partición sea determinista y todas las columnas utilizadas en ella estén incluidas en la clave primaria. Esta derivación automática garantiza que las filas con los mismos valores de clave primaria siempre pertenecerán a la misma partición, por lo que es seguro evitar las fusiones entre particiones. Las columnas de clave de coma flotante quedan excluidas de esta derivación. El comparadorFINAL es menos preciso que la
identidad de valores para Float32, Float64 y BFloat16: -0.0 se considera igual a 0.0, y cualquier patrón de bits NaN
se considera igual a cualquier otro. Una expresión de partición sí puede distinguir con exactitud esos valores, de modo que filas que el comparador trata como
una misma clave pueden acabar en particiones distintas, y omitir la fusión entre particiones las devolvería todas.
La exclusión también se aplica cuando un número de coma flotante está anidado dentro de una columna de clave, por ejemplo Tuple(Float64, UInt8)
o Array(Float64).
enable_cascades_optimizer
Habilita el optimizador basado en costes Cascades para los planes de consultas distribuidas. Solo surte efecto junto conmake_distributed_plan = 1: esta configuración por sí sola no modifica la planificación de consultas en un único nodo.
enable_early_constant_folding
Habilita la optimización de consultas mediante la cual se analizan los resultados de funciones y subconsultas, y se reescribe la consulta si hay constantesenable_extended_results_for_datetime_functions
Habilita o deshabilita la devolución de resultados de tipoDate32 con un rango ampliado (en comparación con el tipo Date)
o de tipo DateTime64 con un rango ampliado (en comparación con el tipo DateTime).
Valores posibles:
0— Las funciones devuelvenDateoDateTimepara todos los tipos de argumentos.1— Las funciones devuelvenDate32oDateTime64para argumentosDate32oDateTime64, yDateoDateTimeen los demás casos.
enable_full_text_index
Alias:allow_experimental_full_text_index
Si se establece en true, permite utilizar el índice de texto.
enable_function_early_short_circuit
Habilita el plegado anticipado de constantes mediante cortocircuito paraand y or durante el análisis de consultas.
Cuando está habilitada, se analizan las ramas no alcanzables de subconsultas escalares aptas para preservar sus tipos y validar la semántica de las consultas, pero no se ejecutan. La optimización recurre al análisis normal cuando se requiere la cardinalidad escalar o valores en tiempo de ejecución.
enable_funnel_functions
Aliases:allow_experimental_funnel_functions
Habilita las funciones para el análisis de funnel.
enable_global_with_statement
Propagar las sentencias WITH a las consultas UNION y a todas las subconsultasenable_group_by_top_k_optimization
Habilita la optimización de filtrado TopK durante la agregación en consultasGROUP BY keys ORDER BY <prefix of keys> LIMIT K y en consultas GROUP BY keys LIMIT K sin ORDER BY (en este caso, cualquier grupo de K es un resultado válido, por lo que se sintetiza una ordenación de todas las claves).
Cuando está habilitada, la agregación mantiene un heap acotado con las K claves principales observadas hasta el momento y omite insertar nuevas filas en la tabla hash cuando su clave de agrupación no puede formar parte del resultado final. Esto evita agregar filas que se descartarían con el posterior ORDER BY ... LIMIT y, cuando el heap clasifica la clave completa de GROUP BY, también elimina de la tabla hash intermedia los grupos expulsados, limitando su tamaño a LIMIT en lugar de al número de claves distintas. Cuando ORDER BY solo abarca un prefijo propio de las claves de GROUP BY, la clasificación no puede identificar un grupo completo, por lo que solo se omiten filas: la tabla hash conserva todos los grupos admitidos y aún puede crecer según la cardinalidad de las columnas de clave restantes.
La optimización se deshabilita cuando el valor solicitado de LIMIT es superior a query_plan_max_limit_for_top_k_optimization o al límite estricto de 100000, porque el coste de memoria y CPU del heap aumenta con el valor solicitado de LIMIT.
La optimización se omite para formas de consulta en las que eliminar grupos podría cambiar el resultado, incluidos WITH TOTALS, HAVING, QUALIFY, las funciones de ventana, ROLLUP/CUBE/GROUPING SETS, LIMIT WITH TIES, un COLLATE en cualquiera de las claves de GROUP BY coincidentes (un COLLATE en una columna posterior de ORDER BY, después del prefijo de clave completo, no puede afectar a qué grupos cumplen los requisitos, por lo que no deshabilita la optimización), ORDER BY sobre una agregación o sobre cualquier elemento que no sea un prefijo inicial de las claves de GROUP BY, y cuando se establece max_rows_to_group_by o exact_rows_before_limit.
Valores posibles:
- 0 — Deshabilitada.
- 1 — Habilitada.
enable_hash_join_row_store
Habilita la transformación del payload de un hash join a un diseño por filas.enable_hdfs_pread
Habilita o deshabilitapread para archivos HDFS. De forma predeterminada, se usa hdfsPread. Si se deshabilita, se usarán hdfsRead y hdfsSeek para leer archivos HDFS.
enable_http_compression
Habilita o deshabilita la compresión de datos en la respuesta a una petición HTTP. Para obtener más información, lea la descripción de la interfaz HTTP. Valores posibles:- 0 — Deshabilitado.
- 1 — Habilitado.
enable_identifier_resolve_cache
Activa la caché de resolución de identificadores en el analizador de consultas. La caché comparte nodos de alias ya resueltos para evitar la explosión del AST cuando se hace referencia al mismo alias varias veces. Establézcalo en false para desactivar la caché si se sospecha que produce resultados incorrectos.enable_job_stack_trace
Muestra la traza de pila del creador de un job cuando este produce una excepción. Está deshabilitado de forma predeterminada para evitar el impacto en el rendimiento.enable_json_ast_dialect
Habilita el valorclickhouse_json de la configuración dialect.
Cuando dialect se establece en clickhouse_json, las consultas se interpretan como AST JSON
(la salida de parseQueryToJSON) en lugar de texto SQL. La consulta SET se sigue
analizando como SQL sin procesar para poder volver a cambiar de dialecto.
Ejemplo:
enable_json_lazy_type_hints
Aliases:allow_experimental_json_lazy_type_hints
Habilita las indicaciones de tipo diferidas para el tipo JSON.
Con este SETTING habilitado, ALTER TABLE ... MODIFY COLUMN json JSON(path TypeName) que solo añade o cambia
indicaciones de tipo es una operación de solo metadatos: las indicaciones de tipo se aplican en el momento de la consulta para las partes existentes y
se materializan durante los inserts y las fusiones en segundo plano, en lugar de reescribir los datos históricos.
enable_lazy_columns_replication
Habilita la replicación diferida de columnas enJOIN, ARRAY JOIN y las capturas lambda de funciones de orden superior (p. ej., arrayMap); permite evitar copiar innecesariamente las mismas filas varias veces en memoria.
enable_materialized_cte
Habilita las expresiones de tabla comunes materializadas (WITH <name> AS MATERIALIZED (<subquery>)).
Cuando está habilitada, una CTE declarada como MATERIALIZED a la que se hace referencia más de una vez se ejecuta una sola vez, se almacena en una tabla temporal y todas las referencias leen de esa tabla. Una CTE a la que solo se hace referencia una vez se incorpora en línea como una CTE ordinaria para evitar la sobrecarga.
Cuando está deshabilitada, la palabra clave MATERIALIZED se ignora: la CTE se incorpora en línea en cada referencia como una CTE ordinaria y se registra una advertencia.
enable_materialized_postgresql_table
Aliases:allow_experimental_materialized_postgresql_table
Permite usar el motor de tabla MaterializedPostgreSQL.
enable_memory_bound_merging_of_aggregation_results
Activa la estrategia de fusión con límite de memoria para la agregación.enable_multiple_prewhere_read_steps
Traslada más condiciones de WHERE a PREWHERE y realiza lecturas desde disco y filtrado en varios pasos si hay varias condiciones combinadas con ANDenable_named_columns_in_function_tuple
Genera tuplas con nombre en la función tuple() cuando todos los nombres son únicos y pueden tratarse como identificadores sin comillas.enable_nullable_tuple_type
Aliases:allow_experimental_nullable_tuple_type
Permite crear columnas Nullable Tuple en las tablas.
Esta configuración no determina si las subcolumnas de tupla extraídas pueden ser Nullable (por ejemplo, a partir de columnas Dynamic, Variant, JSON o Tuple).
Utilice allow_nullable_tuple_in_extracted_subcolumns para controlar si las subcolumnas de tupla extraídas pueden ser Nullable.
enable_order_by_all
Habilita o deshabilita la ordenación mediante la sintaxisORDER BY ALL; consulte ORDER BY.
Valores posibles:
- 0 — Deshabilita ORDER BY ALL.
- 1 — Habilita ORDER BY ALL.
enable_packed_string_keys_in_aggregation
Utiliza una tabla hash con referencias a cadenas empaquetadas de 16 bytes (PackedStringRef) como claves para GROUP BY con una única clave String no Nullable. Las claves de hasta 11 bytes se almacenan en línea en la referencia empaquetada; las más largas se almacenan por referencia en un Arena.
Esto es más rápido para la mayoría de las cargas de trabajo, pero puede ser más lento que el método heredado para GROUP BY con muy pocas claves distintas de más de 11 bytes (especialmente entre 12 y 24 bytes), ya que la tabla hash heredada mantiene las claves en línea en la celda, mientras que la empaquetada desreferencia el puntero al Arena en cada sondeo.
Cuando se desactiva, se utiliza el método heredado basado en StringHashTable (el predeterminado antes de la 26.8).
Todos los servidores que participan en una consulta distribuida deben tener el mismo valor: con distributed_aggregation_memory_efficient, los números de bucket de dos niveles dependen del hash de la clave, que difiere entre ambos métodos. Por tanto, los servidores con valores distintos para esta configuración pueden dividir la misma clave en buckets diferentes y generar un resultado combinado incorrectamente. Para garantizar la coherencia, el iniciador siempre envía su valor efectivo con las consultas secundarias (incluso cuando procede únicamente de los valores predeterminados del servidor o del perfil), anulando los valores predeterminados de los servidores remotos.
enable_parsing_to_custom_serialization
Si es true, los datos pueden parsearse directamente en columnas con serialización personalizada (p. ej., Sparse) según las pistas de serialización obtenidas de la tabla.enable_producing_buckets_out_of_order_in_aggregation
Permite que la agregación eficiente en memoria (consultedistributed_aggregation_memory_efficient) produzca buckets fuera de orden.
Puede mejorar el rendimiento cuando los tamaños de los buckets de agregación son desiguales, al permitir que una réplica envíe buckets con identificadores más altos al iniciador mientras sigue procesando algunos buckets pesados con identificadores más bajos.
La desventaja es un uso de memoria potencialmente mayor.
enable_quantized_codec
Habilita el códec de compresiónQuantized.
enable_reads_from_query_cache
Si está activado, los resultados de las consultasSELECT se obtienen de la caché de consultas.
Valores posibles:
- 0 - Deshabilitado
- 1 - Habilitado
enable_s3_requests_logging
Habilita un registro muy detallado de las solicitudes de S3. Solo tiene sentido para depuración.enable_scalar_subquery_optimization
Si se establece en true, evita que las subconsultas escalares deserialicen y serialicen valores escalares grandes, y puede evitar ejecutar la misma subconsulta más de una vez.enable_scopes_for_with_statement
Si está deshabilitada, las declaraciones en las cláusulas WITH padre se comportarán como si se hubieran declarado en el ámbito actual. Ten en cuenta que esta es una configuración de compatibilidad del analizador para permitir ejecutar algunas consultas no válidas que el analizador antiguo podía ejecutar.enable_shared_storage_snapshot_in_query
Si está habilitado, todas las subconsultas dentro de una misma consulta compartirán la misma StorageSnapshot para cada tabla. Esto garantiza una vista coherente de los datos en toda la consulta, incluso si se accede varias veces a la misma tabla. Esto es necesario para consultas en las que la consistencia interna de las partes de datos es importante. Ejemplo:- 0 - Deshabilitado
- 1 - Habilitado
enable_sharing_sets_for_mutations
Permite compartir objetos Set creados para las subconsultas IN entre distintas tareas de la misma mutación. Esto reduce el uso de memoria y el consumo de CPUenable_streaming_queries
Permite consultas continuasSELECT ... FROM t STREAM [CURSOR '{...}'].
Cuando está desactivado, cualquier expresión de tabla que use el modificador STREAM se rechaza
en el momento de generar el plan. Este es el control general de la
funcionalidad de consultas en streaming; otras capacidades pueden estar controladas por sus propios ajustes.
enable_sz3_codec
Habilita el códec de compresiónSZ3.
enable_time_series_aggregate_functions
Aliases:allow_experimental_ts_to_grid_aggregate_function, allow_experimental_time_series_aggregate_functions
Habilita las funciones de agregación timeSeries* para el remuestreo de series temporales al estilo de Prometheus y el cálculo de rate y delta.
enable_time_series_table
Aliases:allow_experimental_time_series_table
Permite crear tablas con el motor de tablas TimeSeries. Valores posibles:
- 0 — el motor de tablas TimeSeries está deshabilitado.
- 1 — el motor de tablas TimeSeries está habilitado.
enable_time_time64_type
Alias:allow_experimental_time_time64_type
Permite crear los tipos de datos Time y Time64.
enable_trino_dialect
Habilita el valortrino de la configuración dialect.
Cuando dialect tiene el valor trino, las consultas se escriben en SQL de Trino: la
sintaxis específica de Trino (literales ARRAY[...], TRY_CAST, UNNEST, tipos ROW, OFFSET antes de LIMIT)
se traduce a ClickHouse SQL y los nombres de funciones de Trino se asignan a sus
equivalentes en ClickHouse. La consulta SET se sigue analizando como SQL sin procesar, de modo que sea posible
volver a cambiar el dialecto.
El dialecto también alinea la semántica de las consultas con la de Trino: join_use_nulls se activa,
use_variant_as_common_type se desactiva y el analizador de consultas se activa.
Una cláusula SETTINGS explícita en la consulta sigue teniendo precedencia.
enable_unaligned_array_join
Permite ARRAY JOIN con varios arrays de distintos tamaños. Cuando esta configuración está habilitada, los arrays se redimensionarán hasta igualar el más largo.enable_unique_key
Aliases:allow_experimental_unique_key
Permite crear tablas con la cláusula UNIQUE KEY en motores de la familia MergeTree.
enable_url_encoding
Permite habilitar o deshabilitar la decodificación/codificación de la ruta en el URI en las tablas con motor URL. Deshabilitado de forma predeterminada.enable_vertical_final
Si está habilitado, elimina las filas duplicadas durante FINAL marcando las filas como eliminadas y filtrándolas después, en lugar de fusionarlasenable_writes_to_query_cache
Si está habilitado, los resultados de las consultasSELECT se almacenan en la caché de consultas.
Valores posibles:
- 0 - Deshabilitado
- 1 - Habilitado
enable_zxc_codec
Habilita el códec de compresiónZXC.