add_http_cors_header
additional_result_filter
SELECT.
Esta configuración no se aplica a ninguna subconsulta.
Ejemplo
additional_table_filters
aggregate_function_input_format
state— Cadena binaria con el estado serializado (valor predeterminado). Este es el comportamiento predeterminado, en el que se esperan valores de AggregateFunction como datos binarios.value— El formato espera un único valor del argumento de la función de agregación o, en el caso de varios argumentos, una tupla con ellos. Se deserializarán mediante el IDataType o DataTypeTuple correspondiente y luego se agregarán para formar el estado.array— El formato espera un Array de valores, como se describe en la opciónvalueanterior. Todos los elementos del array se agregarán para formar el estado.
aggregate_function_input_format = 'value':
aggregate_function_input_format = 'array':
value y array son más lentos que el formato state predeterminado, ya que requieren crear y agregar valores durante la inserción.
aggregate_functions_null_for_empty
- 0 — Deshabilitado.
- 1 — Habilitado.
aggregate_functions_null_for_empty = 0, se produciría:
aggregate_functions_null_for_empty = 1, el resultado sería:
aggregation_in_order_max_block_bytes
aggregation_memory_efficient_merge_threads
ai_function_credentials
provider, endpoint, model, api_key opcional, etc.). Si está vacío, se genera una excepción.
ai_function_embedding_max_batch_size
aiEmbed. Los textos se agrupan en lotes de este tamaño para reducir la sobrecarga de las llamadas a la API. Por ejemplo, 500 textos únicos con un tamaño de lote de 100 se traducen en 5 solicitudes HTTP.
ai_function_max_api_calls_per_query
ai_function_max_input_tokens_per_query
usage en su respuesta (OpenAI, Anthropic, vLLM). Los proveedores que omiten el uso de tokens (en particular, HuggingFace TEI) hacen que el contador permanezca en 0; use ai_function_max_api_calls_per_query en su lugar para acotar esas llamadas.
ai_function_max_output_tokens_per_query
usage en su respuesta (OpenAI, Anthropic, vLLM). No se aplica a las funciones de embedding (en particular aiEmbed), que nunca generan tokens de salida.
ai_function_max_retries
ai_function_retry_initial_delay_ms.
ai_function_request_timeout_sec
ai_function_max_retries.
ai_function_retry_initial_delay_ms
ai_function_throw_on_error
ai_function_throw_on_quota_exceeded
ai_function_max_input_tokens_per_query, ai_function_max_output_tokens_per_query o ai_function_max_api_calls_per_query), la consulta se aborta con una excepción. Si es false, las filas restantes reciben el valor predeterminado del tipo de columna (cadena vacía para String).
allow_aggregate_partitions_independently
allow_archive_path_syntax
<archive> :: <file> si el archivo tiene la extensión correcta.
allow_asynchronous_read_from_io_pool_for_merge_tree
allow_calculating_subcolumns_sizes_for_merge_tree_reading
allow_changing_replica_until_first_data_packet
receive_data_timeout); de lo contrario, deshabilitamos el cambio de réplica después de la primera vez que hubo progreso.
allow_create_index_without_type
allow_custom_error_code_in_throwif
allow_ddl
allow_deprecated_database_ordinary
allow_deprecated_error_prone_window_functions
allow_deprecated_snowflake_conversion_functions
snowflakeToDateTime, snowflakeToDateTime64, dateTimeToSnowflake y dateTime64ToSnowflake están obsoletas y se deshabilitan de forma predeterminada.
En su lugar, utilice las funciones snowflakeIDToDateTime, snowflakeIDToDateTime64, dateTimeToSnowflakeID y dateTime64ToSnowflakeID.
Para volver a habilitar las funciones obsoletas (por ejemplo, durante un período de transición), establezca este ajuste en true.
allow_deprecated_syntax_for_merge_tree
allow_distributed_ddl
allow_drop_detached
allow_dynamic_type_in_join_keys
allow_execute_multiif_columnar
allow_experimental_ai_functions
aiGenerateContent). Estas funciones realizan llamadas HTTP externas a proveedores de IA.
allow_experimental_analyzer
enable_analyzer
Permite usar el nuevo analizador de consultas.
allow_experimental_cleanup_old_data_files_compaction
allow_experimental_codecs
allow_experimental_database_glue_catalog
allow_database_glue_catalog
Permite usar el motor de base de datos experimental DataLakeCatalog con catalog_type = ‘glue’
Valor predeterminado en Cloud: 1.
allow_experimental_database_hms_catalog
allow_experimental_database_iceberg
allow_database_iceberg
Permite usar el motor de base de datos experimental DataLakeCatalog con catalog_type = ‘iceberg’
Valor predeterminado de Cloud: 1.
allow_experimental_database_materialized_postgresql
allow_experimental_database_paimon_rest_catalog
allow_experimental_database_unity_catalog
allow_database_unity_catalog
Permite usar el motor de base de datos experimental DataLakeCatalog con catalog_type = ‘unity’
Valor predeterminado en Cloud: 1.
allow_experimental_delta_kernel_rs
allow_experimental_delta_lake_writes
allow_experimental_expire_snapshots
ALTER TABLE ... EXECUTE expire_snapshots.
allow_experimental_funnel_functions
allow_experimental_geo_types_in_iceberg
geometry y geography de Iceberg como el tipo Geometry (Variant) de ClickHouse.
allow_experimental_hash_functions
allow_experimental_iceberg_compaction
OPTIMIZE explícitamente en tablas Iceberg.
allow_experimental_join_right_table_sorting
join_to_sort_minimum_perkey_rows y join_to_sort_maximum_table_rows, reordena la tabla de la derecha por clave para mejorar el rendimiento en un hash join left o inner.
allow_experimental_json_lazy_type_hints
allow_experimental_kafka_offsets_storage_in_keeper
allow_experimental_kusto_dialect
allow_experimental_materialized_postgresql_table
allow_experimental_nlp_functions
allow_experimental_nullable_tuple_type
enable_nullable_tuple_type
Permite crear columnas Nullable Tuple en las tablas.
Esta configuración no controla si las subcolumnas de tupla extraídas pueden ser Nullable (por ejemplo, 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.
allow_experimental_object_storage_queue_hive_partitioning
allow_experimental_paimon_storage_engine
allow_experimental_parallel_reading_from_replicas
enable_parallel_replicas
Usa hasta max_parallel_replicas réplicas de cada segmento para ejecutar consultas SELECT. La lectura se paraleliza y se coordina de forma dinámica. 0 - deshabilitado, 1 - habilitado, se deshabilita silenciosamente en caso de fallo, 2 - habilitado, se lanza una excepción en caso de fallo
allow_experimental_polyglot_dialect
allow_experimental_prql_dialect
allow_experimental_text_index_lazy_apply
true, permite usar el modo diferido de aplicación de posting list en consultas de índice de texto.
allow_experimental_time_series_aggregate_functions
allow_experimental_ts_to_grid_aggregate_function
Funciones de agregación experimentales timeSeries* para el remuestreo de series temporales de tipo Prometheus y el cálculo de tasas y deltas.
allow_experimental_time_series_table
- 0 — el motor de tabla TimeSeries está deshabilitado.
- 1 — el motor de tabla TimeSeries está habilitado.
allow_experimental_unique_key
UNIQUE KEY en motores de la familia MergeTree.
allow_experimental_window_view
allow_experimental_ytsaurus_dictionary_source
allow_experimental_ytsaurus_table_engine
allow_experimental_ytsaurus_table_function
allow_fuzz_query_functions
fuzzQuery, que aplica mutaciones aleatorias al AST de una cadena de consulta.
allow_general_join_planning
allow_get_client_http_header
getClientHTTPHeader, que permite obtener el valor de una cabecera de la solicitud HTTP actual. No está habilitada de forma predeterminada por motivos de seguridad, ya que algunas cabeceras, como Cookie, podrían contener información confidencial. Tenga en cuenta que las cabeceras X-ClickHouse-* y Authentication siempre están restringidas y no se pueden obtener con esta función.
allow_hyperscan
allow_iceberg_remove_orphan_files
allow_insert_into_iceberg
allow_experimental_insert_into_iceberg
Permite ejecutar consultas insert en Iceberg.
allow_introspection_functions
- 1 — Funciones de introspección habilitadas.
- 0 — Funciones de introspección deshabilitadas.
- Perfilador de consultas por muestreo
- Tabla del sistema trace_log
allow_key_condition_coalesce_rewrite
WHERE/PREWHERE que incluyan coalesce o ifNull. Sin esta configuración, esos predicados son opacos al análisis de índices y no permiten descartar gránulos, por lo que se siguen leyendo gránulos que no pueden coincidir. Esto afecta únicamente a qué gránulos se leen; los resultados de la consulta no cambian, porque las filas siguen filtrándose mediante el predicado original.
Se reescriben dos formas de predicados antes del análisis de índices:
- Una comparación con
coalesce/ifNull, comocoalesce(a, b) = 5, se convierte en una disyunción para que un índice sobre cada argumento pueda descartar gránulos:a = 5 OR (a IS NULL AND b = 5), ampliado para más argumentos. - Un
coalesce/ifNullcon una constante predeterminada falsa (cero) usada directamente como condición, comoifNull(a = 5, 0)ocoalesce(a = 5, 0), se desempaqueta hasta su predicado internoa = 5. Tales envoltorios reducen el resultado trivaluado del predicado interno a un booleano definido (haciendo corresponderNULLconfalse).
allow_limit_by_partitions_independently
LIMIT BY para cada partición en hilos separados cuando la expresión de partición es una función determinista de las columnas de LIMIT BY.
allow_materialized_view_with_bad_select
allow_named_collection_override_by_default
allow_non_metadata_alters
allow_nonconst_timezone_arguments
allow_nondeterministic_mutations
dictGet.
Dado que, por ejemplo, los diccionarios pueden estar desincronizados entre nodos, las mutaciones que extraen valores de ellos no están permitidas en tablas replicadas de forma predeterminada. Al habilitar esta configuración, se permite este comportamiento, por lo que es responsabilidad del usuario garantizar que los datos utilizados estén sincronizados en todos los nodos.
Ejemplo
allow_nondeterministic_optimize_skip_unused_shards
rand o dictGet, ya que esta última tiene algunas particularidades con las actualizaciones) en la clave de segmentación.
Valores posibles:
- 0 — No permitido.
- 1 — Permitido.
allow_nullable_tuple_in_extracted_subcolumns
Tuple(...) pueden tener el tipo Nullable(Tuple(...)).
false: DevuelveTuple(...)y usa los 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 se controla con enable_nullable_tuple_type.
ClickHouse usa el valor de esta configuración cargado al iniciar el servidor.
Los cambios realizados con SET o SETTINGS a nivel de consulta no modifican el comportamiento de las subcolumnas extraídas.
Para cambiar el comportamiento de las subcolumnas extraídas, actualice allow_nullable_tuple_in_extracted_subcolumns en la configuración del perfil de inicio (por ejemplo, users.xml) y reinicie el servidor.
allow_prefetched_read_pool_for_local_filesystem
allow_prefetched_read_pool_for_remote_filesystem
allow_push_predicate_ast_for_distributed_subqueries
allow_push_predicate_when_subquery_contains_with
allow_rank_dense_rank_arguments
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 únicamente en función de la ventana
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 (el valor predeterminado), RANK y DENSE_RANK rechazan cualquier argumento y
generan NUMBER_OF_ARGUMENTS_DOESNT_MATCH. Cuando se establece en true, se restaura el comportamiento heredado permisivo:
los argumentos se ignoran silenciosamente, igual que antes de la versión 26.5.
allow_reorder_prewhere_conditions
allow_settings_after_format_in_insert
SETTINGS después de FORMAT en consultas INSERT. No se recomienda usar esta opción, ya que puede interpretar parte de SETTINGS como valores.
Ejemplo:
allow_settings_after_format_in_insert:
- 0 — No se permite.
- 1 — Se permite.
Use esta configuración solo por compatibilidad con versiones anteriores si sus casos de uso dependen de la sintaxis anterior.
allow_simdjson
allow_special_serialization_kinds_in_output_formats
allow_statistics
allow_experimental_statistics
Permite definir columnas con estadísticas y gestionar las estadísticas.
allow_statistics_optimize
allow_statistic_optimize
Permite utilizar estadísticas para optimizar consultas
allow_suspicious_codecs
allow_suspicious_fixed_string_types
allow_suspicious_indices
allow_suspicious_low_cardinality_types
FixedString(8_bytes_or_less).
En valores fijos pequeños, el uso de LowCardinality suele ser ineficiente, porque ClickHouse almacena un índice numérico para cada fila. Como resultado:
- El uso de espacio en disco puede aumentar.
- El consumo de RAM puede ser mayor, según el tamaño del diccionario.
- Algunas funciones pueden ejecutarse más lentamente debido a operaciones adicionales de codificación/decodificación.
- 1 — El uso de
LowCardinalityno está restringido. - 0 — El uso de
LowCardinalityestá restringido.
allow_suspicious_primary_key
PRIMARY KEY/ORDER BY sospechosos en MergeTree (es decir, SimpleAggregateFunction).
allow_suspicious_ttl_expressions
allow_suspicious_types_in_group_by
allow_suspicious_types_in_order_by
allow_suspicious_variant_types
allow_unrestricted_reads_from_keeper
alter_move_to_space_execute_async
alter_partition_verbose_result
- 0 — deshabilita el nivel de detalle.
- 1 — habilita el nivel de detalle.
alter_sync
replication_alter_partitions_sync
Permite especificar el comportamiento de espera para las acciones que deben ejecutarse en las réplicas mediante consultas ALTER, OPTIMIZE o TRUNCATE.
Valores posibles:
0— No esperar.1— Esperar la ejecución propia.2— Esperar a todos.3- Esperar solo a las réplicas activas.
0.
alter_sync se aplica solo a tablas Replicated y SharedMergeTree; no tiene efecto al alterar tablas que no sean Replicated ni Shared.alter_update_mode
ALTER que incluyen comandos UPDATE.
Valores posibles:
heavy- ejecuta una mutación normal.lightweight- ejecuta una actualización ligera si es posible; de lo contrario, ejecuta una mutación normal.lightweight_force- ejecuta una actualización ligera si es posible; de lo contrario, lanza una excepción.
analyze_index_with_space_filling_curves
ORDER BY mortonEncode(x, y) o ORDER BY hilbertEncode(x, y), y la consulta incluye condiciones sobre sus argumentos, p. ej., x >= 10 AND x <= 20 AND y >= 20 AND y <= 30, utilice la curva de relleno espacial para el análisis del índice.
analyzer_compatibility_allow_compound_identifiers_in_unflatten_nested
SELECT a.b.c FROM table ARRAY JOIN a no funciona, y SELECT a FROM table no incluye la columna a.b.c en el resultado de Nested a.
analyzer_compatibility_join_using_top_level_identifier
SELECT a + 1 AS b FROM t1 JOIN t2 USING (b) el join se realizará mediante t1.a + 1 = t2.b, en lugar de t1.b = t2.b).
analyzer_compatibility_prefer_alias_over_subcolumn
b.id puede referirse tanto a la columna id de una tabla con alias b como a una subcolumna b.id de tipo Tuple de alguna otra columna, se prioriza la interpretación del prefijo como alias (la columna id de b). De forma predeterminada, el nuevo analizador prefiere la subcolumna. Habilítelo para que coincida con la resolución del analizador anterior.
analyzer_inline_views
any_join_distinct_right_table_keys
ANY INNER|LEFT JOIN.
Use esta configuración solo por compatibilidad con versiones anteriores si sus casos de uso dependen del comportamiento heredado de
JOIN.- Los resultados de las operaciones
t1 ANY LEFT JOIN t2yt2 ANY RIGHT JOIN t1no son iguales porque ClickHouse usa una lógica con una correspondencia de claves entre tablas, de izquierda a derecha, de muchos a uno. - Los resultados de las operaciones
ANY INNER JOINcontienen todas las filas de la tabla izquierda, igual que las operacionesSEMI LEFT JOIN.
- Los resultados de las operaciones
t1 ANY LEFT JOIN t2yt2 ANY RIGHT JOIN t1son iguales porque ClickHouse usa una lógica que proporciona una correspondencia de claves de uno a muchos en las operacionesANY RIGHT JOIN. - Los resultados de las operaciones
ANY INNER JOINcontienen una fila por clave de las tablas izquierda y derecha.
- 0 — El comportamiento heredado está deshabilitado.
- 1 — El comportamiento heredado está habilitado.
apply_deleted_mask
apply_mutations_on_fly
apply_patch_parts
apply_patch_parts_join_cache_buckets
apply_prewhere_after_final
apply_row_policy_after_final
- 0 — La ROW POLICY y PREWHERE se aplican antes de FINAL (predeterminado).
- 1 — La ROW POLICY y PREWHERE se aplican después de FINAL.
apply_settings_from_server
users.xml o consultas como ALTER USER), no a través del cliente (argumentos de la línea de comandos del cliente, consulta SET o sección SETTINGS de la consulta SELECT). A través del cliente puede cambiarse a false, pero no puede cambiarse a true (porque el servidor no enviará la configuración si el perfil de usuario tiene apply_settings_from_server = false).
Tenga en cuenta que, inicialmente (24.12), existía una configuración de servidor (send_settings_to_client), pero más tarde fue reemplazada por esta configuración de cliente para mejorar la usabilidad.
archive_adaptive_buffer_max_size_bytes
arrow_flight_request_descriptor_type
- ‘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)
ast_fuzzer_any_query
ast_fuzzer_runs) solo aplica fuzzing a consultas de solo lectura (SELECT, EXPLAIN, SHOW, DESCRIBE, EXISTS). Si es true, se aplica fuzzing a todos los tipos de consultas, incluidas DDL e INSERT.
ast_fuzzer_runs
- 0: deshabilitado (predeterminado).
- Un valor entre 0 y 1 (sin incluirlos): probabilidad de ejecutar una sola consulta generada por el fuzzer.
- Un valor >= 1: número de consultas generadas por el fuzzer que se ejecutarán por cada consulta normal.
asterisk_include_alias_columns
SELECT *).
Valores posibles:
- 0 - deshabilitado
- 1 - habilitado
asterisk_include_materialized_columns
SELECT *).
Posibles valores:
- 0 - deshabilitado
- 1 - habilitado
asterisk_include_virtual_columns
SELECT *).
Posibles valores:
- 0 - deshabilitado
- 1 - habilitado
async_insert
async_insert_busy_timeout_decrease_rate
async_insert_busy_timeout_increase_rate
async_insert_busy_timeout_max_ms
async_insert_busy_timeout_ms
Tiempo máximo de espera antes de volcar los datos recopilados por consulta desde que apareció el primer dato.
Valor predeterminado de Cloud: 1000 (1s).
async_insert_busy_timeout_min_ms
async_insert_deduplicate
async_insert_max_data_size
104857600 (100 MiB).
async_insert_max_query_number
async_insert_deduplicate es 1.
async_insert_poll_timeout_ms
async_insert_use_adaptive_busy_timeout
async_query_sending_for_remote
async_socket_for_remote
automatic_parallel_replicas_min_bytes_per_replica
automatic_parallel_replicas_mode=1). 0 significa que no hay umbral.
El número total de bytes que se deben leer se estima a partir de las estadísticas recopiladas.
automatic_parallel_replicas_mode
enable_analyzer = 1, enable_parallel_replicas != 0, parallel_replicas_local_plan = 1 y que se proporcione cluster_for_parallel_replicas.
0 - deshabilitado, 1 - habilitado, 2 - solo está habilitada la recopilación de estadísticas (el cambio a la ejecución con réplicas paralelas está deshabilitado).
azure_allow_parallel_part_upload
azure_check_objects_after_upload
azure_connect_timeout_ms
azure_create_new_file_on_insert
azure_ignore_file_doesnt_exist
- 1 —
SELECTdevuelve un resultado vacío. - 0 —
SELECTgenera una excepción.
azure_list_object_keys_size
azure_max_blocks_in_multipart_upload
azure_max_get_burst
azure_max_get_rps
azure_max_get_rps
azure_max_inflight_parts_for_one_file
azure_max_put_burst
azure_max_put_rps
azure_max_put_rps
azure_max_redirects
azure_max_single_part_copy_size
azure_max_single_part_upload_size
azure_max_single_read_retries
azure_max_unexpected_write_error_retries
azure_max_upload_part_size
azure_min_upload_part_size
azure_request_timeout_ms
azure_sdk_max_retries
azure_sdk_retry_initial_backoff_ms
azure_sdk_retry_max_backoff_ms
azure_skip_empty_files
- 0 —
SELECTgenera una excepción si el archivo vacío no es compatible con el formato solicitado. - 1 —
SELECTdevuelve un resultado vacío para un archivo vacío.
azure_strict_upload_part_size
azure_throw_on_zero_files_match
- 1 —
SELECTlanza una excepción. - 0 —
SELECTdevuelve un resultado vacío.
azure_truncate_on_insert
azure_upload_part_size_multiply_factor
azure_upload_part_size_multiply_parts_count_threshold
azure_use_adaptive_timeouts
true, en todas las solicitudes a Azure los dos primeros intentos se realizan con tiempos de espera de envío y recepción reducidos.
Si se establece en false, todos los intentos se realizan con tiempos de espera idénticos.
backup_restore_batch_size_for_keeper_multi
backup_restore_batch_size_for_keeper_multiread
backup_restore_failure_after_host_disconnected_for_seconds
backup_restore_finish_timeout_after_error_sec
backup_restore_keeper_fault_injection_probability
backup_restore_keeper_fault_injection_seed
backup_restore_keeper_max_retries
backup_restore_keeper_max_retries_while_handling_error
backup_restore_keeper_max_retries_while_initializing
backup_restore_keeper_retry_initial_backoff_ms
backup_restore_keeper_retry_max_backoff_ms
60000.
backup_restore_keeper_value_max_size
backup_restore_s3_retry_attempts
backup_restore_s3_retry_initial_backoff_ms
backup_restore_s3_retry_max_backoff_ms
backup_restore_s3_retry_jitter_factor
backup_restore_s3_retry_max_backoff_ms. Debe estar en el intervalo [0.0, 1.0]
backup_restore_s3_retry_max_backoff_ms
backup_slow_all_threads_after_retryable_s3_error
true, todos los hilos que ejecutan solicitudes a S3 hacia el mismo endpoint de backup se ralentizan
después de que una sola solicitud a S3 encuentre un error de S3 que permita reintentos, como ‘Slow Down’.
Cuando se establece en false, cada hilo gestiona el backoff de las solicitudes a S3 de forma independiente de los demás.
cache_warmer_threads
calculate_text_stack_trace
cancel_http_readonly_queries_on_client_close
SELECT) cuando el cliente cierra la conexión sin esperar la respuesta.
Valor predeterminado en Cloud: 1.
cast_ipv4_ipv6_default_on_conversion_error
cast_keep_nullable
Nullable en las operaciones CAST.
Cuando esta configuración está habilitada y el argumento de la función CAST es Nullable, el resultado también se convierte al tipo Nullable. Cuando la configuración está deshabilitada, el resultado siempre tiene exactamente el tipo de destino.
Posibles valores:
- 0 — El resultado de
CASTtiene exactamente el tipo de destino especificado. - 1 — Si el tipo del argumento es
Nullable, el resultado deCASTse convierte enNullable(DestinationDataType).
Nullable en el tipo de dato de destino:
- CAST función
cast_string_to_date_time_mode
-
'best_effort'— Habilita el análisis ampliado. ClickHouse puede analizar el formato básicoYYYY-MM-DD HH:MM:SSy todos los formatos de fecha y hora ISO 8601. Por ejemplo,'2018-06-08T01:02:03.000Z'. -
'best_effort_us'— Similar abest_effort(consulte la diferencia en parseDateTimeBestEffortUS -
'basic'— Usa el parser básico. ClickHouse solo puede analizar el formato básicoYYYY-MM-DD HH:MM:SSoYYYY-MM-DD. Por ejemplo,2019-08-20 10:18:56o2019-08-20.
cast_string_to_dynamic_use_inference
cast_string_to_variant_use_inference
check_named_collection_dependencies
check_query_single_value_result
MergeTree .
Valores posibles:
- 0 — la consulta muestra un estado de verificación para cada parte de datos individual de una tabla.
- 1 — la consulta muestra el estado general de verificación de la tabla.
check_referential_table_dependencies
check_table_dependencies
checksum_on_read
cloud_mode
1.
cloud_mode_database_engine
2.
cloud_mode_engine
- 0 - permitir todo
- 1 - reescribir las DDLs para usar *ReplicatedMergeTree
- 2 - reescribir las DDLs para usar SharedMergeTree
- 3 - reescribir las DDLs para usar SharedMergeTree, excepto cuando se especifique explícitamente un disco remoto
- 4 - igual que 3, y además usar Alias en lugar de Distributed (la tabla Alias apuntará a la tabla de destino de la tabla Distributed, por lo que usará la tabla local correspondiente)
2.
cluster_for_parallel_replicas
default.
cluster_function_process_archive_on_multiple_nodes
true, mejora el rendimiento al procesar archivos comprimidos en funciones de clúster. Debe establecerse en false para mantener la compatibilidad y evitar errores durante la actualización a 25.7+ si se usan funciones de clúster con archivos comprimidos en versiones anteriores.
cluster_table_function_buckets_batch_size
bucket. El sistema acumula datos hasta alcanzar al menos esta cantidad. El tamaño real puede ser ligeramente mayor para ajustarse a los límites de los datos.
cluster_table_function_split_granularity
file— cada tarea procesa un archivo completo.bucket— las tareas se crean por cada bloque de datos interno dentro de un archivo (por ejemplo, grupos de filas de Parquet).
bucket) puede mejorar el paralelismo al trabajar con una cantidad reducida de archivos grandes.
Por ejemplo, si un archivo Parquet contiene varios grupos de filas, habilitar la granularidad bucket permite que cada grupo se procese de forma independiente en distintos workers.
collect_hash_table_stats_during_aggregation
collect_hash_table_stats_during_joins
compatibility
compatibility hace que ClickHouse use la configuración predeterminada de una versión anterior de ClickHouse, indicada en este ajuste.
Si algunos ajustes tienen valores distintos de los predeterminados, esos valores se respetan (solo los ajustes que no se han modificado se ven afectados por la configuración compatibility).
Esta configuración acepta un número de versión de ClickHouse como cadena, por ejemplo 22.3 o 22.8. Un valor vacío significa que esta configuración está deshabilitada.
Deshabilitada de forma predeterminada.
En ClickHouse Cloud, la configuración de compatibilidad predeterminada a nivel de servicio debe establecerla ClickHouse Cloud Support. Abra un caso para solicitarlo.
Sin embargo, la configuración
compatibility se puede sobrescribir a nivel de usuario, rol, perfil, consulta o sesión mediante los mecanismos de configuración estándar de ClickHouse, como SET compatibility = '22.3' en una sesión o SETTINGS compatibility = '22.3' en una consulta.compatibility_ignore_auto_increment_in_create_table
compatibility_ignore_collation_in_create_table
compatibility_s3_presigned_url_query_in_path
compile_aggregate_expressions
- 0 — La agregación se realiza sin compilación JIT.
- 1 — La agregación se realiza con compilación JIT.
compile_expressions
compile_sort_description
connect_timeout
connect_timeout_with_failover_ms
connect_timeout_with_failover_secure_ms
connection_pool_max_wait_ms
- Entero positivo.
- 0 — Tiempo de espera infinito.
connections_with_failover_max_tries
convert_query_to_cnf
true, una consulta SELECT se convertirá en forma normal conjuntiva (CNF). En algunos casos, reescribir una consulta en CNF puede ejecutarse más rápido (consulta este issue de GitHub para obtener una explicación).
Por ejemplo, observa cómo la siguiente consulta SELECT no se modifica (comportamiento predeterminado):
convert_query_to_cnf en true y veamos qué cambia:
WHERE se reescribe en CNF, pero el conjunto de resultados sigue siendo idéntico: la lógica booleana no cambia:
right, lo que significa que el plan decorrelacionado contendrá RIGHT JOINs con la entrada de la subconsulta en el lado derecho.
Valores posibles:
left- El proceso de decorrelación producirá LEFT JOINs y la tabla de entrada aparecerá en el lado izquierdo.right- El proceso de decorrelación producirá RIGHT JOINs y la tabla de entrada aparecerá en el lado derecho.
count_distinct_implementation
uniq* debe usarse para implementar la construcción COUNT(DISTINCT …).
Valores posibles:
count_distinct_optimization
count_matches_stop_at_empty_match
countMatches.
create_if_not_exists
IF NOT EXISTS para la instrucción CREATE de forma predeterminada. Si se especifica esta configuración o IF NOT EXISTS, y ya existe una tabla con el nombre indicado, no se lanzará ninguna excepción.
create_index_ignore_unique
create_replicated_merge_tree_fault_injection_probability
create_table_empty_primary_key_by_default
cross_join_min_bytes_to_compress
cross_join_min_rows_to_compress
cross_to_inner_join_rewrite
data_type_default_nullable
- 1 — Los tipos de datos en las definiciones de columna se establecen como
Nullablede forma predeterminada. - 0 — Los tipos de datos en las definiciones de columna se establecen como no
Nullablede forma predeterminada.
database_atomic_wait_for_drop_and_detach_synchronously
SYNC a todas las consultas DROP y DETACH.
Valores posibles:
- 0 — Las consultas se ejecutarán de forma diferida.
- 1 — Las consultas se ejecutarán sin demora.
database_datalake_require_metadata_access
database_replicated_allow_explicit_uuid
database_replicated_allow_heavy_create
database_replicated_allow_only_replicated_engine
1.
database_replicated_allow_replicated_engine_arguments
database_replicated_always_detach_permanently
database_replicated_enforce_synchronous_settings
database_replicated_initial_query_timeout_sec
- Entero positivo.
- 0 — Ilimitado.
UNDROP TABLE.
decimal_check_overflow
deduplicate_blocks_in_dependent_materialized_views
deduplicate_insert
INSERT INTO (para tablas Replicated*).
Este ajuste sobrescribe los ajustes insert_deduplicate y async_insert_deduplicate.
Este ajuste tiene tres valores posibles:
- disable — La deduplicación está deshabilitada para la consulta
INSERT INTO. - enable — La deduplicación está habilitada para la consulta
INSERT INTO. - backward_compatible_choice — La deduplicación está habilitada si
insert_deduplicateoasync_insert_deduplicateestán habilitados para el tipo de insert específico.
deduplicate_insert_select
INSERT SELECT (para tablas Replicated*).
Esta configuración anula insert_deduplicate y deduplicate_insert para las consultas INSERT SELECT.
Esta configuración tiene cuatro valores posibles:
- disable — La deduplicación está deshabilitada para la consulta
INSERT SELECT. - force_enable — La deduplicación está habilitada para la consulta
INSERT SELECT. Si el resultado de SELECT no es estable, se lanza una excepción. - enable_when_possible — La deduplicación está habilitada si
insert_deduplicateestá habilitado y el resultado de SELECT es estable; de lo contrario, se deshabilita. - enable_even_for_bad_queries - La deduplicación está habilitada si
insert_deduplicateestá habilitado. Si el resultado de SELECT no es estable, se registra una advertencia, pero la consulta se ejecuta con deduplicación. Esta opción es por compatibilidad con versiones anteriores. Considere usar otras opciones, ya que esta puede dar lugar a resultados inesperados.
default_materialized_view_sql_security
DEFINER.
default_max_bytes_in_join
max_bytes_in_join no está configurado.
default_normal_view_sql_security
SQL SECURITY al crear una vista normal. Más información sobre la seguridad SQL.
El valor predeterminado es INVOKER.
default_table_engine
ENGINE en una sentencia CREATE.
Valores posibles:
- una cadena que represente cualquier nombre de motor de tabla válido
SharedMergeTree.
Ejemplo
Consulta:
Engine utilizará el motor de tabla Log:
Consulta:
default_temporary_table_engine
Engine usará el engine de tabla Log:
Consulta:
default_view_definer
DEFINER predeterminada al crear una vista. Más información sobre SQL SECURITY.
El valor predeterminado es CURRENT_USER.
defer_partition_pruning_after_final
FINAL en 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 26.3: FINAL puede necesitar deduplicar filas que comparten una clave primaria pero están
en particiones distintas, y la poda de particiones excluiría silenciosamente esas filas de la
entrada usada para la deduplicación.
Cuando está deshabilitado, la poda de particiones se aplica incluso con FINAL, lo que restaura el comportamiento
anterior a la versión 26.3. Esto puede ser considerablemente más rápido para consultas con predicados WHERE en la
columna de partición, pero solo es correcto cuando filas con la misma clave primaria no pueden existir
en particiones distintas; 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.
Este ajuste 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 versión 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).
delta_lake_enable_engine_predicate
delta_lake_enable_expression_visitor_logging
delta_lake_insert_max_bytes_in_data_file
delta_lake_insert_max_rows_in_data_file
delta_lake_log_metadata
delta_lake_reload_schema_for_consistency
delta_lake_snapshot_end_version
delta_lake_snapshot_start_version
delta_lake_snapshot_version
delta_lake_throw_on_engine_predicate_error
describe_compact_output
describe_include_subcolumns
- 0 — Las subcolumnas no se incluyen en las consultas
DESCRIBE. - 1 — Las subcolumnas se incluyen en las consultas
DESCRIBE.
describe_include_virtual_columns
dialecto
dictionary_use_async_executor
dictionary_validate_primary_key_type
distinct_overflow_mode
throw: lanza una excepción (predeterminado).break: deja de ejecutar la consulta y devuelve el resultado parcial, como si los datos de origen se hubieran agotado.
distributed_aggregation_memory_efficient
distributed_background_insert_batch
distributed_directory_monitor_batch_inserts
Habilita o deshabilita el envío por lotes de los datos insertados.
Cuando el envío por lotes está habilitado, el motor de tabla Distributed intenta enviar varios archivos de datos insertados en una sola operación en lugar de enviarlos por separado. El envío por lotes mejora el rendimiento del clúster al aprovechar mejor los recursos del servidor y de la red.
Valores posibles:
- 1 — Habilitado.
- 0 — Deshabilitado.
distributed_background_insert_max_sleep_time_ms
distributed_directory_monitor_max_sleep_time_ms
Intervalo máximo para que el motor de tabla Distributed envíe datos. Limita el crecimiento exponencial del intervalo establecido en la opción de configuración distributed_background_insert_sleep_time_ms.
Valores posibles:
- Un número entero positivo de milisegundos.
distributed_background_insert_sleep_time_ms
distributed_directory_monitor_sleep_time_ms
Intervalo base para que el motor de tabla Distributed envíe datos. El intervalo real aumenta exponencialmente en caso de errores.
Valores posibles:
- Un número entero positivo de milisegundos.
distributed_background_insert_split_batch_on_failure
distributed_directory_monitor_split_batch_on_failure
Habilita o deshabilita la división de lotes cuando se producen fallos.
A veces, el envío de un lote concreto al segmento remoto puede fallar debido a alguna canalización compleja posterior (por ejemplo, una MATERIALIZED VIEW con GROUP BY) por Memory limit exceeded u otros errores similares. En este caso, reintentar no servirá de ayuda (y esto bloqueará los envíos distribuidos de la tabla), pero enviar los archivos de ese lote uno por uno puede hacer que el INSERT se complete correctamente.
Por lo tanto, establecer esta configuración en 1 deshabilitará el procesamiento por lotes para esos lotes (es decir, deshabilitará temporalmente distributed_background_insert_batch para los lotes fallidos).
Valores posibles:
- 1 — Habilitado.
- 0 — Deshabilitado.
Esta configuración también afecta a los lotes dañados (que pueden aparecer debido a una finalización anómala del servidor (máquina) y a la ausencia de
fsync_after_insert/fsync_directories para el motor de tabla Distributed).No debe confiar en la división automática de lotes, ya que puede perjudicar el rendimiento.
distributed_background_insert_timeout
insert_distributed_timeout
Tiempo de espera de la consulta de inserción en Distributed. Esta configuración se usa solo cuando insert_distributed_sync está habilitado. Un valor de cero significa que no hay tiempo de espera.
distributed_cache_alignment
distributed_cache_bypass_connection_pool
distributed_cache_connect_backoff_max_ms
distributed_cache_connect_backoff_min_ms
distributed_cache_connect_max_tries
distributed_cache_connect_timeout_ms
distributed_cache_credentials_refresh_period_seconds
distributed_cache_data_packet_ack_window
distributed_cache_discard_connection_if_unread_data
distributed_cache_fetch_metrics_only_from_current_az
distributed_cache_file_cache_name
distributed_cache_log_mode
distributed_cache_max_unacked_inflight_packets
distributed_cache_min_bytes_for_seek
distributed_cache_pool_behaviour_on_limit
distributed_cache_prefer_bigger_buffer_size
distributed_cache_read_only_from_current_az
distributed_cache_read_request_max_tries
distributed_cache_receive_response_wait_milliseconds
distributed_cache_receive_timeout_milliseconds
20000.
distributed_cache_receive_timeout_ms
distributed_cache_send_timeout_ms
distributed_cache_tcp_keep_alive_timeout_ms
distributed_cache_throw_on_error
distributed_cache_use_clients_cache_for_read
distributed_cache_use_clients_cache_for_write
distributed_cache_wait_connection_from_pool_milliseconds
distributed_cache_write_request_max_tries
distributed_connections_pool_size
distributed_ddl_entry_format_version
6.
distributed_ddl_output_mode
throw— Devuelve un conjunto de resultados con el estado de ejecución de la consulta para todos los hosts en los que la consulta ha finalizado. Si la consulta ha fallado en algunos hosts, vuelve a lanzar la primera excepción. Si la consulta aún no ha finalizado en algunos hosts y se ha superado distributed_ddl_task_timeout, lanza la excepciónTIMEOUT_EXCEEDED.none— Es similar athrow, pero la consulta DDL distribuida no devuelve ningún conjunto de resultados.null_status_on_timeout— DevuelveNULLcomo estado de ejecución en algunas filas del conjunto de resultados en lugar de lanzarTIMEOUT_EXCEEDEDsi la consulta no ha finalizado en los hosts correspondientes.never_throw— No lanzaTIMEOUT_EXCEEDEDni vuelve a lanzar excepciones si la consulta ha fallado en algunos hosts.none_only_active- Similar anone, pero no espera a las réplicas inactivas de la base de datosReplicated. Nota: con este modo es imposible determinar que la consulta no se ejecutó en alguna réplica y que se ejecutará en segundo plano.null_status_on_timeout_only_active— Similar anull_status_on_timeout, pero no espera a las réplicas inactivas de la base de datosReplicatedthrow_only_active— Similar athrow, pero no espera a las réplicas inactivas de la base de datosReplicated
none_only_active.
distributed_ddl_task_timeout
- Entero positivo.
- 0 — Modo asíncrono.
- Entero negativo — tiempo de espera infinito.
distributed_foreground_insert
insert_distributed_sync
Habilita o deshabilita la inserción síncrona de datos en una tabla Distributed.
De forma predeterminada, al insertar datos en una tabla Distributed, el servidor de ClickHouse envía los datos a los nodos del clúster en segundo plano. Cuando distributed_foreground_insert=1, los datos se procesan de forma síncrona y la operación INSERT solo se completa correctamente después de que todos los datos se hayan guardado en todos los segmentos (al menos una réplica por cada segmento si internal_replication es true).
Valores posibles:
0— Los datos se insertan en segundo plano.1— Los datos se insertan en modo síncrono.
1.
Véase también
distributed_group_by_no_merge
0— Deshabilitado (el procesamiento final de la consulta se realiza en el nodo iniciador).1- No fusiona los estados de agregación de distintos servidores durante el procesamiento distribuido de consultas (la consulta se procesa por completo en el segmento; el iniciador solo actúa como proxy de los datos); puede usarse cuando se tiene la certeza de que hay claves distintas en diferentes segmentos.2- Igual que1, pero aplicaORDER BYyLIMITen el iniciador (esto no es posible cuando la consulta se procesa por completo en el nodo remoto, como endistributed_group_by_no_merge=1) y puede usarse para consultas conORDER BYy/oLIMIT.
distributed_index_analysis
- distributed_index_analysis_for_non_shared_merge_tree
- distributed_index_analysis_min_parts_to_activate
- distributed_index_analysis_min_indexes_bytes_to_activate
distributed_index_analysis_only_on_coordinator
IN (SELECT ...)),
porque, de lo contrario, cada réplica follower activaría de forma independiente su propio análisis de índices distribuidos,
pero hace que el análisis de índices distribuidos sea menos eficiente si en las subconsultas se usan tablas grandes.
distributed_insert_skip_read_only_replicas
- 0 — INSERT se realizará como de costumbre; si se dirige a una réplica de solo lectura, fallará
- 1 — El nodo iniciador omitirá las réplicas de solo lectura antes de enviar los datos a los segmentos.
distributed_plan_default_reader_bucket_count
distributed_plan_default_shuffle_join_bucket_count
distributed_plan_execute_locally
distributed_plan_force_exchange_kind
- ” - no forzar ningún tipo de operadores Exchange; dejar que el optimizador elija,
- ‘Persisted’ - usar archivos temporales en el almacenamiento de objetos,
- ‘Streaming’ - transmitir datos de intercambio a través de la red.
distributed_plan_force_shuffle_aggregation
distributed_plan_max_rows_to_broadcast
distributed_plan_optimize_exchanges
distributed_plan_prefer_replicas_over_workers
distributed_product_mode
- Solo se aplica a las subconsultas
INyJOIN. - Solo si la sección
FROMusa una tabla distribuida que contiene más de un segmento. - Si la subconsulta hace referencia a una tabla distribuida que contiene más de un segmento.
- No se usa para la función de tabla remote.
deny— Valor predeterminado. Prohíbe usar estos tipos de subconsultas (devuelve la excepción “Double-distributed in/JOIN subqueries is denied”).local— Reemplaza la base de datos y la tabla de la subconsulta por las locales del servidor de destino (segmento), dejandoIN/JOINnormal.global— Reemplaza la consultaIN/JOINporGLOBAL IN/GLOBAL JOIN.allow— Permite el uso de estos tipos de subconsultas.
distributed_push_down_limit
- Enviar filas adicionales por la red;
- Procesar filas que quedan fuera del límite en el iniciador.
distributed_push_down_limit cambia la ejecución de la consulta solo si se cumple al menos una de estas condiciones:
- distributed_group_by_no_merge > 0.
- La consulta no tiene
GROUP BY/DISTINCT/LIMIT BY, pero síORDER BY/LIMIT. - La consulta tiene
GROUP BY/DISTINCT/LIMIT BYconORDER BY/LIMITy:- optimize_skip_unused_shards está habilitado.
- optimize_distributed_group_by_sharding_key está habilitado.
- 0 — Deshabilitado.
- 1 — Habilitado.
- distributed_group_by_no_merge
- optimize_skip_unused_shards
- optimize_distributed_group_by_sharding_key
distributed_replica_error_cap
- Tipo: entero sin signo
- Valor predeterminado: 1000
- load_balancing
- Motor de tabla Distributed
- distributed_replica_error_half_life
- distributed_replica_max_ignored_errors
distributed_replica_error_half_life
- Tipo: segundos
- Valor predeterminado: 60 segundos
- load_balancing
- Motor de tabla Distributed
- distributed_replica_error_cap
- distributed_replica_max_ignored_errors
distributed_replica_max_ignored_errors
- Tipo: entero sin signo
- Valor predeterminado: 0
load_balancing).
Vea también:
- load_balancing
- Motor de tabla Distributed
- distributed_replica_error_cap
- distributed_replica_error_half_life
do_not_merge_across_partitions_select_final
dynamic_disk_allow_from_env
from_env en la configuración de discos dinámicos (es decir, en los argumentos de la función disk()).
Está deshabilitada de forma predeterminada para evitar que los usuarios puedan leer variables de entorno arbitrarias al definir el almacenamiento de la tabla.
dynamic_disk_allow_from_zk
from_zk en la configuración dinámica del disco (es decir, en los argumentos de la función disk()).
Deshabilitada de forma predeterminada.
dynamic_disk_allow_include
include en la configuración dinámica de discos (es decir, en los argumentos de la función disk()).
Desactivada de forma predeterminada.
dynamic_throw_on_type_mismatch
true(predeterminado) — lanzar una excepción.false— devolverNULLpara esas filas.
empty_result_for_aggregation_by_constant_keys_on_empty_set
empty_result_for_aggregation_by_empty_set
enable_adaptive_memory_spill_scheduler
grace join.
enable_add_distinct_to_in_subqueries
DISTINCT en las subconsultas IN. Esta configuración implica una compensación: activarla puede reducir considerablemente el tamaño de las tablas temporales transferidas para las subconsultas IN distribuidas y acelerar significativamente la transferencia de datos entre segmentos, ya que garantiza que solo se envíen valores únicos.
Sin embargo, activar esta configuración añade trabajo de fusión adicional en cada nodo, ya que debe realizarse la deduplicación (DISTINCT). Usa esta configuración cuando la transferencia de red sea un cuello de botella y el coste adicional de fusión sea aceptable.
enable_automatic_decision_for_merging_across_partitions_for_final
enable_blob_storage_log
enable_blob_storage_log_for_read_operations
enable_blob_storage_log también esté habilitado.
enable_early_constant_folding
enable_extended_results_for_datetime_functions
Date32 con rango ampliado (en comparación con el tipo Date)
o de tipo DateTime64 con 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.
| Función | enable_extended_results_for_datetime_functions = 0 | enable_extended_results_for_datetime_functions = 1 |
|---|---|---|
toStartOfYear | Devuelve Date o DateTime | Devuelve Date/DateTime para entradas de tipo Date/DateTimeDevuelve Date32/DateTime64 para entradas de tipo Date32/DateTime64 |
toStartOfISOYear | Devuelve Date o DateTime | Devuelve Date/DateTime para entradas Date/DateTimeDevuelve Date32/DateTime64 para entradas Date32/DateTime64 |
toStartOfQuarter | Devuelve Date o DateTime | Devuelve Date/DateTime para entradas Date/DateTimeDevuelve Date32/DateTime64 para entradas Date32/DateTime64 |
toStartOfMonth | Devuelve Date o DateTime | Devuelve Date/DateTime para entradas Date/DateTimeDevuelve Date32/DateTime64 para entradas Date32/DateTime64 |
toStartOfWeek | Devuelve Date o DateTime | Devuelve Date/DateTime para valores de entrada Date/DateTimeDevuelve Date32/DateTime64 para valores de entrada Date32/DateTime64 |
toLastDayOfWeek | Devuelve Date o DateTime | Devuelve Date/DateTime cuando la entrada es Date/DateTimeDevuelve Date32/DateTime64 cuando la entrada es Date32/DateTime64 |
toLastDayOfMonth | Devuelve Date o DateTime | Devuelve Date/DateTime para entradas Date/DateTimeDevuelve Date32/DateTime64 para entradas Date32/DateTime64 |
toMonday | Devuelve Date o DateTime | Devuelve Date/DateTime para valores de entrada Date/DateTimeDevuelve Date32/DateTime64 para valores de entrada Date32/DateTime64 |
toStartOfDay | Devuelve DateTimeNota: resultados incorrectos para valores fuera del intervalo 1970-2149 | Devuelve DateTime para una entrada Date/DateTimeDevuelve DateTime64 para una entrada Date32/DateTime64 |
toStartOfHour | Devuelve DateTimeNota: resultados incorrectos para valores fuera del rango 1970-2149 | Devuelve DateTime para entradas Date/DateTimeDevuelve DateTime64 para entradas Date32/DateTime64 |
toStartOfFifteenMinutes | Devuelve DateTimeNota: resultados incorrectos para valores fuera del rango 1970-2149 | Devuelve DateTime para entradas Date/DateTimeDevuelve DateTime64 para entradas Date32/DateTime64 |
toStartOfTenMinutes | Devuelve DateTimeNota: resultados incorrectos para valores fuera del rango 1970-2149 | Devuelve DateTime para entradas Date/DateTimeDevuelve DateTime64 para entradas Date32/DateTime64 |
toStartOfFiveMinutes | Devuelve DateTimeNota: devuelve resultados incorrectos para valores fuera del intervalo 1970-2149 | Devuelve DateTime para entradas Date/DateTimeDevuelve DateTime64 para entradas Date32/DateTime64 |
toStartOfMinute | Devuelve DateTimeNota: resultados incorrectos para valores fuera del intervalo 1970-2149 | Devuelve DateTime para entradas Date/DateTimeDevuelve DateTime64 para entradas Date32/DateTime64 |
timeSlot | Devuelve DateTimeNota: produce resultados incorrectos para valores fuera del rango 1970-2149 | Devuelve DateTime para entradas Date/DateTimeDevuelve DateTime64 para entradas Date32/DateTime64 |
enable_filesystem_cache
enable_filesystem_cache_log
enable_filesystem_cache_on_write_operations
write-through. Si se establece en false, la caché write-through se desactiva para las operaciones de escritura. Si se establece en true, la caché write-through se activa siempre que cache_on_write_operations esté habilitado en la sección de configuración del disco de caché de la configuración del servidor.
Consulta “Using local cache” para obtener más información.
Valor predeterminado de Cloud: 1.
enable_filesystem_read_prefetches_log
enable_full_text_index
allow_experimental_full_text_index
Si se establece en true, permite usar el índice de texto.
enable_global_with_statement
enable_hdfs_pread
pread 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
- 0 — Deshabilitado.
- 1 — Habilitado.
enable_identifier_resolve_cache
enable_job_stack_trace
enable_join_fixed_hash_table_conversion
enable_join_runtime_filters
enable_join_transitive_predicates
A.x = B.x y B.x = C.x, se añade un predicado sintético A.x = C.x
para que el optimizador del orden de join pueda considerar planes directos de (A JOIN C).
enable_lazy_columns_replication
enable_lightweight_delete
allow_experimental_lightweight_delete
Habilita las mutaciones DELETE de eliminación ligera en tablas MergeTree.
enable_lightweight_update
allow_experimental_lightweight_update
Permite utilizar actualizaciones ligeras.
enable_materialized_cte
enable_memory_bound_merging_of_aggregation_results
enable_multiple_prewhere_read_steps
enable_named_columns_in_function_tuple
enable_optimize_predicate_expression
SELECT.
El pushdown de predicados puede reducir significativamente el tráfico de red en las consultas distribuidas.
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
SELECT count() FROM test_table WHERE date = '2018-10-10'SELECT count() FROM (SELECT * FROM test_table) WHERE date = '2018-10-10'
enable_optimize_predicate_expression = 1, el tiempo de ejecución de estas consultas es el mismo porque ClickHouse aplica WHERE a la subconsulta durante su procesamiento.
Si enable_optimize_predicate_expression = 0, el tiempo de ejecución de la segunda consulta es mucho mayor porque la cláusula WHERE se aplica a todos los datos una vez finalizada la subconsulta.
enable_optimize_predicate_expression_to_final_subquery
enable_order_by_all
ORDER BY ALL; consulte ORDER BY.
Valores posibles:
- 0 — Deshabilita ORDER BY ALL.
- 1 — Habilita ORDER BY ALL.
enable_parallel_blocks_marshalling
enable_parsing_to_custom_serialization
enable_positional_arguments
- 0 — No se admiten argumentos posicionales.
- 1 — Se admiten argumentos posicionales: se pueden usar números de columna en lugar de nombres de columna.
enable_positional_arguments_for_projections
Esta es una configuración de nivel experto y no debe cambiarla si apenas está empezando con ClickHouse.
- 0 — Los argumentos posicionales no se admiten.
- 1 — Los argumentos posicionales se admiten: se pueden usar números de columna en lugar de nombres de columna.
enable_producing_buckets_out_of_order_in_aggregation
distributed_aggregation_memory_efficient) produzca buckets fuera de orden.
Puede mejorar el rendimiento cuando los tamaños de los buckets de agregación son desiguales, ya que permite 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_reads_from_query_cache
SELECT se recuperan de la caché de consultas.
Valores posibles:
- 0 - Deshabilitado
- 1 - Habilitado
enable_s3_requests_logging
enable_scalar_subquery_optimization
enable_scopes_for_with_statement
enable_sharding_aggregator
GROUP BY con sharding, que distribuye las filas entre hilos aplicando un hash a la clave de agrupación, de modo que cada hilo agrega un subconjunto distinto de claves sin una fase de fusión.
Esto es eficiente para claves de alta cardinalidad con datos distribuidos uniformemente, pero puede verse afectado por distribuciones de claves muy sesgadas o por consultas con muy pocas claves distintas.
Valores posibles:
- 0 — La optimización de agregación con sharding está deshabilitada.
- 1 — La optimización de agregación con sharding está habilitada.
Al habilitar esta configuración, se desactiva la optimización que elimina de las instantáneas las partes de datos innecesarias una vez completada la fase de planificación.
Como resultado, las consultas de larga duración pueden retener partes obsoletas durante toda su ejecución, lo que retrasa la limpieza de partes y aumenta la presión sobre el almacenamiento.Actualmente, esta configuración solo se aplica a tablas de la familia MergeTree.
- 0 - Deshabilitado
- 1 - Habilitado
enable_sharing_sets_for_mutations
IN entre diferentes tareas de la misma mutación. Esto reduce el uso de memoria y el consumo de CPU
enable_software_prefetch_in_aggregation
enable_software_prefetch_in_join
enable_streaming_queries
SELECT ... FROM t STREAM [CURSOR '{...}'].
Cuando está desactivado, cualquier expresión de tabla que use el modificador STREAM se rechaza
en tiempo de construcción del plan. Esta es la opción de control general para la
funcionalidad de consultas de streaming; las capacidades adicionales pueden estar controladas por sus propias configuraciones.
enable_time_time64_type
allow_experimental_time_time64_type
Permite crear los tipos de datos Time y Time64.
enable_unaligned_array_join
enable_url_encoding
enable_vertical_final
enable_writes_to_query_cache
SELECT se almacenan en la caché de consultas.
Valores posibles:
- 0 - Desactivado
- 1 - Activado
enforce_strict_identifier_format
engine_file_allow_create_multiple_files
JSON, ORC, Parquet, etc.). Si está habilitado, en cada inserción se creará un archivo nuevo con un nombre que siga este patrón:
data.Parquet -> data.1.Parquet -> data.2.Parquet, etc.
Valores posibles:
- 0 — la consulta
INSERTagrega datos nuevos al final del archivo. - 1 — la consulta
INSERTcrea un archivo nuevo.
engine_file_empty_if_not_exists
- 0 —
SELECTlanza una excepción. - 1 —
SELECTdevuelve un resultado vacío.
engine_file_skip_empty_files
- 0 —
SELECTgenera una excepción si el archivo vacío no es compatible con el formato solicitado. - 1 —
SELECTdevuelve un resultado vacío para un archivo vacío.
engine_file_truncate_on_insert
- 0 — la consulta
INSERTañade datos nuevos al final del archivo. - 1 — la consulta
INSERTsustituye el contenido existente del archivo por los nuevos datos.
engine_url_skip_empty_files
- 0 —
SELECTgenera una excepción si el archivo vacío no es compatible con el format solicitado. - 1 —
SELECTdevuelve un resultado vacío si el archivo está vacío.
exact_rows_before_limit
except_default_mode
exclude_materialize_skip_indexes_on_insert
execute_exists_as_scalar_subquery
EXISTS no correlacionadas como subconsultas escalares. Igual que con las subconsultas escalares, se utiliza la caché y el plegado de constantes se aplica al resultado.
Valor predeterminado en Cloud: 0.
external_storage_connect_timeout_sec
external_storage_max_read_bytes
external_storage_max_read_rows
external_storage_rw_timeout_sec
external_table_functions_use_nulls
- 0 — La función de tabla utiliza explícitamente columnas Nullable.
- 1 — La función de tabla utiliza implícitamente columnas Nullable.
0, la función de tabla no genera columnas Nullable e inserta valores predeterminados en lugar de NULL. Esto también se aplica a los valores NULL dentro de los arrays.
external_table_strict_query
extract_key_value_pairs_max_pairs_per_row
extract_kvp_max_pairs_per_row
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
fallback_to_stale_replicas_for_distributed_queries
SELECT en una tabla distribuida que apunta a tablas replicadas.
De forma predeterminada, 1 (habilitado).
file_like_engine_default_partition_strategy
filesystem_cache_allow_background_download
filesystem_cache_boundary_alignment
filesystem_cache_enable_background_download_during_fetch
filesystem_cache_enable_background_download_for_metadata_files_in_packed_storage
filesystem_cache_max_download_size
filesystem_cache_name
filesystem_cache_prefer_bigger_buffer_size
filesystem_cache_reserve_space_wait_lock_timeout_milliseconds
filesystem_cache_segments_batch_size
filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit
skip_download_if_exceeds_query_cache
Omitir la descarga desde el sistema de archivos remoto si supera el tamaño de la caché de consultas
filesystem_prefetch_max_memory_usage
filesystem_prefetch_step_bytes
auto: el paso de prefetch óptimo se inferirá automáticamente de forma aproximada, aunque puede que no sea el mejor en todos los casos. El valor real puede ser diferente debido a la configuración filesystem_prefetch_min_bytes_for_single_read_task
filesystem_prefetch_step_marks
auto: se deducirá automáticamente un paso de precarga aproximadamente óptimo, aunque puede que no sea el mejor en todos los casos. El valor real puede ser diferente debido a la configuración filesystem_prefetch_min_bytes_for_single_read_task
filesystem_prefetches_limit
filesystem_prefetches_max_memory_usage si desea limitar el número de precargas
final
- 0 - deshabilitado
- 1 - habilitado
finalize_projection_parts_synchronously
flatten_nested
- 1 — La columna nested se aplana en arrays separados.
- 0 — La columna nested sigue siendo un único array de tuplas.
0, se puede usar cualquier nivel de anidamiento.
Ejemplos
Consulta:
force_aggregate_partitions_independently
force_aggregation_in_order
force_data_skipping_indices
force_grouping_standard_compatibility
force_index_by_date
force_index_by_date=1, ClickHouse comprueba si la consulta tiene una condición sobre la clave de fecha que pueda usarse para restringir los rangos de datos. Si no hay una condición adecuada, lanza una excepción. Sin embargo, no comprueba si la condición reduce la cantidad de datos que se deben leer. Por ejemplo, la condición Date != ' 2000-01-01 ' es aceptable incluso cuando coincide con todos los datos de la tabla (es decir, ejecutar la consulta requiere un escaneo completo). Para obtener más información sobre los rangos de datos en las tablas MergeTree, consulta MergeTree.
force_optimize_projection
SELECT cuando está habilitada la optimización de proyecciones (consulta el ajuste optimize_use_projections).
Valores posibles:
- 0 — La optimización de proyecciones no es obligatoria.
- 1 — La optimización de proyecciones es obligatoria.
force_optimize_projection_name
- cadena: nombre de la proyección que se utiliza en una consulta
force_optimize_skip_unused_shards
- 0 — Deshabilitado. ClickHouse no lanza ninguna excepción.
- 1 — Habilitado. La ejecución de consultas se deshabilita solo si la tabla tiene una clave de segmentación.
- 2 — Habilitado. La ejecución de consultas se deshabilita independientemente de si la tabla tiene definida una clave de segmentación.
force_optimize_skip_unused_shards_nesting
force_optimize_skip_unused_shards en función del nivel de anidamiento de la consulta distribuida (es decir, cuando tiene una tabla Distributed que consulta otra tabla Distributed), por lo que sigue requiriendo force_optimize_skip_unused_shards.
Valores posibles:
- 0 - Deshabilitado;
force_optimize_skip_unused_shardsfunciona siempre. - 1 — Habilita
force_optimize_skip_unused_shardssolo para el primer nivel. - 2 — Habilita
force_optimize_skip_unused_shardshasta el segundo nivel.
force_primary_key
force_primary_key=1, ClickHouse comprueba si la consulta tiene una condición sobre la clave primaria que pueda usarse para restringir los rangos de datos. Si no existe una condición adecuada, lanza una excepción. Sin embargo, no comprueba si la condición reduce la cantidad de datos que se deben leer. Para obtener más información sobre los rangos de datos en las tablas MergeTree, consulte MergeTree.
force_remove_data_recursively_on_drop
formatdatetime_e_with_space_padding
formatdatetime_f_prints_scale_number_of_digits
formatdatetime_f_prints_single_zero
formatdatetime_format_without_leading_zeros
formatdatetime_parsedatetime_m_is_month_name
fsync_metadata
.sql. Está habilitado de forma predeterminada.
Tiene sentido deshabilitarlo si el server tiene millones de tablas pequeñas que se crean y destruyen constantemente.
function_base58_max_input_size
base58Encode, base58Decode y tryBase58Decode. La conversión genérica base58 es cuadrática con respecto a la longitud de la entrada, por lo que un único valor grande puede tardar mucho tiempo en procesarse. base58 está pensado para datos cortos (claves, hashes, direcciones), por lo que el valor predeterminado de 10 KB es un generoso umbral de seguridad. base58Encode y base58Decode lanzan TOO_LARGE_STRING_SIZE con entradas mayores, mientras que tryBase58Decode devuelve una cadena vacía. Un valor de 0 desactiva el límite (este era el comportamiento anterior a la introducción de esta configuración). Las funciones lineales base32 y base64 no se ven afectadas.
function_date_trunc_return_type_behavior
dateTrunc.
Valores posibles:
- 0 - Cuando el segundo argumento es
DateTime64/Date32, el tipo de retorno seráDateTime64/Date32independientemente de la unidad de tiempo del primer argumento. - 1 - Para
Date32, el resultado siempre esDate. ParaDateTime64, el resultado esDateTimepara las unidades de tiemposecondy superiores.
function_implementation
function_json_value_return_type_allow_complex
- true — Se permite.
- false — No se permite.
function_json_value_return_type_allow_nullable
NULL cuando no existe ningún valor para la función JSON_VALUE.
- true — Se permite.
- false — No se permite.
function_locate_has_mysql_compatible_argument_order
- 0 — La función
locateacepta los argumentos(haystack, needle[, start_pos]). - 1 — La función
locateacepta los argumentos(needle, haystack, [, start_pos])(comportamiento compatible con MySQL)
function_range_max_elements_in_block
- Entero positivo.
function_sleep_max_microseconds_per_block
sleep puede suspenderse por cada bloque. Si un usuario la llama con un valor mayor, lanza una excepción. Es un umbral de seguridad.
function_visible_width_behavior
visibleWidth. 0: solo cuenta el número de puntos de código; 1: cuenta correctamente los caracteres de ancho cero y los caracteres combinantes, cuenta los caracteres de ancho completo como dos, estima el ancho de las tabulaciones y cuenta los caracteres de supresión.
functions_h3_default_if_invalid
geo_distance_returns_float64_on_float64_arguments
geoDistance, greatCircleDistance y greatCircleAngle son Float64, estas devuelven Float64 y usan precisión doble para los cálculos internos. En versiones anteriores de ClickHouse, estas funciones siempre devolvían Float32.
geotoh3_argument_order
geoToH3 acepta (lon, lat) si está configurada como ‘lon_lat’ y (lat, lon) si está configurada como ‘lat_lon’.
glob_expansion_max_elements
grace_hash_join_initial_buckets
grace_hash_join_max_buckets
group_by_overflow_mode
throw: lanzar una excepciónbreak: detener la ejecución de la consulta y devolver el resultado parcialany: continuar la agregación para las claves que entraron en el conjunto, pero sin añadir nuevas claves al conjunto.
any permite ejecutar una aproximación de GROUP BY. La calidad de
esta aproximación depende de la naturaleza estadística de los datos.
group_by_two_level_threshold
group_by_two_level_threshold_bytes
group_by_use_nulls
ROLLUP, CUBE o GROUPING SETS, es posible que algunas claves de agregación no se utilicen para generar algunas filas de resultados.
Las columnas de estas claves se rellenan con el valor predeterminado o con NULL en las filas correspondientes, según esta configuración.
Valores posibles:
- 0 — Se utiliza el valor predeterminado del tipo de clave de agregación para generar los valores faltantes.
- 1 — ClickHouse ejecuta
GROUP BYde la misma forma que indica el estándar SQL. Los tipos de las claves de agregación se convierten a Nullable. Las columnas de las claves de agregación correspondientes se rellenan con NULL en las filas donde no se usaron.
h3togeo_lon_lat_result_order
handshake_timeout_ms
hdfs_create_new_file_on_insert
data.Parquet.gz -> data.1.Parquet.gz -> data.2.Parquet.gz, etc.
Valores posibles:
- 0 — la consulta
INSERTañade nuevos datos al final del archivo. - 1 — la consulta
INSERTcrea un archivo nuevo.
hdfs_ignore_file_doesnt_exist
- 1 —
SELECTdevuelve un resultado vacío. - 0 —
SELECTlanza una excepción.
hdfs_replication
hdfs_skip_empty_files
- 0 —
SELECTlanza una excepción si el archivo vacío no es compatible con el formato solicitado. - 1 —
SELECTdevuelve un resultado vacío para un archivo vacío.
hdfs_throw_on_zero_files_match
- 1 —
SELECTlanza una excepción. - 0 —
SELECTdevuelve un resultado vacío.
hdfs_truncate_on_insert
insert en tablas con el engine HDFS. Si está deshabilitado, se lanzará una excepción al intentar hacer un insert si el archivo ya existe en HDFS.
Valores posibles:
- 0 — la consulta
INSERTagrega datos nuevos al final del archivo. - 1 — la consulta
INSERTreemplaza el contenido existente del archivo por los datos nuevos.
hedged_connection_timeout_ms
highlight_max_matches_per_row
- Entero positivo.
hnsw_candidate_list_size_for_search
hsts_max_age
http_connection_timeout
- Cualquier número entero positivo.
- 0 - Desactivado (tiempo de espera infinito).
http_headers_progress_interval_ms
http_headers_read_timeout
timeout por lectura. Protege frente a ataques de tipo slowloris, en los que un cliente envía lentamente los datos de las cabeceras para mantener abiertas las conexiones.
http_make_head_request
http_make_head_request permite ejecutar una solicitud HEAD al leer datos desde HTTP para obtener información sobre el archivo que se va a leer, como su tamaño. Dado que está habilitada de forma predeterminada, puede ser conveniente desactivar esta configuración cuando el server no admita solicitudes HEAD.
http_max_field_name_size
http_max_field_value_size
http_max_fields
http_max_multipart_form_data_size
multipart/form-data. Esta configuración no puede analizarse a partir de los parámetros de URL y debe establecerse en un perfil de usuario. Tenga en cuenta que el contenido se analiza y las tablas externas se crean en memoria antes de que comience la ejecución de la consulta. Además, este es el único límite que surte efecto en esa etapa (los límites de uso máximo de memoria y de tiempo máximo de ejecución no tienen efecto durante la lectura de form data de HTTP).
http_max_request_header_size
http_max_request_param_data_size
http_max_tries
http_max_uri_size
- Entero positivo.
http_native_compression_disable_checksumming_on_decompress
gzip ni deflate).
Para obtener más información, consulte la descripción de la interfaz HTTP.
Posibles valores:
- 0 — Deshabilitado.
- 1 — Habilitado.
http_receive_timeout
- Cualquier entero positivo.
- 0 - Deshabilitado (tiempo de espera infinito).
http_response_buffer_size
http_response_headers
SET http_response_headers = '{"Content-Type": "image/png"}'
http_retry_initial_backoff_ms
http_retry_max_backoff_ms
http_send_timeout
- Cualquier entero positivo.
- 0 - Deshabilitado (timeout infinito).
Se aplica solo al perfil predeterminado. Es necesario reiniciar el servidor para que los cambios surtan efecto.
http_skip_not_found_url_for_globs
http_wait_end_of_query
http_write_exception_in_output_format
http_zlib_compression_level
iceberg_compaction_data_cleanup
iceberg_compaction_delay_bias
iceberg_data_file_size_lower_threshold_compaction
iceberg_data_file_size_upper_threshold_compaction
iceberg_delete_data_on_drop
iceberg_expire_default_max_ref_age_ms
history.expire.max-ref-age-ms de la tabla Iceberg que utiliza expire_snapshots cuando dicha propiedad no está definida.
iceberg_expire_default_max_snapshot_age_ms
history.expire.max-snapshot-age-ms que usa expire_snapshots cuando dicha propiedad no está presente.
iceberg_expire_default_min_snapshots_to_keep
history.expire.min-snapshots-to-keep de la tabla Iceberg que expire_snapshots utiliza cuando dicha propiedad no está definida.
iceberg_insert_max_bytes_in_data_file
iceberg_insert_max_partitions
iceberg_insert_max_rows_in_data_file
iceberg_max_number_datafiles_to_compact
iceberg_metadata_compression_method
.metadata.json.
iceberg_metadata_log_level
- none - Sin registro de metadatos.
- metadata - Archivo raíz metadata.json.
- manifest_list_metadata - Todo lo anterior + metadatos de la lista de manifiestos Avro correspondiente a una instantánea.
- manifest_list_entry - Todo lo anterior + entradas de la lista de manifiestos Avro.
- manifest_file_metadata - Todo lo anterior + metadatos de los archivos de manifiesto Avro recorridos.
- manifest_file_entry - Todo lo anterior + entradas de los archivos de manifiesto Avro recorridos.
iceberg_metadata_staleness_ms
iceberg_orphan_files_older_than_seconds
iceberg_snapshot_id
iceberg_timestamp_ms
idle_connection_timeout
- Entero positivo (0: cerrar inmediatamente, tras 0 segundos).
ignore_cold_parts_seconds
ignore_data_skipping_indices
xy_idx:
ignore_drop_queries_probability
ignore_format_null_for_explain
FORMAT Null se ignorará en las consultas EXPLAIN y se usará en su lugar el formato de salida predeterminado.
Si está deshabilitado, las consultas EXPLAIN con FORMAT Null no producirán ninguna salida (comportamiento compatible con versiones anteriores).
ignore_materialized_views_with_dropped_target_table
ignore_on_cluster_for_replicated_access_entities_queries
ignore_on_cluster_for_replicated_database
ignore_on_cluster_for_replicated_named_collections_queries
ignore_on_cluster_for_replicated_udf_queries
implicit_select
1 + 2 se convierte en una consulta válida.
En clickhouse-local está habilitado de forma predeterminada y puede deshabilitarse explícitamente.
implicit_table_at_top_level
implicit_transaction
inject_random_order_for_select_without_order_by
insert_allow_materialized_columns
insert_deduplicate
INSERT (para tablas Replicated*).
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
INSERT se deduplican (consulte Replicación de datos).
De forma predeterminada, en las tablas replicadas solo se deduplican los 100 bloques más recientes de cada partición (consulte replicated_deduplication_window, replicated_deduplication_window_seconds).
Para las tablas no replicadas, consulte non_replicated_deduplication_window.
insert_deduplication_token
- Cualquier cadena
insert_deduplication_token se usa para la deduplicación solo cuando no está vacío.
En las tablas replicadas, de forma predeterminada, solo se deduplican las 100 inserciones más recientes de cada partición (consulte replicated_deduplication_window, replicated_deduplication_window_seconds).
Para las tablas no replicadas, consulte non_replicated_deduplication_window.
insert_deduplication_token funciona a nivel de partición (igual que el checksum de insert_deduplication). Varias particiones pueden tener el mismo insert_deduplication_token.insert_keeper_fault_injection_probability
insert_keeper_fault_injection_seed
insert_keeper_max_retries
- Entero positivo.
- 0 — Los reintentos están deshabilitados
20.
Los reintentos de solicitudes a Keeper se realizan tras un cierto timeout. El timeout está controlado por las siguientes configuraciones: insert_keeper_retry_initial_backoff_ms, insert_keeper_retry_max_backoff_ms.
El primer reintento se realiza tras el timeout de insert_keeper_retry_initial_backoff_ms. Los timeouts posteriores se calculan de la siguiente manera:
insert_keeper_retry_initial_backoff_ms=100, insert_keeper_retry_max_backoff_ms=10000 y insert_keeper_max_retries=8, los tiempos de espera serán 100, 200, 400, 800, 1600, 3200, 6400, 10000.
Además de la tolerancia a fallos, los reintentos también buscan ofrecer una mejor experiencia de usuario: permiten evitar que se devuelva un error durante la ejecución de INSERT si Keeper se reinicia, por ejemplo, a causa de una actualización.
insert_keeper_retry_initial_backoff_ms
- Entero positivo.
- 0 — Sin tiempo de espera
insert_keeper_retry_max_backoff_ms
- Entero positivo.
- 0 — El tiempo de espera máximo no está limitado
insert_null_as_default
NULL se produce una excepción. Si el tipo de la columna es Nullable, los valores NULL se insertan tal cual, independientemente de esta configuración.
Esta configuración se aplica a las consultas INSERT … SELECT. Ten en cuenta que las subconsultas SELECT pueden concatenarse con la cláusula UNION ALL.
Valores posibles:
- 0 — Insertar
NULLen una columna no Nullable produce una excepción. - 1 — Se inserta el valor predeterminado de la columna en lugar de
NULL.
insert_quorum
Esta configuración no se aplica a SharedMergeTree; consulta SharedMergeTree consistency para obtener más información.
- Si
insert_quorum < 2, las escrituras con quorum están deshabilitadas. - Si
insert_quorum >= 2, las escrituras con quorum están habilitadas. - Si
insert_quorum = 'auto', usa la mayoría (number_of_replicas / 2 + 1) como número de quorum.
INSERT solo se realiza correctamente cuando ClickHouse logra escribir correctamente los datos en insert_quorum réplicas dentro de insert_quorum_timeout. Si, por cualquier motivo, el número de réplicas con escrituras correctas no alcanza insert_quorum, la escritura se considera fallida y ClickHouse eliminará el bloque insertado de todas las réplicas en las que ya se hayan escrito datos.
Cuando insert_quorum_parallel está deshabilitado, todas las réplicas del quorum son consistentes; es decir, contienen datos de todas las consultas INSERT anteriores (la secuencia de INSERT se lineariza). Al leer datos escritos mediante insert_quorum y con insert_quorum_parallel deshabilitado, puedes activar la consistencia secuencial para las consultas SELECT mediante select_sequential_consistency.
ClickHouse genera una excepción:
- Si el número de réplicas disponibles en el momento de la consulta es menor que
insert_quorum. - Cuando
insert_quorum_parallelestá deshabilitado y se intenta escribir datos mientras el bloque anterior aún no se ha insertado eninsert_quorumréplicas. Esta situación puede darse si el usuario intenta realizar otra consultaINSERTen la misma tabla antes de que se complete la anterior coninsert_quorum.
insert_quorum_parallel
Esta configuración no se aplica a SharedMergeTree; consulta consistencia de SharedMergeTree para obtener más información.
INSERT con cuórum. Si está habilitado, se pueden enviar consultas INSERT adicionales mientras las consultas anteriores aún no hayan finalizado. Si está deshabilitado, se rechazarán escrituras adicionales en la misma tabla.
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
insert_quorum_timeout
insert_shard_id
0, especifica el segmento de la tabla Distributed en el que se insertarán los datos de forma síncrona.
Si el valor de insert_shard_id es incorrecto, el servidor lanzará una excepción.
Para obtener el número de segmentos en requested_cluster, puede consultar la configuración del servidor o usar esta consulta:
- 0 — Desactivado.
- Cualquier número entre
1yshards_numde la tabla Distributed correspondiente.
interactive_delay
intersect_default_mode
jemalloc_collect_profile_samples_in_trace_log
jemalloc_enable_profiler
jemalloc_profile_text_collapsed_use_count
jemalloc_profile_text_output_format
jemalloc_profile_text_symbolize_with_inline
join_algorithm
- grace_hash
grace_hash_join_initial_buckets). Esto se hace de forma que cada bucket pueda procesarse de manera independiente. Las filas del primer bucket se añaden a una tabla hash en memoria, mientras que las demás se guardan en disco. Si la tabla hash supera el límite de memoria (por ejemplo, el definido por max_bytes_in_join), se incrementa el número de buckets y se vuelve a asignar el bucket correspondiente a cada fila. Las filas que no pertenezcan al bucket actual se vacían y se reasignan.
Admite INNER/LEFT/RIGHT/FULL ALL/ANY JOIN.
- hash
OR en la sección JOIN ON.
Al usar el algoritmo hash, la parte derecha de JOIN se carga en RAM.
- parallel_hash
hash join que divide los datos en buckets y construye varias tablas hash en lugar de una, de forma concurrente, para acelerar este proceso.
Al usar el algoritmo parallel_hash, la parte derecha de JOIN se carga en RAM.
- partial_merge
RIGHT JOIN y FULL JOIN solo se admiten con strictness ALL (SEMI, ANTI, ANY y ASOF no son compatibles).
Al usar el algoritmo partial_merge, ClickHouse ordena los datos y los vuelca a disco. El algoritmo partial_merge en ClickHouse difiere ligeramente de la implementación clásica. Primero, ClickHouse ordena la tabla derecha por las claves de join en bloques y crea un índice min-max para los bloques ordenados. Luego ordena partes de la tabla izquierda por la join key y las une con la tabla derecha. El índice min-max también se usa para omitir bloques innecesarios de la tabla derecha.
- direct
direct (también conocido como nested loop) realiza una búsqueda en la tabla derecha usando como claves las filas de la tabla izquierda.
Es compatible con motores especiales como Dictionary, EmbeddedRocksDB y tablas MergeTree.
Para las tablas MergeTree, el algoritmo aplica filtros de join key directamente a la capa de almacenamiento. Esto puede ser más eficiente cuando la clave puede usar el índice de primary key de la tabla para las búsquedas; de lo contrario, realiza escaneos completos de la tabla derecha para cada bloque de la tabla izquierda.
Admite joins INNER y LEFT, y solo claves de join de igualdad de una sola columna, sin otras condiciones.
- auto
auto, primero se prueba hash join, y el algoritmo cambia dinámicamente a otro si se supera el límite de memoria.
- full_sorting_merge
- prefer_partial_merge
partial_merge join si es posible; de lo contrario, usa hash. Obsoleto, igual que partial_merge,hash.
- default (obsoleto)
direct,hash, es decir, intenta usar direct join y hash join (en este orden).
join_any_take_last_row
JOIN con strictness ANY.
Esta configuración se aplica solo a las operaciones
JOIN con tablas del motor Join.- 0 — Si la tabla de la derecha tiene más de una fila coincidente, solo se une la primera encontrada.
- 1 — Si la tabla de la derecha tiene más de una fila coincidente, solo se une la última encontrada.
join_default_strictness
ALL— Si la tabla de la derecha tiene varias filas coincidentes, ClickHouse crea un producto cartesiano a partir de las filas coincidentes. Este es el comportamiento normal deJOINen SQL estándar.ANY— Si la tabla de la derecha tiene varias filas coincidentes, solo se une la primera que se encuentra. Si la tabla de la derecha tiene solo una fila coincidente, los resultados deANYyALLson los mismos.ASOF— Para unir secuencias con una coincidencia incierta.Cadena vacía— Si no se especificaALLoANYen la consulta, ClickHouse lanza una excepción.
join_on_disk_max_files_to_merge
- Cualquier número entero positivo a partir de 2.
join_output_by_rowlist_perkey_rows_threshold
join_overflow_mode
hash y parallel_hash
de join_algorithm. Otros
algoritmos (por ejemplo, partial_merge, grace_hash, auto) gestionan estos
límites de forma diferente: volcándolos a disco, volviendo a particionar o cambiando de
estrategia; consulte
join_algorithm.
Posibles valores:
THROW— ClickHouse lanza una excepción y detiene la consulta.BREAK— ClickHouse detiene la consulta y no lanza una excepción.
THROW.
Vea también
join_runtime_bloom_filter_bytes
join_runtime_bloom_filter_hash_functions
join_runtime_bloom_filter_max_ratio_of_set_bits
join_runtime_filter_blocks_to_skip_before_reenabling
join_runtime_filter_exact_values_limit
join_runtime_filter_from_fixed_hash_table
enable_join_fixed_hash_table_conversion), usa directamente ese mapa hash como filtro de tiempo de ejecución.
join_runtime_filter_pass_ratio_threshold_for_disabling
join_runtime_filter_blocks_to_skip_before_reenabling bloques para reducir la sobrecarga.
join_to_sort_maximum_table_rows
join_to_sort_minimum_perkey_rows
join_use_nulls
- 0 — Las celdas vacías se rellenan con el valor predeterminado del tipo de campo correspondiente.
- 1 —
JOINse comporta igual que en el SQL estándar. El tipo del campo correspondiente se convierte en Nullable, y las celdas vacías se rellenan con NULL.
joined_block_split_single_row
max_joined_block_size_rows != 0 es obligatorio para que esta configuración surta efecto.
max_joined_block_size_bytes, combinado con esta configuración, ayuda a evitar un uso excesivo de memoria en casos de datos sesgados, con algunas filas grandes que tienen muchas coincidencias en la tabla derecha.
joined_subquery_requires_alias
kafka_disable_num_consumers_limit
kafka_max_wait_ms
- Entero positivo.
- 0 — Tiempo de espera infinito.
keeper_map_strict_mode
keeper_max_retries
keeper_retry_initial_backoff_ms
keeper_retry_max_backoff_ms
least_greatest_legacy_null_behavior
legacy_column_name_of_tuple_literal
lightweight_delete_mode
alter_update- ejecuta la consultaALTER UPDATE, que crea una mutación pesada.lightweight_update- ejecuta la actualización ligera si es posible; de lo contrario, ejecutaALTER UPDATE.lightweight_update_force- ejecuta la actualización ligera si es posible; de lo contrario, genera una excepción.
lightweight_deletes_sync
mutations_sync, pero solo controla la ejecución de eliminaciones ligeras.
Valores posibles:
| Valor | Descripción |
|---|---|
0 | Las mutaciones se ejecutan de forma asíncrona. |
1 | La consulta espera a que las eliminaciones ligeras finalicen en el servidor actual. |
2 | La consulta espera a que las eliminaciones ligeras finalicen en todas las réplicas (si existen). |
3 | La consulta espera solo a las réplicas activas. Solo compatible con SharedMergeTree. Para ReplicatedMergeTree, se comporta igual que mutations_sync = 2. |
1.
limit
- 0 — El número de filas no está limitado.
- Entero positivo.
load_balancing
- Random (de forma predeterminada)
- Nearest nombre de host
- Nombre de host levenshtein distance
- Nombre de host longest common prefix
- Nombre de host longest common suffix
- In order
- First or random
- Round robin
Random (por defecto)
Hostname más cercano
Distancia de Levenshtein del nombre de host
nearest_hostname, pero compara el hostname según la distancia de Levenshtein. Por ejemplo:
Prefijo común más largo del nombre de host
nearest_hostname, pero se prefiere la réplica cuyo nombre de host comparte el prefijo común más largo con el nombre de host local (cuanto más largo sea el prefijo común, mayor será la prioridad). A diferencia de nearest_hostname, que compara los caracteres distintos posición por posición, esta estrategia no se ve afectada por nombres de host cuyos segmentos numéricos tienen longitudes diferentes. Por ejemplo, para el nombre de host local sfe301:
sfe10101 porque comparte con sfe301 el prefijo común más largo (sfe, de longitud 3).
Las réplicas con la misma longitud de prefijo común se eligen aleatoriamente. En particular, cuando ninguna réplica comparte prefijo alguno con el nombre de host local (todas las longitudes de prefijo común son cero), esta estrategia se comporta exactamente igual que random.
Sufijo común más largo del nombre de host
hostname_longest_common_prefix, pero se compara el sufijo común más largo en lugar del prefijo. Esto es útil cuando la identidad del centro de datos está codificada como sufijo del nombre de host. Por ejemplo, para el nombre de host local et46gtghn.qc.localdomain:
ab999.qc.localdomain porque comparte el sufijo común más largo (.qc.localdomain, de longitud 15) con et46gtghn.qc.localdomain.
Las réplicas con la misma longitud de sufijo común se eligen al azar. En particular, cuando ninguna réplica comparte ningún sufijo con el hostname local (todas las longitudes de sufijo común son cero), esta estrategia se comporta exactamente igual que random.
In Order
First or Random
first_or_random resuelve el problema del algoritmo in_order. Con in_order, si una réplica deja de estar disponible, la siguiente recibe el doble de carga, mientras que las demás réplicas manejan la cantidad habitual de tráfico. Al usar el algoritmo first_or_random, la carga se distribuye uniformemente entre las réplicas que siguen disponibles.
Es posible definir explícitamente cuál es la primera réplica mediante la configuración load_balancing_first_offset. Esto ofrece un mayor control para redistribuir las cargas de trabajo de las consultas entre réplicas.
Round Robin
round_robin).
load_balancing_first_offset
load_marks_asynchronously
1.
local_filesystem_read_method
local_filesystem_read_prefetch
lock_acquire_timeout
DEADLOCK_AVOIDED.
Valores posibles:
- Entero positivo (en segundos).
- 0 — Sin tiempo de espera de bloqueo.
log_comment
log_comment de la tabla system.query_log y el texto del comentario para el registro del servidor.
Puede utilizarse para mejorar la legibilidad de los registros del servidor. Además, ayuda a seleccionar las consultas relacionadas con la prueba en system.query_log después de ejecutar clickhouse-test.
Valores posibles:
- Cualquier cadena de longitud no superior a max_query_size. Si se supera
max_query_size, el servidor lanza una excepción.
log_formatted_queries
formatted_query de system.query_log).
Valores posibles:
- 0 — Las consultas con formato no se registran en la tabla del sistema.
- 1 — Las consultas con formato se registran en la tabla del sistema.
log_processors_profiles
system.processors_profile_log el tiempo que el procesador dedicó a la ejecución o a esperar datos.
Véase también:
log_profile_events
log_queries
log_queries_cut_to_length
log_queries_min_query_duration_ms
long_query_time para MySQL Slow Query Log), lo que básicamente significa que no las encontrará en las siguientes tablas:
system.query_logsystem.query_thread_log
-
QUERY_FINISH -
EXCEPTION_WHILE_PROCESSING - Tipo: milisegundos
- Valor predeterminado: 0 (cualquier consulta)
log_queries_min_type
query_log.
Valores posibles:
QUERY_START(=1)QUERY_FINISH(=2)EXCEPTION_BEFORE_START(=3)EXCEPTION_WHILE_PROCESSING(=4)
query_log; por ejemplo, si solo le interesan los errores, puede usar EXCEPTION_WHILE_PROCESSING:
log_queries_probability
- 0 — Las consultas no se registran en las tablas del sistema.
- Número de coma flotante positivo en el intervalo [0..1]. Por ejemplo, si el valor de la configuración es
0.5, aproximadamente la mitad de las consultas se registran en las tablas del sistema. - 1 — Todas las consultas se registran en las tablas del sistema.
log_query_settings
log_query_threads
- 0 — Deshabilitado.
- 1 — Habilitado.
log_query_views
low_cardinality_allow_in_native_format
LowCardinality está restringido, ClickHouse server convierte las columnas LowCardinality en columnas normales para las consultas SELECT y las columnas normales en columnas LowCardinality para las consultas INSERT.
Esta configuración es necesaria principalmente para clientes de terceros que no admiten el tipo de dato LowCardinality.
Valores posibles:
- 1 — El uso de
LowCardinalityno está restringido. - 0 — El uso de
LowCardinalityestá restringido.
low_cardinality_max_dictionary_size
- Cualquier entero positivo.
low_cardinality_use_single_dictionary_for_part
low_cardinality_use_single_dictionary_for_part = 1.
Valores posibles:
- 1 — Se prohíbe crear varios diccionarios para la parte de datos.
- 0 — No se prohíbe crear varios diccionarios para la parte de datos.
low_priority_query_wait_time_ms
priority), las consultas de baja prioridad esperan a que terminen las consultas de mayor prioridad. Esta configuración especifica el tiempo de espera.
make_distributed_plan
materialize_skip_indexes_on_insert
materialize_statistics_on_insert
materialize_ttl_after_modify
materialized_views_ignore_errors
SELECT o en el sink de la tabla interna) se registran como advertencia y la instrucción INSERT se completa correctamente. Si está deshabilitada (valor predeterminado), esa excepción se propaga y la instrucción INSERT falla.
Esta configuración solo controla cómo se notifican los errores. No revierte una escritura en la tabla de origen ni garantiza si el block original ya se ha confirmado en la tabla de origen cuando se produce un error en el pipeline de una vista dependiente. Cuando está deshabilitada (valor predeterminado), INSERT falla si se produce un error en una vista; vuelva a intentarlo con deduplicación de inserciones (insert_deduplicate, deduplicate_blocks_in_dependent_materialized_views) para obtener una entrega exactly-once a la tabla de origen y a todas las vistas dependientes. Cuando está habilitada, INSERT informa que la operación se realizó correctamente pese a una entrega parcial a las vistas que fallan y a sus cadenas descendentes; úsela solo cuando las escrituras en la tabla de origen no deban quedar bloqueadas por problemas del lado de las vistas (por ejemplo, tablas system.*_log). Consulte la documentación de CREATE VIEW para ver la semántica completa.
materialized_views_squash_parallel_inserts
parallel_view_processing está habilitado, la consulta INSERT generará una parte en la tabla de destino por cada max_insert_thread.
max_analyze_depth
max_ast_depth
En este momento, no se comprueba durante el análisis sintáctico, sino solo después de analizar la consulta.
Esto significa que durante el análisis sintáctico se puede crear un árbol sintáctico demasiado profundo,
pero la consulta fallará.
max_ast_elements
Actualmente, no se comprueba durante el análisis, sino solo después de analizar la consulta.
Esto significa que durante el análisis puede crearse un árbol sintáctico demasiado profundo,
pero la consulta fallará.
max_autoincrement_series
generateSerialID.
Como cada serie representa un nodo en Keeper, se recomienda no tener más de un par de millones.
max_backup_bandwidth
max_block_size
max_block_size indica el número máximo recomendado de filas que se deben incluir en un solo bloque al cargar datos desde tablas. No siempre se cargan de la tabla bloques del tamaño de max_block_size: si ClickHouse determina que es necesario recuperar menos datos, se procesa un bloque más pequeño.
El tamaño del bloque no debe ser demasiado pequeño, para evitar costos perceptibles al procesar cada bloque. Tampoco debe ser demasiado grande, para garantizar que las consultas con una cláusula LIMIT se ejecuten rápidamente después de procesar el primer bloque. Al configurar max_block_size, el objetivo debe ser evitar consumir demasiada memoria al extraer una gran cantidad de columnas en varios hilos y preservar al menos cierta localidad de caché.
max_bytes_before_external_group_by
GROUP BY en memoria externa.
(Consulte GROUP BY en memoria externa)
Valores posibles:
- Volumen máximo de RAM (en bytes) que puede usar una sola operación GROUP BY.
0—GROUP BYen memoria externa deshabilitado.
Si el uso de memoria durante las operaciones
GROUP BY supera este umbral en bytes,
active el modo de ‘agregación externa’ (volcado de datos a disco).El valor recomendado es la mitad de la memoria disponible del sistema.max_bytes_before_external_join
join_algorithm es hash, parallel_hash, default o auto, el hash join se convertirá automáticamente en grace hash join para permitir el volcado a disco cuando los datos del lado derecho superen esta cantidad de bytes. Cuando se establece en 0 (valor predeterminado), este umbral absoluto de bytes se desactiva, pero el volcado automático aún puede producirse mediante max_bytes_ratio_before_external_join (cuyo valor predeterminado es 0.5); establezca ambos en 0 para desactivar por completo el volcado automático. Esto impide la optimización de lectura en orden mediante join.
max_bytes_before_external_sort
ORDER BY en memoria externa. Consulte Detalles de implementación de ORDER BY
Si el uso de memoria durante una operación ORDER BY supera este umbral en bytes, se activa el modo de «ordenación externa» (volcado de datos a disco).
Valores posibles:
- Volumen máximo de RAM (en bytes) que puede usar una única operación ORDER BY. El valor recomendado es la mitad de la memoria del sistema disponible
0—ORDER BYen memoria externa desactivado.
max_bytes_before_remerge_sort
max_bytes_for_lazy_final
max_bytes_in_distinct
max_bytes_in_join
join_algorithm elegido; consulte
esa configuración para conocer el comportamiento de cada algoritmo (spill, re-partition, switch, o
throw/break según join_overflow_mode).
Valores posibles:
- Entero positivo.
- 0 — El control de memoria está desactivado.
max_bytes_in_set
max_bytes_ratio_before_external_group_by
GROUP BY. Una vez alcanzado este valor,
se utiliza memoria externa para la agregación.
Por ejemplo, si se establece en 0.6, GROUP BY permitirá usar el 60% de la memoria disponible
(para servidor/usuario/fusiones) al inicio de la ejecución; a partir de ese momento,
comenzará a usar agregación externa.
max_bytes_ratio_before_external_join
JOIN. Una vez alcanzada, el hash join se convertirá en grace hash join para volcar al disco los datos del lado derecho.
Por ejemplo, si se establece en 0.6, JOIN permitirá usar el 60% de la memoria disponible (para server/user/merges) para la hash table del lado derecho al comienzo de la ejecución; después de eso, comenzará el volcado a disco.
Si se establecen tanto max_bytes_before_external_join como max_bytes_ratio_before_external_join, se utiliza el umbral resultante menor. Si la proporción es 0, solo se aplica la configuración absoluta.
Solo tiene efecto cuando join_algorithm es hash, parallel_hash, default o auto y hay una ruta de datos temporal configurada.
max_bytes_ratio_before_external_sort
ORDER BY. Una vez alcanzado este valor, se utiliza la ordenación externa.
Por ejemplo, si se establece en 0.6, ORDER BY permitirá usar el 60% de la memoria disponible (para server/user/merges) al inicio de la ejecución; después, empezará a usar la ordenación externa.
Tenga en cuenta que max_bytes_before_external_sort sigue respetándose; el volcado a disco solo se realizará si el bloque de ordenación es mayor que max_bytes_before_external_sort.
max_bytes_to_read
max_bytes_to_read_leaf
max_bytes_to_read=150 fallará, ya que en total
serán 200 bytes. Una consulta con max_bytes_to_read_leaf=150 se ejecutará correctamente, ya que
los nodos hoja leerán como máximo 100 bytes.
La restricción se comprueba para cada fragmento de datos procesado.
Esta configuración es inestable con
prefer_localhost_replica=1.max_bytes_to_sort
sort_overflow_mode, que de forma predeterminada está establecido en throw.
max_bytes_to_transfer
max_columns_to_read
0 significa que no hay límite.
max_compress_block_size
Esta es una configuración de nivel experto, y no debería cambiarla si está empezando con ClickHouse.
max_concurrent_queries_for_all_users
max_concurrent_queries_for_all_users se puede establecer en 99 para todos los usuarios, y el administrador de la base de datos puede establecerlo en 100 para sí mismo a fin de ejecutar consultas de investigación incluso cuando el servidor está sobrecargado.
Modificar la configuración para una consulta o un usuario no afecta a las demás consultas.
Valores posibles:
- Entero positivo.
- 0 — Sin límite.
1000.
max_concurrent_queries_for_user
- Entero positivo.
- 0 — Sin límite.
max_consume_snapshots
max_distributed_connections
max_distributed_depth
- Entero positivo.
- 0 — Profundidad ilimitada.
max_download_buffer_size
max_download_threads
max_estimated_execution_time
timeout_before_checking_execution_speed.
max_execution_speed
timeout_before_checking_execution_speed
vence. Si la velocidad de ejecución es demasiado alta, se reducirá.
max_execution_speed_bytes
timeout_before_checking_execution_speed
expira. Si la velocidad de ejecución es alta, se reducirá.
max_execution_time
max_execution_time puede ser algo difícil de entender.
Funciona a partir de una interpolación relativa a la velocidad actual de ejecución de la consulta
(este comportamiento está controlado por timeout_before_checking_execution_speed).
ClickHouse interrumpirá una consulta si el tiempo de ejecución estimado supera el
max_execution_time especificado. De forma predeterminada, timeout_before_checking_execution_speed
está establecido en 10 segundos. Esto significa que, tras 10 segundos de ejecución de la consulta, ClickHouse
comenzará a estimar el tiempo total de ejecución. Si, por ejemplo, max_execution_time
está establecido en 3600 segundos (1 hora), ClickHouse finalizará la consulta si el tiempo estimado
supera este límite de 3600 segundos. Si establece timeout_before_checking_execution_speed
en 0, ClickHouse usará el tiempo de reloj como base para max_execution_time.
Si el tiempo de ejecución de la consulta supera el número de segundos especificado, el comportamiento
vendrá determinado por timeout_overflow_mode, que de forma predeterminada está establecido en throw.
El tiempo de espera se comprueba y la consulta solo puede detenerse en puntos determinados durante el procesamiento de datos.
Actualmente no puede detenerse durante la fusión de estados de agregación ni durante el análisis de la consulta,
y el tiempo real de ejecución será mayor que el valor de esta configuración.
max_execution_time_leaf
max_execution_time, pero solo
se aplica a los nodos hoja en consultas distribuidas o remotas.
Por ejemplo, si queremos limitar a 10s el tiempo de ejecución en un nodo hoja, pero
no establecer ningún límite en el nodo inicial, en lugar de incluir max_execution_time en la
configuración de la subconsulta anidada:
max_execution_time_leaf como parámetro de configuración de la consulta:
max_expanded_ast_elements
max_fetch_partition_retries_count
max_final_threads
SELECT con el modificador FINAL.
Valores posibles:
- Entero positivo.
- 0 o 1 — Deshabilitado. Las consultas
SELECTse ejecutan en un solo hilo.
max_http_get_redirects
10.
max_hyperscan_regexp_length
- Entero positivo.
- 0 - La longitud no está limitada.
max_hyperscan_regexp_total_length
- Entero positivo.
- 0: la longitud no está limitada.
max_insert_block_size
max_insert_block_size_rows
El tamaño máximo de los bloques (medido en número de filas) que se forman para insertar en una tabla.
Esta configuración controla la formación de bloques en dos contextos:
-
Análisis de formatos: Cuando el servidor analiza formatos de entrada basados en filas (CSV, TSV, JSONEachRow, etc.) desde cualquier interfaz (HTTP, clickhouse-client con datos en línea, gRPC, PostgreSQL wire protocol), los bloques se emiten cuando:
- Se alcanzan tanto min_insert_block_size_rows AND min_insert_block_size_bytes, OR
- Se alcanza cualquiera de max_insert_block_size_rows OR max_insert_block_size_bytes
-
Operaciones INSERT: Durante las consultas INSERT y cuando los datos fluyen a través de vistas materializadas, el comportamiento de esta configuración depende de
use_strict_insert_block_limits:-
Cuando está habilitado: Los bloques se emiten cuando:
- Umbrales mínimos (AND): Se alcanzan tanto min_insert_block_size_rows AND min_insert_block_size_bytes
- Umbrales máximos (OR): Se alcanza cualquiera de max_insert_block_size_rows OR max_insert_block_size_bytes
- Cuando está deshabilitado: Los bloques se emiten cuando se alcanza min_insert_block_size_rows OR min_insert_block_size_bytes. Los ajustes max_insert_block_size no se aplican.
-
Cuando está habilitado: Los bloques se emiten cuando:
- Entero positivo.
max_insert_block_size_bytes
- Entero positivo.
- 0 — la configuración no interviene en la formación de bloques.
max_insert_delayed_streams_for_parallel_write
50.
max_insert_threads
INSERT SELECT.
Valores posibles:
- 0 (o 1):
INSERT SELECTno se ejecuta en paralelo. - Entero positivo. Mayor que 1.
1para nodos con 8 GiB de memoria2para nodos con 16 GiB de memoria4para nodos más grandes
INSERT SELECT en paralelo solo surte efecto si la parte SELECT se ejecuta en paralelo; consulta la configuración max_threads.
Los valores más altos darán lugar a un mayor uso de memoria.
max_insert_threads_min_free_memory_per_thread
max_threads_min_free_memory_per_thread, pero aplicado a max_insert_threads en vez de a max_threads. El valor predeterminado es mayor porque las canalizaciones de inserción suelen mantener búferes por hilo más grandes (partes de MergeTree, bloques de compresión) que las canalizaciones de lectura.
Si la cantidad de memoria libre es inferior a max_insert_threads multiplicado por este valor, max_insert_threads se reduce para ajustarse, hasta un mínimo de 1.
Establézcalo en 0 para desactivar este límite.
max_joined_block_size_bytes
max_joined_block_size_rows
max_limit_for_vector_search_queries
max_local_read_bandwidth
max_local_write_bandwidth
max_memory_usage
0 significa que no hay límite.
Esta configuración no tiene en cuenta la cantidad de memoria disponible ni la cantidad total
de memoria de la máquina. La restricción se aplica a una única consulta dentro de un
único servidor.
Puede usar SHOW PROCESSLIST para ver el consumo actual de memoria de cada consulta.
El consumo máximo de memoria se registra para cada consulta y se escribe en el log.
El uso de memoria no se rastrea por completo para los estados de las siguientes funciones de agregación
con argumentos String y Array:
minmaxanyanyLastargMinargMax
max_memory_usage_for_user
y max_server_memory_usage.
max_memory_usage_for_user
max_memory_usage_for_user = 0).
Véase también la descripción de max_memory_usage.
Por ejemplo, si desea establecer max_memory_usage_for_user en 1000 bytes para un usuario llamado clickhouse_read, puede usar la instrucción
getSetting:
max_network_bandwidth
- Entero positivo.
- 0 — El control del ancho de banda está deshabilitado.
max_network_bandwidth_for_all_users
- Entero positivo.
- 0 — El control de la velocidad de transferencia de datos está deshabilitado.
max_network_bandwidth_for_user
- Entero positivo.
- 0 — El control de la velocidad de transferencia de datos está deshabilitado.
max_network_bytes
- Entero positivo.
- 0 — El control del volumen de datos está desactivado.
max_number_of_partitions_for_independent_aggregation
max_os_cpu_wait_time_ratio_to_throw
max_parallel_replicas
- Entero positivo.
Procesamiento en paralelo con la clave SAMPLE
- La posición de la clave de muestreo dentro de la clave de partición no permite realizar lecturas por rango de forma eficiente.
- Añadir una clave de muestreo a la tabla hace que el filtrado por otras columnas sea menos eficiente.
- La clave de muestreo es una expresión cuyo cálculo resulta costoso.
- La distribución de la latencia del clúster tiene una cola larga, por lo que consultar más servidores aumenta la latencia total de la consulta.
Procesamiento paralelo con parallel_replicas_custom_key
max_parser_backtracks
max_parser_depth
- Entero positivo.
- 0 — La profundidad de recursión es ilimitada.
max_parsing_threads
max_partition_size_to_drop
0 significa que se pueden eliminar particiones sin ninguna restricción.
Valor predeterminado de Cloud: 1 TB.
Esta configuración de consulta prevalece sobre la configuración equivalente del servidor; consulte max_partition_size_to_drop
max_partitions_per_insert_block
- Entero positivo.
0— Número ilimitado de particiones.
max_partitions_per_insert_block, ClickHouse registra una advertencia o lanza una
excepción según throw_on_max_partitions_per_insert_block. Las excepciones tienen
el siguiente texto:
“Demasiadas particiones para un único bloque INSERT (partitions_count particiones; el límite es ” + toString(max_partitions) + ”).
El límite está controlado por la configuración ‘max_partitions_per_insert_block’.
Un gran número de particiones es un error conceptual frecuente. Esto provocará
un grave impacto negativo en el rendimiento, incluido un inicio lento del servidor, consultas INSERT lentas
y consultas SELECT lentas. El número total recomendado de particiones para una tabla es
inferior a 1000..10000. Tenga en cuenta que la partición no está pensada para acelerar
las consultas SELECT (la clave ORDER BY es suficiente para que las consultas por rango sean rápidas).
Las particiones están pensadas para la manipulación de datos (DROP PARTITION, etc.).”
Esta configuración es un umbral de seguridad porque usar un gran número de particiones es un error conceptual frecuente.
max_partitions_to_read
- Entero positivo
-1- ilimitado (predeterminado)
También puede especificar la configuración de MergeTree
max_partitions_to_read en la configuración de la tabla.max_parts_to_move
max_projection_rows_to_use_projection_index
max_query_size
max_query_size no puede establecerse dentro de una consulta SQL (por ejemplo, SELECT now() SETTINGS max_query_size=10000) porque ClickHouse necesita asignar un búfer para analizar la consulta, y el tamaño de este búfer lo determina la configuración max_query_size, que debe configurarse antes de ejecutar la consulta.max_rand_distribution_parameter
randChiSquared, randStudentT y randFisherF. Esto evita tiempos de cálculo excesivamente largos con valores de parámetros extremos.
max_rand_distribution_trials
randBinomial y randNegativeBinomial. Esto evita tiempos de cálculo extremadamente largos cuando el número de ensayos es elevado.
max_read_buffer_size
max_read_buffer_size_local_fs
max_read_buffer_size_remote_fs
max_recursive_cte_evaluation_depth
max_remote_read_network_bandwidth
max_remote_write_network_bandwidth
max_replica_delay_for_distributed_queries
- Entero positivo.
- 0 — No se comprueba el retraso de las réplicas.
SELECT desde una tabla distribuida que apunta a tablas replicadas.
max_result_bytes
max_result_rows
0.
Limita el número de filas del resultado. También se comprueba en las subconsultas y en servidores remotos al ejecutar partes de una consulta distribuida.
No se aplica ningún límite cuando el valor es 0.
La consulta se detendrá después de procesar un bloque de datos si se alcanza el umbral, pero
no recortará el último bloque del resultado, por lo que el tamaño del resultado puede ser
mayor que el umbral.
max_reverse_dictionary_lookup_cache_size_bytes
dictGetKeys. La caché almacena tuplas de claves serializadas por valor de atributo para evitar volver a recorrer el diccionario dentro de la misma consulta. Cuando se alcanza el límite, las entradas se expulsan mediante LRU. Establezca 0 para desactivar la caché.
max_rows_for_lazy_final
max_rows_in_distinct
max_rows_in_join
join_algorithm elegido; consulte
esa configuración para ver el comportamiento de cada algoritmo (spill, repartición, cambio o
throw/break según join_overflow_mode).
Valores posibles:
- Entero positivo.
0— Número ilimitado de filas.
max_rows_in_set
max_rows_in_set_to_optimize_join
- 0 — Desactivar.
- Cualquier entero positivo.
max_rows_to_group_by
throw, aunque también puede cambiarse
a un modo aproximado de GROUP BY.
max_rows_to_read
max_rows_to_read_leaf
max_rows_to_read=150 fallará, ya que en total habrá
200 filas. Una consulta con max_rows_to_read_leaf=150 se ejecutará correctamente, ya que los nodos hoja
leerán como máximo 100 filas.
La restricción se comprueba para cada fragmento de datos procesado.
Esta configuración es inestable con
prefer_localhost_replica=1.max_rows_to_sort
sort_overflow_mode, que de forma predeterminada está configurado como throw.
max_rows_to_transfer
max_sessions_for_user
- Entero positivo
0: número infinito de sesiones simultáneas (valor predeterminado)
max_size_to_preallocate_for_aggregation
max_size_to_preallocate_for_joins
skip_unavailable_shards está habilitado, limita el número máximo de segmentos que pueden omitirse silenciosamente.
Si el número de segmentos no disponibles supera este valor, se lanza una excepción en lugar de omitirlos silenciosamente.
Un valor de 0 significa que no hay límite (comportamiento predeterminado: pueden omitirse todos los segmentos no disponibles).
Cuando skip_unavailable_shards está habilitado, limita la proporción máxima (de 0 a 1) de segmentos que pueden omitirse silenciosamente.
Si la proporción de segmentos no disponibles respecto al total de segmentos supera este valor, se lanza una excepción en lugar de omitirlos silenciosamente.
Un valor de 0 significa que no hay límite (comportamiento predeterminado: se pueden omitir todos los segmentos no disponibles).
max_streams_for_files_processing_in_cluster_functions
max_streams_for_merge_tree_reading
max_streams_for_union_step
UNION (se aplica tanto a UNION ALL como a UNION DISTINCT, porque UNION DISTINCT se implementa mediante un paso UNION ALL seguido de un paso DISTINCT). Cuando una consulta UNION tiene muchas subconsultas, todas abren sus búferes de lectura al mismo tiempo, lo que hace que el uso de memoria sea proporcional al número de subconsultas. Esta configuración inserta procesadores Concat para estrechar la canalización, de modo que como máximo este número de flujos esté activo a la vez, lo que reduce drásticamente el pico de memoria. El límite real es el menor entre este valor y max_threads * max_streams_for_union_step_to_max_threads_ratio (si cualquiera de los dos es 0, se ignora). Cuando ambos son 0, no se aplica ningún estrechamiento. El límite tampoco se aplica cuando el plan de consulta requiere que cada flujo de salida del UNION permanezca ordenado individualmente (por ejemplo, cuando la optimización de lectura en orden se aplica en todo el UNION); en ese caso, la corrección del orden tiene prioridad y se omite el estrechamiento.
max_streams_for_union_step_to_max_threads_ratio
max_threads, determina un límite de flujos activos simultáneamente en un paso UNION (se aplica tanto a UNION ALL como a UNION DISTINCT). El límite real es el mínimo entre este valor calculado y max_streams_for_union_step (si cualquiera de los dos es 0, se ignora). Por ejemplo, con max_threads = 8 y esta proporción establecida en 1, habrá como máximo 8 flujos activos. Establézcala en 0 para desactivar este límite basado en la proporción. Al igual que max_streams_for_union_step, el límite no se aplica cuando el plan de consulta requiere que cada flujo de salida del UNION permanezca ordenado individualmente.
max_streams_multiplier_for_merge_tables
max_streams_to_max_threads_ratio
max_subquery_depth
max_table_size_to_drop
0 significa que puede eliminar todas las tablas sin ninguna restricción.
Valor predeterminado de Cloud: 1 TB.
Esta configuración de consulta anula la configuración equivalente del servidor; consulte max_table_size_to_drop
max_temporary_columns
0 significa que no hay límite.
max_temporary_data_on_disk_size_for_query
- Entero positivo.
0— ilimitado (predeterminado)
max_temporary_data_on_disk_size_for_user
- Entero positivo.
0— ilimitado (predeterminado)
max_temporary_non_const_columns
max_temporary_columns, es el número máximo de columnas temporales que deben
mantenerse simultáneamente en RAM al ejecutar una consulta, sin contar las
columnas constantes.
Las columnas constantes se generan con bastante frecuencia al ejecutar una consulta, pero requieren
prácticamente cero recursos de cómputo.
max_threads
WHERE y preagregar para GROUP BY en paralelo usando al menos ‘max_threads’ hilos, se usan ‘max_threads’.
Para las consultas que se completan rápidamente debido a un LIMIT, puede establecer un valor más bajo de ‘max_threads’.
Por ejemplo, si el número necesario de entradas se encuentra en cada bloque y max_threads = 8, se recuperan 8 bloques, aunque habría bastado con leer solo uno.
Cuanto menor sea el valor de max_threads, menos memoria se consume.
De forma predeterminada, la configuración max_threads coincide con el número de hilos de hardware (número de CPU cores) disponibles para ClickHouse.
Como caso especial, para procesadores x86 con menos de 32 CPU cores y SMT (por ejemplo, Intel HyperThreading), ClickHouse usa de forma predeterminada el número de núcleos lógicos (= 2 x número de núcleos físicos).
Sin SMT (por ejemplo, Intel HyperThreading), esto corresponde al número de CPU cores.
Para los usuarios de ClickHouse Cloud, el valor predeterminado se mostrará como auto(N), donde N coincide con el tamaño de vCPU de su servicio, por ejemplo, 2vCPU/8GiB, 4vCPU/16GiB, etc.
Consulte la pestaña de configuración en la consola de Cloud para ver una lista de todos los tamaños de servicio.
max_threads_for_indexes
max_threads_min_free_memory_per_thread
max_threads cuando el servidor está bajo presión de memoria, para evitar iniciar consultas con un alto nivel de paralelismo que probablemente alcancen el límite de memoria.
La memoria libre se calcula como max_server_memory_usage del servidor menos la memoria que actualmente registra el memory tracker global. Si esa memoria libre es inferior a max_threads multiplicado por este valor, max_threads se reduce al mayor valor de N tal que N * value <= free_memory, con un mínimo de 1.
Establézcalo en 0 para desactivar este límite.
Por ejemplo, con el valor predeterminado de 1 GiB y 32 GiB de memoria libre, max_threads queda limitado a 32; con 1 GiB de memoria libre, se reduce a 1.
Esta configuración se aplica al paralelismo del lado de lectura (SELECT, UNION, INTERSECT/EXCEPT y el lado SELECT de INSERT ... SELECT). Para el lado de escritura, consulte max_insert_threads_min_free_memory_per_thread.
max_untracked_memory
max_wkb_geometry_elements
readWKB y funciones relacionadas. Esto protege frente a asignaciones excesivas de memoria causadas por datos WKB malformados. Establézcalo en 0 para usar el límite fijo en el código (100 millones).
memory_overcommit_ratio_denominator
memory_overcommit_ratio_denominator_for_user
memory_profiler_sample_max_allocation_size
memory_profiler_sample_probability. 0 significa que está deshabilitado. Es posible que quieras establecer max_untracked_memory en 0 para que este umbral funcione como se espera.
memory_profiler_sample_min_allocation_size
memory_profiler_sample_probability. 0 significa que está deshabilitado. Puede que quieras establecer max_untracked_memory en 0 para que este umbral funcione como se espera.
memory_profiler_sample_probability
memory_profiler_sample_min_allocation_size y memory_profiler_sample_max_allocation_size). Ten en cuenta que el muestreo solo se produce cuando la cantidad de memoria no registrada supera ‘max_untracked_memory’. Puede que te convenga establecer ‘max_untracked_memory’ en 0 para obtener un muestreo aún más detallado.
memory_profiler_step
- Un número entero positivo de bytes.
- 0 para desactivar el perfilador de memoria.
memory_tracker_fault_probability
seguridad ante excepciones, lanza una excepción cada vez que se asigne memoria con la probabilidad especificada.
memory_usage_overcommit_max_wait_microseconds
merge_table_max_tables_to_look_for_schema_inference
Merge sin un esquema explícito o al usar la función de tabla merge, el esquema se infiere como la unión de no más de la cantidad especificada de tablas coincidentes.
Si el número de tablas es mayor, el esquema se inferirá a partir de las primeras tablas hasta alcanzar la cantidad especificada.
merge_tree_coarse_index_granularity
merge_tree_coarse_index_granularity subrangos y busca recursivamente las claves necesarias en ellos.
Valores posibles:
- Cualquier entero par positivo.
merge_tree_compact_parts_min_granules_to_multibuffer_read
merge_tree_determine_task_size_by_prewhere_columns
merge_tree_max_bytes_to_use_cache
merge_tree_max_bytes_to_use_cache bytes en una consulta, no utiliza la caché de bloques sin comprimir.
La caché de bloques sin comprimir almacena los datos extraídos para las consultas. ClickHouse utiliza esta caché para acelerar las respuestas a consultas pequeñas repetidas. Esta configuración evita que la caché se vea afectada por consultas que leen una gran cantidad de datos. La configuración del servidor uncompressed_cache_size define el tamaño de la caché de bloques sin comprimir.
Valores posibles:
- Cualquier entero positivo.
merge_tree_max_rows_to_use_cache
merge_tree_max_rows_to_use_cache filas en una consulta, no utiliza la caché de bloques sin comprimir.
La caché de bloques sin comprimir almacena datos extraídos durante las consultas. ClickHouse utiliza esta caché para acelerar las respuestas a consultas pequeñas repetidas. Esta configuración evita que consultas que leen grandes volúmenes de datos degraden la caché. La configuración del servidor uncompressed_cache_size define el tamaño de la caché de bloques sin comprimir.
Valores posibles:
- Cualquier entero positivo.
merge_tree_min_bytes_for_concurrent_read
merge_tree_min_bytes_for_concurrent_read, ClickHouse intenta leer este archivo de forma concurrente en varios hilos.
Valor posible:
- Entero positivo.
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
- Entero positivo.
merge_tree_min_bytes_for_seek
merge_tree_min_bytes_for_seek bytes, ClickHouse lee secuencialmente un rango del archivo que contiene ambos bloques, evitando así una operación de búsqueda adicional.
Valores posibles:
- Cualquier entero positivo.
merge_tree_min_bytes_per_task_for_remote_reading
filesystem_prefetch_min_bytes_for_single_read_task
Cantidad mínima de bytes que se deben leer por tarea.
merge_tree_min_read_task_size
merge_tree_min_rows_for_concurrent_read
merge_tree_min_rows_for_concurrent_read, ClickHouse intenta realizar una lectura concurrente de ese archivo en varios hilos.
Valores posibles:
- Entero positivo.
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
- Entero positivo.
merge_tree_min_rows_for_seek
merge_tree_min_rows_for_seek filas, ClickHouse no se desplaza por el archivo, sino que lee los datos secuencialmente.
Valores posibles:
- Cualquier entero positivo.
merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability
PartsSplitter: divide los rangos de lectura en rangos que se intersecan y rangos que no se intersecan cada vez que se lee desde MergeTree con la probabilidad especificada.
merge_tree_storage_snapshot_sleep_ms
- 0 - Sin retraso (predeterminado)
- N - Retraso en milisegundos
merge_tree_use_const_size_tasks_for_remote_reading
merge_tree_use_deserialization_prefixes_cache
merge_tree_use_prefixes_deserialization_thread_pool
max_prefixes_deserialization_thread_pool_size.
merge_tree_use_v1_object_and_dynamic_serialization
metrics_perf_events_enabled
metrics_perf_events_list
min_bytes_to_use_direct_io
min_bytes_to_use_direct_io bytes, ClickHouse lee los datos del disco de almacenamiento con la opción O_DIRECT.
Valores posibles:
- 0 — La E/S directa está deshabilitada.
- Entero positivo.
min_bytes_to_use_mmap_io
- Entero positivo.
- 0 — Los archivos grandes se leen únicamente copiando datos del kernel al espacio de usuario.
min_chunk_bytes_for_parallel_parsing
- Tipo: entero sin signo
- Valor predeterminado: 1 MiB
min_compress_block_size
min_compress_block_size. El valor predeterminado es 65,536.
El tamaño real del bloque, si los datos sin comprimir son inferiores a max_compress_block_size, no será menor que este valor ni menor que el volumen de datos correspondiente a una marca.
Veamos un ejemplo. Supongamos que index_granularity se estableció en 8192 durante la creación de la tabla.
Estamos escribiendo una columna de tipo UInt32 (4 bytes por valor). Al escribir 8192 filas, el total será de 32 KB de datos. Como min_compress_block_size = 65,536, se formará un bloque comprimido cada dos marcas.
Estamos escribiendo una columna URL de tipo String (con un tamaño medio de 60 bytes por valor). Al escribir 8192 filas, el total medio será de algo menos de 500 KB de datos. Como esto supera 65,536, se formará un bloque comprimido para cada marca. En este caso, al leer datos del disco dentro del rango de una sola marca, no habrá que descomprimir datos adicionales.
Esta es una configuración de nivel experto y no deberías cambiarla si apenas estás empezando con ClickHouse.
min_count_to_compile_aggregate_expression
- Entero positivo.
- 0 — Las expresiones de agregación idénticas siempre se compilan con JIT.
min_count_to_compile_expression
min_count_to_compile_sort_description
min_execution_speed
timeout_before_checking_execution_speed
vence. Si la velocidad de ejecución es inferior, se lanza una excepción.
min_execution_speed_bytes
timeout_before_checking_execution_speed
vence. Si la velocidad de ejecución es inferior, se produce una excepción.
min_external_table_block_size_bytes
min_external_table_block_size_rows
min_filtered_ratio_for_lazy_final
min_free_disk_bytes_to_perform_insert
min_free_disk_ratio_to_perform_insert
min_free_disk_space_for_temporary_data
min_hit_rate_to_use_consecutive_keys_optimization
min_insert_block_size_bytes
- Entero positivo.
- 0 — la configuración no interviene en la formación de bloques.
min_insert_block_size_bytes_for_materialized_views
INSERT. Los bloques más pequeños se compactan en bloques más grandes. Esta configuración se aplica solo a los bloques insertados en una vista materializada. Al ajustar esta configuración, puede controlarse la compactación de bloques al insertarlos en la vista materializada y evitar un uso excesivo de memoria.
Valores posibles:
- Cualquier entero positivo.
- 0 — Compactación deshabilitada.
min_insert_block_size_rows
-
Análisis de formatos: Cuando el servidor analiza formatos de entrada basados en filas (CSV, TSV, JSONEachRow, etc.) desde cualquier interfaz (HTTP, clickhouse-client con datos en línea, gRPC, protocolo wire de PostgreSQL), los bloques se generan cuando:
- Se alcanzan tanto min_insert_block_size_rows COMO min_insert_block_size_bytes, O
- Se alcanza max_insert_block_size_rows O max_insert_block_size_bytes
-
Operaciones INSERT: Durante las consultas INSERT y cuando los datos fluyen a través de vistas materializadas, el comportamiento de esta configuración depende de
use_strict_insert_block_limits:-
Cuando está habilitada: Los bloques se generan cuando:
- Umbrales mínimos (AND): Se alcanzan tanto min_insert_block_size_rows COMO min_insert_block_size_bytes
- Umbrales máximos (OR): Se alcanza max_insert_block_size_rows O max_insert_block_size_bytes
- Cuando está deshabilitada (valor predeterminado): Los bloques se generan cuando se alcanza min_insert_block_size_rows O min_insert_block_size_bytes. No se aplican las configuraciones max_insert_block_size.
-
Cuando está habilitada: Los bloques se generan cuando:
- Entero positivo.
- 0 — la configuración no participa en la formación de bloques.
min_insert_block_size_rows_for_materialized_views
INSERT. Los bloques más pequeños se agrupan en otros más grandes. Esta configuración se aplica solo a los bloques insertados en una vista materializada. Al ajustar esta configuración, se controla la agrupación de bloques al enviarlos a la vista materializada y se evita un uso excesivo de memoria.
Valores posibles:
- Cualquier entero positivo.
- 0 — Agrupación deshabilitada.
min_joined_block_size_bytes
min_joined_block_size_rows
min_os_cpu_wait_time_ratio_to_throw
min_outstreams_per_resize_after_split
Resize o StrictResize después de realizar la división durante la generación de la canalización. Si el número resultante de flujos es inferior a este valor, la operación de división no se realizará.
Qué es un nodo Resize
Resize es un procesador del pipeline de consultas que ajusta la cantidad de flujos de datos que circulan por el pipeline. Puede aumentar o reducir la cantidad de flujos para equilibrar la carga de trabajo entre varios hilos o procesadores. Por ejemplo, si una consulta requiere más paralelismo, el nodo Resize puede dividir un único flujo en varios flujos. A la inversa, puede fusionar varios flujos en menos flujos para consolidar el procesamiento de los datos.
El nodo Resize garantiza que los datos se distribuyan uniformemente entre los flujos, manteniendo la estructura de los bloques de datos. Esto ayuda a optimizar el uso de los recursos y a mejorar el rendimiento de las consultas.
Por qué es necesario dividir el nodo Resize
ExecutingGraph::Node::status_mutex del nodo Resize, que actúa como concentrador central, sufre una fuerte contención, especialmente en entornos con muchos núcleos, y esta contención provoca:
- Un aumento de la latencia de
ExecutingGraph::updateNode, lo que afecta directamente al rendimiento de las consultas. - Un desperdicio excesivo de ciclos de CPU por la contención del spin-lock (
native_queued_spin_lock_slowpath), lo que reduce la eficiencia. - Una menor utilización de la CPU, lo que limita el paralelismo y la capacidad de procesamiento.
Cómo se divide el nodo Resize
- Se comprueba el número de flujos de salida para garantizar que la división pueda realizarse: los flujos de salida de cada procesador resultante de la división cumplen o superan el umbral
min_outstreams_per_resize_after_split. - El nodo
Resizese divide en nodosResizemás pequeños con el mismo número de puertos, y cada uno gestiona un subconjunto de flujos de entrada y de salida. - Cada grupo se procesa de forma independiente, lo que reduce la contención por bloqueos.
División de nodos Resize con entradas/salidas arbitrarias
Resize resultantes de la división, algunas entradas se conectan a NullSource y algunas salidas a NullSink. Esto permite realizar la división sin afectar al flujo general de datos.
Propósito de la configuración
min_outstreams_per_resize_after_split garantiza que la división de los nodos Resize tenga sentido y evita crear muy pocos flujos, lo que podría provocar un procesamiento paralelo ineficiente. Al imponer un número mínimo de flujos de salida, esta configuración ayuda a mantener un equilibrio entre el paralelismo y la sobrecarga, lo que optimiza la ejecución de consultas en escenarios que implican la división y la fusión de flujos.
Desactivar el ajuste
Resize, establezca este ajuste en 0. Esto evita que los nodos Resize se dividan durante la generación del pipeline, lo que les permite conservar su estructura original sin subdividirse en nodos más pequeños.
min_table_rows_to_use_projection_index
mongodb_throw_on_unsupported_query
move_all_conditions_to_prewhere
move_primary_key_columns_to_end_of_prewhere
multiple_joins_try_to_keep_original_names
mutations_execute_nondeterministic_on_initiator
true, las funciones constantes no deterministas (p. ej., la función now()) se ejecutan en el iniciador y se reemplazan por literales en las consultas UPDATE y DELETE. Esto ayuda a mantener los datos sincronizados en las réplicas al ejecutar mutaciones con funciones constantes no deterministas. Valor predeterminado: false.
mutations_execute_subqueries_on_initiator
true, las subconsultas escalares se ejecutan en el iniciador y se sustituyen por literales en las consultas UPDATE y DELETE. Valor predeterminado: false.
mutations_max_literal_size_to_replace
UPDATE y DELETE. Solo surte efecto si al menos una de las dos opciones anteriores está habilitada. Valor predeterminado: 16384 (16 KiB).
mutations_sync
ALTER TABLE ... UPDATE|DELETE|MATERIALIZE INDEX|MATERIALIZE PROJECTION|MATERIALIZE COLUMN|MATERIALIZE STATISTICS (mutations).
Valores posibles:
| Valor | Descripción |
|---|---|
0 | Las mutaciones se ejecutan de forma asíncrona. |
1 | La consulta espera a que todas las mutaciones finalicen en el servidor actual. |
2 | La consulta espera a que todas las mutaciones finalicen en todas las réplicas (si existen). |
3 | La consulta espera solo a las réplicas activas. Solo es compatible con SharedMergeTree. En ReplicatedMergeTree, se comporta igual que mutations_sync = 2. |
mysql_datatypes_support_level
decimal, datetime64, date2Date32 o date2String. Todas las correspondencias modernas (decimal, datetime64, date2Date32) están habilitadas de forma predeterminada.
decimal: convierte los tiposNUMERICyDECIMALaDecimalcuando la precisión lo permite.datetime64: convierte los tiposDATETIMEyTIMESTAMPaDateTime64en lugar deDateTimecuando la precisión no es0.date2Date32: convierteDATEaDate32en lugar deDate. Tiene prioridad sobredate2String.date2String: convierteDATEaStringen lugar deDate.datetime64lo sobrescribe.
mysql_map_fixed_string_to_text_in_show_columns
TEXT en SHOW COLUMNS.
Solo surte efecto cuando la conexión se realiza a través del MySQL wire protocol.
- 0 - Usar
BLOB. - 1 - Usar
TEXT.
mysql_map_string_to_text_in_show_columns
TEXT en SHOW COLUMNS.
Solo surte efecto cuando la conexión se realiza a través del MySQL wire protocol.
- 0 - Usar
BLOB. - 1 - Usar
TEXT.
mysql_max_rows_to_insert
network_compression_method
NONE— sin compresión.LZ4— usa el codec LZ4.LZ4HC— usa el codec LZ4HC.ZSTD— usa el codec ZSTD.
network_zstd_compression_level
ZSTD.
Valores posibles:
- Entero positivo del 1 al 15.
normalize_function_names
number_of_mutations_to_delay
number_of_mutations_to_throw
odbc_bridge_connection_pool_size
odbc_bridge_use_connection_pooling
offset
- 0 — No se omite ninguna fila.
- Entero positivo.
opentelemetry_start_keeper_trace_probability
- ‘auto’ - Equivale al ajuste opentelemetry_start_trace_probability
- 0 — El trazado está deshabilitado
- 0 a 1 — Probabilidad (p. ej., 1.0 = siempre habilitado)
opentelemetry_start_trace_probability
- 0 — La traza para todas las consultas ejecutadas está deshabilitada (si no se proporciona un trace context principal).
- Número de coma flotante positivo en el rango [0..1]. Por ejemplo, si el valor de la configuración es
0,5, ClickHouse puede iniciar una traza, en promedio, para la mitad de las consultas. - 1 — La traza para todas las consultas ejecutadas está habilitada.
opentelemetry_trace_cpu_scheduling
opentelemetry_trace_processors
optimize_aggregation_in_order
- 0 — la optimización de
GROUP BYestá deshabilitada. - 1 — la optimización de
GROUP BYestá habilitada.
optimize_aggregators_of_group_by_keys
optimize_and_compare_chain
<, <=, >, >=, = y sus combinaciones. Por ejemplo, (a < b) AND (b < c) AND (c < 5) pasaría a ser (a < b) AND (b < c) AND (c < 5) AND (b < 5) AND (a < 5).
optimize_append_index
false.
Valores posibles:
- true, false
optimize_arithmetic_operations_in_aggregate_functions
optimize_const_name_size
- entero positivo - longitud máxima del nombre,
- 0 — siempre,
- entero negativo - nunca.
optimize_count_from_files
file/s3/url/hdfs/azureBlobStorage.
Valores posibles:
- 0 — Optimización deshabilitada.
- 1 — Optimización habilitada.
optimize_dictget_tuple_element
tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) como dictGet('dict', 'b', key) para evitar obtener atributos de diccionario innecesarios. Admite acceso posicional (.1, .2, …) y con nombre (.b), y también se aplica a dictGetOrDefault cuando el argumento por defecto es una tupla constante o una tuple(...) de constantes.
optimize_distinct_in_order
optimize_distributed_group_by_sharding_key
GROUP BY sharding_key al evitar la costosa agregación en el servidor iniciador (lo que reduce el uso de memoria de la consulta en ese servidor).
Se admiten los siguientes tipos de consultas (y todas sus combinaciones):
SELECT DISTINCT [..., ]sharding_key[, ...] FROM distSELECT ... FROM dist GROUP BY sharding_key[, ...]SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY xSELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALSSELECT ... GROUP BY sharding_key[, ...] WITH ROLLUPSELECT ... GROUP BY sharding_key[, ...] WITH CUBESELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
- 0 — Deshabilitado.
- 1 — Habilitado.
Por ahora, requiere
optimize_skip_unused_shards (esto se debe a que en algún momento podría habilitarse de forma predeterminada, y solo funcionará correctamente si los datos se insertaron a través de una tabla Distributed; es decir, si los datos se distribuyen de acuerdo con sharding_key).optimize_dry_run_check_part
OPTIMIZE ... DRY RUN valida la parte fusionada resultante con checkDataPart. Si la comprobación falla, se lanza una excepción.
optimize_empty_string_comparisons
optimize_extract_common_expressions
(A AND B) OR (A AND C) se puede reescribir como A AND (B OR C), lo que puede ayudar a aprovechar:
- índices en expresiones de filtrado simples
- la optimización de CROSS JOIN a INNER JOIN
optimize_functions_to_subcolumns
- length para leer la subcolumna size0.
- empty para leer la subcolumna size0.
- notEmpty para leer la subcolumna size0.
- isNull para leer la subcolumna null.
- isNotNull para leer la subcolumna null.
- count para leer la subcolumna null.
- mapKeys para leer la subcolumna keys.
- mapValues para leer la subcolumna values.
- 0 — Optimización deshabilitada.
- 1 — Optimización habilitada.
optimize_group_by_constant_keys
optimize_group_by_function_keys
optimize_if_chain_to_multiif
if(cond1, then1, if(cond2, ...)) por multiIf. Actualmente no resulta beneficioso para los tipos numéricos.
optimize_if_transform_strings_to_enum
optimize_injective_functions_in_group_by
optimize_injective_functions_in_limit_by
LIMIT 5 BY toString(x) pasa a ser LIMIT 5 BY x.
optimize_injective_functions_inside_uniq
optimize_inverse_dictionary_lookup
optimize_limit_by_function_keys
LIMIT 5 BY x, f(x) se convierte en LIMIT 5 BY x.
optimize_limit_by_in_order
SELECT ... LIMIT N BY <cols> cuando <cols> (en cualquier orden) forman un prefijo de la clave de ordenación de la tabla, o pasan a formarlo cuando WHERE col = const fija las columnas iniciales. Con esta opción habilitada, el origen lee los datos en orden de clave primaria, de modo que las filas con los mismos valores en las columnas BY quedan contiguas dentro de cada stream. Cuando los datos llegan en un único stream ordenado, LIMIT BY los filtra en modo streaming con memoria O(1), en lugar de construir una tabla hash para cada combinación distinta de columnas BY encontrada. Cuando los datos ordenados llegan en varios streams y los mismos valores de BY pueden aparecer en más de uno, primero cada stream se prefiltra en modo streaming hasta un máximo de LIMIT + OFFSET filas por grupo; después, los streams se combinan y un LIMIT BY final basado en hash deduplica los grupos que abarcan varios streams. Ese paso final sigue manteniendo una entrada por cada combinación distinta de columnas BY, pero solo procesa las filas prefiltradas.
optimize_min_equality_disjunction_chain_length
expr = x1 OR ... expr = xN para la optimización
optimize_min_inequality_conjunction_chain_length
expr <> x1 AND ... expr <> xN para la optimización
optimize_move_to_prewhere
- 0 — La optimización automática de
PREWHEREestá desactivada. - 1 — La optimización automática de
PREWHEREestá activada.
optimize_move_to_prewhere_if_final
- 0 — La optimización automática de
PREWHEREen las consultasSELECTcon el modificadorFINALestá deshabilitada. - 1 — La optimización automática de
PREWHEREen las consultasSELECTcon el modificadorFINALestá habilitada.
- La configuración optimize_move_to_prewhere
optimize_multiif_to_if
optimize_normalize_count_variants
optimize_on_insert
- 0 — Deshabilitado.
- 1 — Habilitado.
optimize_or_like_chain
optimize_prewhere_after_pushdown
PREWHERE después de que optimizaciones posteriores del plan de consulta hayan
añadido filtros adicionales sobre un paso de lectura de MergeTree (p. ej., pushdown de predicados a través de
JOIN, reescrituras de proyecciones). Cuando ya existe un PREWHERE, el nuevo
filtro se fusiona con él mediante AND en lugar de mantenerse como un paso de filtro independiente.
optimize_qbit_distance_function_reads
QBit por otras equivalentes que solo leen del almacenamiento las columnas necesarias para el cálculo.
optimize_read_in_order
- 0 — la optimización de
ORDER BYestá deshabilitada. - 1 — la optimización de
ORDER BYestá habilitada.
optimize_redundant_functions_in_order_by
optimize_respect_aliases
optimize_rewrite_aggregate_function_with_if
if cuando sean lógicamente equivalentes.
Por ejemplo, avg(if(cond, col, null)) se puede reescribir como avgOrNullIf(cond, col). Esto puede mejorar el rendimiento.
Solo se admite con el analizador (
enable_analyzer = 1).optimize_rewrite_array_exists_to_has
optimize_rewrite_has_to_in
has como IN cuando el primer argumento es un array constante. Por ejemplo, has([1, 2, 3], x) puede reescribirse como x IN [1, 2, 3] para mejorar el rendimiento con arrays constantes
optimize_rewrite_like_perfect_affix
col LIKE 'ClickHouse%') como funciones startsWith o endsWith (p. ej., startsWith(col, 'ClickHouse')).
optimize_rewrite_regexp_functions
optimize_rewrite_sum_if_to_count_if
optimize_skip_merged_partitions
OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1
OPTIMIZE TABLE ... FINAL reescribe esa parte aunque solo haya una única parte.
Posibles valores:
- 1 - Habilita la optimización.
- 0 - Deshabilita la optimización.
optimize_skip_unused_shards
WHERE/PREWHERE, y activa optimizaciones relacionadas para las consultas distribuidas (por ejemplo, la agregación por clave de segmentación).
Se asume que los datos se distribuyen por la clave de segmentación; de lo contrario, una consulta devuelve un resultado incorrecto.
- 0 — Deshabilitado.
- 1 — Habilitado.
optimize_skip_unused_shards_limit
optimize_skip_unused_shards si se alcanza este límite.
Demasiados valores pueden requerir un procesamiento considerable, mientras que el beneficio es dudoso, ya que, si tienes una gran cantidad de valores en IN (...), lo más probable es que la consulta se envíe a todos los segmentos de todos modos.
optimize_skip_unused_shards_nesting
optimize_skip_unused_shards (por lo tanto, sigue requiriendo optimize_skip_unused_shards); es el caso en el que una tabla Distributed consulta otra tabla Distributed.
Valores posibles:
- 0 — Deshabilitado;
optimize_skip_unused_shardsfunciona siempre. - 1 — Habilita
optimize_skip_unused_shardssolo para el primer nivel. - 2 — Habilita
optimize_skip_unused_shardshasta el segundo nivel.
optimize_skip_unused_shards_rewrite_in
IN en la consulta para los segmentos remotos a fin de excluir los valores que no pertenecen al segmento (requiere optimize_skip_unused_shards).
Valores posibles:
- 0 — Desactivado.
- 1 — Activado.
optimize_sorting_by_input_stream_properties
optimize_substitute_columns
false.
Valores posibles:
- true, false
optimize_syntax_fuse_functions
- 0 — Las funciones con el mismo argumento no se fusionan.
- 1 — Las funciones con el mismo argumento se fusionan.
optimize_throw_if_noop
OPTIMIZE finaliza correctamente aunque no haga nada. Esta configuración permite distinguir estas situaciones y obtener el motivo en un mensaje de excepción.
Valores posibles:
- 1 — El lanzamiento de una excepción está habilitado.
- 0 — El lanzamiento de una excepción está deshabilitado.
optimize_time_filter_with_preimage
toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')
optimize_trivial_approximate_count_query
- 0 — Optimización deshabilitada.
- 1 — Optimización habilitada.
optimize_trivial_count_query
SELECT count() FROM table a partir de los metadatos de MergeTree. Si necesita usar seguridad a nivel de fila, deshabilite este ajuste.
Valores posibles:
- 0 — Optimización deshabilitada.
- 1 — Optimización habilitada.
optimize_trivial_group_by_limit_query
SELECT key_expr FROM table GROUP BY key_expr LIMIT n (sin funciones de agregación en la proyección, sin cláusulas HAVING/ORDER BY/LIMIT BY/window y sin modificadores de GROUP BY) estableciendo max_rows_to_group_by = n + offset con group_by_overflow_mode = 'any'. La agregación se detiene en cuanto se obtienen n + offset claves distintas.
La optimización se omite cuando el usuario ha establecido explícitamente group_by_overflow_mode en un valor distinto de any (para preservar la semántica explícita de throw/break) y cuando el usuario ya ha establecido un max_rows_to_group_by más restrictivo (la optimización sería un no-op).
Valores posibles:
- 0 — Optimización deshabilitada.
- 1 — Optimización habilitada.
optimize_trivial_insert_select
optimize_truncate_order_by_after_group_by_keys
optimize_uniq_to_count
uniq y sus variantes (excepto uniqUpTo) como count si la subconsulta incluye distinct o una cláusula group by.
optimize_use_implicit_projections
optimize_use_projection_filtering
optimize_use_projections
allow_experimental_projection_optimization
Activa o desactiva la optimización de proyecciones al procesar consultas SELECT.
Valores posibles:
- 0 — Optimización de proyecciones desactivada.
- 1 — Optimización de proyecciones activada.
optimize_using_constraints
false.
Valores posibles:
- true, false
os_threads_nice_value_materialized_view
os_threads_nice_value_query
os_thread_priority
Valor nice de Linux para los hilos de procesamiento de consultas. Los valores más bajos implican una mayor prioridad de CPU.
Requiere la capability CAP_SYS_NICE; de lo contrario, no tiene efecto.
Valores posibles: -20 a 19.
page_cache_block_size
page_cache_inject_eviction
page_cache_lookahead_blocks
page_cache_block_size bytes.
Un valor más alto es beneficioso para consultas de alto rendimiento, mientras que las consultas puntuales de baja latencia funcionan mejor sin lectura anticipada.
page_cache_max_coalesced_bytes
readBigAt puebla la caché de páginas en espacio de usuario, los fallos de caché consecutivos se combinan en una sola lectura desde el almacenamiento subyacente. Esta configuración limita en bytes el tamaño de una lectura combinada; las secuencias de fallos más largas se dividen en varias lecturas. Limita el uso transitorio de memoria del búfer temporal durante lecturas en frío en paralelo.
Un valor más alto reduce el número de solicitudes HTTP en los escaneos en frío sobre almacenamiento de objetos; un valor más bajo reduce el pico de memoria transitoria.
paimon_target_snapshot_id
parallel_distributed_insert_select
INSERT ... SELECT en paralelo.
Si ejecutamos consultas INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b, y ambas tablas usan el mismo clúster, y ambas tablas son replicadas o no replicadas, esta consulta se procesa localmente en cada segmento.
Posibles valores:
0— Deshabilitado.1—SELECTse ejecutará en cada segmento desde la tabla subyacente del motor Distributed.2—SELECTeINSERTse ejecutarán en cada segmento desde/hacia la tabla subyacente del motor Distributed.
INSERT ... SELECT desde un origen ReplicatedMergeTree o SharedMergeTree también puede paralelizarse entre réplicas. Para habilitarlo:
parallel_distributed_insert_select = 2enable_parallel_replicas = 1
parallel_hash_join_threshold
hash y parallel_hash (solo si se dispone de una estimación del tamaño de la tabla de la derecha).
El primero se usa cuando sabemos que el tamaño de la tabla de la derecha está por debajo del umbral.
parallel_non_joined_rows_processing
parallel_hash con tablas grandes.
Cuando está deshabilitado, las filas no emparejadas se procesan con un solo hilo.
parallel_replica_offset
parallel_replicas_allow_in_with_subquery
parallel_replicas_allow_materialized_views
parallel_replicas_allow_view_over_mergetree
MergeTree (en lugar de la consulta interna de la vista), lo que mejora la paralelización entre nodos. También se aplica a las vistas UNION ALL cuyas ramas leen cada una de una tabla MergeTree distinta.
parallel_replicas_connect_timeout_ms
parallel_replicas_count
parallel_replicas_custom_key
SAMPLE: usará varias réplicas de cada segmento.
parallel_replicas_custom_key_range_lower
range divida el trabajo de manera uniforme entre las réplicas según el rango personalizado [parallel_replicas_custom_key_range_lower, INT_MAX].
Cuando se usa junto con parallel_replicas_custom_key_range_upper, permite que el filtro divida de manera uniforme el trabajo entre las réplicas para el rango [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper].
Nota: Esta configuración no hace que se filtren datos adicionales durante el procesamiento de consultas; más bien, cambia los puntos en los que el filtro de rango divide el rango [0, INT_MAX] para su procesamiento en paralelo.
parallel_replicas_custom_key_range_upper
range divida el trabajo de manera uniforme entre las réplicas en función del rango personalizado [0, parallel_replicas_custom_key_range_upper]. Un valor de 0 desactiva el límite superior y lo establece en el valor máximo de la expresión de clave personalizada.
Cuando se usa junto con parallel_replicas_custom_key_range_lower, permite que el filtro divida uniformemente el trabajo entre las réplicas para el rango [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper].
Nota: esta configuración no hará que se filtren datos adicionales durante el procesamiento de consultas; más bien, cambia los puntos en los que el filtro de rango divide el intervalo [0, INT_MAX] para el procesamiento paralelo
parallel_replicas_filter_pushdown
parallel_replicas_for_cluster_engines
parallel_replicas_for_non_replicated_merge_tree
parallel_replicas_index_analysis_only_on_coordinator
parallel_replicas_insert_select_local_pipeline
parallel_replicas_local_plan
parallel_replicas_mark_segment_size
parallel_replicas_min_number_of_rows_per_replica
parallel_replicas_mode
parallel_replicas_only_with_analyzer
parallel_replicas_prefer_local_join
parallel_replicas_prefer_local_replica
max_parallel_replicas = 1 se dirijan a otro host, lo que puede mejorar la localidad de la caché cuando muchas consultas cortas se distribuyen en un clúster.
parallel_replicas_support_projection
parallel_view_processing
parallelize_output_from_storages
parsedatetime_e_requires_space_padding
parsedatetime_parse_without_leading_zeros
partial_merge_join_left_table_buffer_bytes
partial_merge_join_rows_in_right_blocks
- Divide los datos del lado derecho de JOIN en bloques de hasta el número de filas especificado.
- Indexa cada bloque con sus valores mínimo y máximo.
- Vuelca los bloques preparados a disco si es posible.
- Cualquier entero positivo. Rango de valores recomendado: [1000, 100000].
partial_result_on_first_cancel
parts_to_delay_insert
parts_to_throw_insert
per_part_index_stats
poll_interval
polyglot_dialect
postgresql_connection_attempt_timeout
connect_timeout en la URL de conexión.
postgresql_connection_pool_auto_close_connection
postgresql_connection_pool_retries
postgresql_connection_pool_size
postgresql_connection_pool_wait_timeout
postgresql_fault_injection_probability
predicate_statistics_sample_rate
system.predicate_statistics_log. Cuando se establece en N > 0, se toma una muestra de aproximadamente 1/N de las consultas (según el ID de la consulta). 0 significa deshabilitado.
prefer_column_name_to_alias
- 0 — El nombre de la columna se sustituye por el alias.
- 1 — El nombre de la columna no se sustituye por el alias.
prefer_external_sort_block_bytes
prefer_global_in_and_join
IN/JOIN por GLOBAL IN/GLOBAL JOIN.
Valores posibles:
- 0 — Deshabilitado. Los operadores
IN/JOINno se reemplazan porGLOBAL IN/GLOBAL JOIN. - 1 — Habilitado. Los operadores
IN/JOINse reemplazan porGLOBAL IN/GLOBAL JOIN.
SET distributed_product_mode=global puede cambiar el comportamiento de las consultas para las tablas distribuidas, no resulta adecuado para las tablas locales ni para las tablas de fuentes externas. Aquí es donde entra en juego la configuración prefer_global_in_and_join.
Por ejemplo, podemos tener nodos que sirven consultas y contienen tablas locales que no son adecuadas para la distribución. Necesitamos distribuir sus datos sobre la marcha durante el procesamiento distribuido con la palabra clave GLOBAL: GLOBAL IN/GLOBAL JOIN.
Otro caso de uso de prefer_global_in_and_join es acceder a tablas creadas por motores externos. Esta configuración ayuda a reducir el número de llamadas a fuentes externas al unir esas tablas: solo una llamada por consulta.
Véase también:
- Subconsultas distribuidas para obtener más información sobre cómo usar
GLOBAL IN/GLOBAL JOIN
prefer_localhost_replica
- 1 — ClickHouse siempre envía una consulta a la réplica localhost si existe.
- 0 — ClickHouse usa la estrategia de balanceo especificada por el ajuste load_balancing.
Deshabilite este ajuste si usa max_parallel_replicas sin parallel_replicas_custom_key.
Si parallel_replicas_custom_key está establecido, deshabilite este ajuste solo si se usa en un clúster con múltiples segmentos que contienen múltiples réplicas.
Si se usa en un clúster con un solo segmento y múltiples réplicas, deshabilitar este ajuste tendrá efectos negativos.
prefer_warmed_unmerged_parts_seconds
preferred_block_size_bytes
max_block_size. Si las columnas son grandes y, con max_block_size filas, es probable que el tamaño del bloque supere la cantidad de bytes especificada, se reducirá para mejorar la localidad de caché de la CPU.
preferred_max_column_in_block_size_bytes
preferred_optimize_projection_name
- string: nombre de la proyección preferida
prefetch_buffer_size
print_pretty_type_names
DESCRIBE y en la función toTypeName().
Ejemplo:
priority
promql_database
promql_evaluation_time
evaluation_time
Establece el momento de evaluación que se usará con el dialecto promql. ‘auto’ significa la hora actual.
promql_table
push_external_roles_in_interserver_queries
query_cache_compress_entries
- 0 - Deshabilitado
- 1 - Habilitado
query_cache_for_subqueries
use_query_cache a todas las subconsultas.
Valores posibles:
- 0 - Deshabilitado
- 1 - Habilitado
query_cache_max_entries
- Entero no negativo >= 0.
query_cache_max_size_in_bytes
- Entero mayor o igual que 0.
query_cache_min_query_duration
- Entero positivo >= 0.
query_cache_min_query_runs
SELECT antes de que su resultado se almacene en la caché de consultas.
Posibles valores:
- Entero mayor o igual que 0.
query_cache_nondeterministic_function_handling
SELECT con funciones no deterministas como rand() o now().
Valores posibles:
'throw'- Lanza una excepción y no almacena en caché el resultado de la consulta.'save'- Almacena en caché el resultado de la consulta.'ignore'- No almacena en caché el resultado de la consulta y no lanza ninguna excepción.
SELECT almacenado en la query cache puede ser leído por otros usuarios.
No se recomienda habilitar esta configuración por motivos de seguridad.
Valores posibles:
- 0 - Deshabilitado
- 1 - Habilitado
query_cache_squash_partial_results
- 0 - Deshabilitado
- 1 - Habilitado
query_cache_system_table_handling
SELECT realizadas sobre tablas del sistema, es decir, tablas de las bases de datos system.* e information_schema.*.
Valores posibles:
'throw'- Lanza una excepción y no almacena el resultado de la consulta en caché.'save'- Almacena el resultado de la consulta en caché.'ignore'- No almacena el resultado de la consulta en caché ni lanza una excepción.
query_cache_tag
- Cualquier cadena
query_cache_ttl
- Número entero positivo >= 0.
query_metric_log_interval
collect_interval_milliseconds de la configuración de 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
query_plan_aggregation_in_order
query_plan_enable_optimizations es 1.
Esta es una configuración de nivel experto que solo deben usar los desarrolladores para depuración. La configuración puede cambiar en el futuro de forma incompatible con versiones anteriores o eliminarse.
- 0 - Desactivar
- 1 - Activar
query_plan_convert_any_join_to_semi_or_anti_join
query_plan_convert_join_to_in
JOIN en una subconsulta con IN si las columnas de salida están asociadas únicamente a la tabla izquierda. Puede producir resultados incorrectos con JOIN que no sean ANY (p. ej., ALL JOIN, que es el valor predeterminado).
query_plan_convert_outer_join_to_inner_join
OUTER JOIN en INNER JOIN si el filtro después de JOIN siempre descarta los valores por defecto
query_plan_direct_read_from_text_index
query_plan_display_internal_aliases
query_plan_enable_multithreading_after_window_functions
query_plan_enable_optimizations
Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Desactiva todas las optimizaciones a nivel del plan de consulta
- 1 - Activa las optimizaciones a nivel del plan de consulta (pero las optimizaciones individuales aún pueden desactivarse mediante sus configuraciones específicas)
query_plan_execute_functions_after_sorting
query_plan_enable_optimizations es 1.
Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de maneras incompatibles con versiones anteriores o eliminarse.
- 0 - Deshabilitar
- 1 - Habilitar
query_plan_filter_push_down
Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Desactivar
- 1 - Activar
query_plan_join_shard_by_pk_ranges
query_plan_join_swap_table
ALL de JOIN con la cláusula JOIN ON. Los valores posibles son:
- ‘auto’: Deja que el planificador decida qué tabla usar como tabla de construcción.
- ‘false’: No intercambiar nunca las tablas (la tabla derecha es la tabla de construcción).
- ‘true’: Intercambiar siempre las tablas (la tabla izquierda es la tabla de construcción).
query_plan_lift_up_array_join
Esta es una configuración de nivel experto que solo deben usar los desarrolladores para depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Deshabilitar
- 1 - Habilitar
query_plan_lift_up_union
query_plan_enable_optimizations es 1.
Este es un ajuste para expertos que los desarrolladores solo deben usar para depuración. El ajuste puede cambiar en el futuro de maneras incompatibles con versiones anteriores o eliminarse.
- 0 - Deshabilitar
- 1 - Habilitar
query_plan_max_limit_for_join_lazy_indexing
query_plan_max_limit_for_lazy_materialization
query_plan_max_limit_for_top_k_optimization
query_plan_max_optimizations_to_apply
Esta es una configuración de nivel experto que solo deberían usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
query_plan_max_set_size_for_projection_match
IN para el que el comparador de proyecciones calcula y compara hashes de contenido al decidir si dos conjuntos son iguales. Los conjuntos que superan este valor se consideran no coincidentes y omiten la proyección. El valor cero desactiva por completo la comparación por hash de contenido: una coincidencia de proyección nunca se logra para nodos que contienen conjuntos de cláusula IN.
Lo utiliza el comparador de proyecciones de agregación (y cualquier comparador de proyecciones futuro que necesite comparar conjuntos de cláusula IN). Calcular el hash de contenido tiene una complejidad de O(N log N) en función del número de elementos del conjunto; esta configuración limita el coste asumido durante la planificación cuando aparecen muchas cláusulas IN en la consulta o en la proyección.
query_plan_max_step_description_length
query_plan_merge_expressions
Esta es una configuración de nivel experto que los desarrolladores solo deben usar para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Deshabilitar
- 1 - Habilitar
query_plan_merge_filter_into_join_condition
JOIN y convertir CROSS JOIN en INNER.
query_plan_merge_filters
query_plan_min_columns_for_join_lazy_indexing
query_plan_optimize_join_order_algorithm
greedy- algoritmo voraz básico - funciona rápido, pero puede que no produzca el mejor orden de JOINdpsize- implementa el algoritmo DPsize, actualmente solo para inner joins - considera todos los órdenes de JOIN posibles y encuentra el más óptimo, pero puede ser lento para consultas con muchas tablas y predicados de JOINdphyp- implementa el algoritmo DPhyp (programación dinámica mediante partición de hipergrafos), actualmente solo para inner joins - explora el mismo espacio de búsqueda quedpsize, pero enumera solo pares de subgrafos conectados, lo que genera menos JOIN intermedios en grafos de JOIN dispersos, a costa de no tener en cuenta productos cartesianos Se pueden especificar varios algoritmos como una lista separada por comas, por ejemplo,dphyp,greedy. Se prueban en orden; si un algoritmo no puede manejar la consulta (por ejemplo, debido a outer joins o componentes desconectados), se utiliza el siguiente como alternativa.
query_plan_optimize_join_order_limit
query_plan_optimize_join_order_max_searched_plans
query_plan_optimize_join_order_algorithm.
Esto acota de forma determinista el tiempo de optimización (independientemente del tiempo de reloj) en grafos de join densos, como cliques o estrellas, donde el espacio de búsqueda crece exponencialmente.
Establézcalo en 0 para desactivar el límite. No tiene efecto sobre el valor predeterminado de query_plan_optimize_join_order_limit, donde la búsqueda siempre se mantiene muy por debajo de este umbral.
query_plan_optimize_join_order_randomize
query_plan_optimize_lazy_final
query_plan_optimize_lazy_materialization
query_plan_optimize_prewhere
query_plan_push_down_limit
Este es un ajuste de nivel experto que solo deberían usar los desarrolladores para depuración. El ajuste puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Deshabilitar
- 1 - Habilitar
query_plan_push_limit_by_into_sort
ORDER BY ... LIMIT BY. Cuando las columnas de LIMIT BY son un prefijo de la cláusula ORDER BY, cada flujo ordenado en paralelo aplica LIMIT BY antes de que los flujos se fusionen en uno solo, lo que reduce las filas procesadas por la fusión final y por las etapas posteriores del pipeline. Acelera las consultas en las que LIMIT BY descarta una gran proporción de filas.
Solo tiene efecto si la configuración query_plan_enable_optimizations es 1.
Posibles valores:
- 0 - Deshabilitado
- 1 - Habilitado
query_plan_read_in_order
query_plan_enable_optimizations es 1.
Este es un ajuste de nivel experto que solo deben usar los desarrolladores para tareas de depuración. El ajuste puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Desactivar
- 1 - Activar
query_plan_read_in_order_through_join
query_plan_remove_redundant_distinct
query_plan_enable_optimizations es 1.
Esta es una configuración de nivel experto que solo deberían usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Deshabilitar
- 1 - Habilitar
query_plan_remove_redundant_sorting
query_plan_enable_optimizations es 1.
Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. Esta configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Deshabilitar
- 1 - Habilitar
query_plan_remove_unused_columns
Esta es una configuración de nivel experto que solo deben usar los desarrolladores para tareas de depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Deshabilitado
- 1 - Habilitado
query_plan_reuse_storage_ordering_for_window_functions
optimize_read_in_window_order
Activa o desactiva una optimización a nivel del plan de consulta que utiliza el ordenamiento del almacenamiento al ordenar para funciones de ventana.
Solo tiene efecto si el ajuste query_plan_enable_optimizations es 1.
Este es un ajuste de nivel experto que solo deben usar los desarrolladores para depuración. El ajuste puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Desactivar
- 1 - Activar
query_plan_split_filter
Esta es una configuración de nivel experto que solo los desarrolladores deberían usar para tareas de depuración. La configuración puede cambiar en el futuro de formas no compatibles con versiones anteriores o eliminarse.
- 0 - Deshabilitar
- 1 - Habilitar
query_plan_text_index_add_hint
query_plan_top_k_through_join
ORDER BY ... LIMIT n por debajo de un join cuando la clave de ordenación solo hace referencia a columnas del lado preservado por el join (LEFT/RIGHT). Restringe cuántas filas debe producir la entrada del lado preservado antes de hacer el join.
Solo tiene efecto si la configuración query_plan_enable_optimizations es 1.
Valores posibles:
- 0 - Deshabilitado
- 1 - Habilitado
query_plan_try_use_vector_search
query_plan_enable_optimizations es 1.
Esta es una configuración de nivel experto que los desarrolladores solo deberían usar para depuración. La configuración puede cambiar en el futuro de formas incompatibles con versiones anteriores o eliminarse.
- 0 - Desactivar
- 1 - Activar
query_profiler_cpu_time_period_ns
-
Un número entero positivo de nanosegundos.
Valores recomendados:
- 10000000 (100 veces por segundo) nanosegundos o más para consultas individuales.
- 1000000000 (una vez por segundo) para el perfilado en todo el clúster.
- 0 para desactivar el temporizador.
- Tabla del sistema trace_log
query_profiler_real_time_period_ns
-
Número entero positivo, en nanosegundos.
Valores recomendados:
- 10000000 (100 veces por segundo) nanosegundos o menos para consultas individuales.
- 1000000000 (una vez por segundo) para el perfilado de todo el clúster.
- 0 para desactivar el temporizador.
- Tabla del sistema trace_log
3000000000.
queue_max_wait_ms
rabbitmq_max_wait_ms
read_backoff_max_throughput
read_backoff_min_concurrency
read_backoff_min_events
read_backoff_min_interval_between_events_ms
read_backoff_min_latency_ms
read_from_distributed_cache_if_exists_otherwise_bypass_cache
read_from_filesystem_cache_if_exists_otherwise_bypass_cache
read_from_page_cache_if_exists_otherwise_bypass_cache
read_in_order_two_level_merge_threshold
read_in_order_use_buffering
read_in_order_use_virtual_row
read_in_order_use_virtual_row_per_block
read_in_order_use_virtual_row, emite una fila virtual después de leer cada bloque (no solo al principio de cada parte).
Esto permite que MergingSortedTransform repriorice las fuentes con más frecuencia, lo que resulta útil cuando los filtros posteriores descartan muchas filas y los datos se distribuyen de forma desigual entre las partes.
Ten en cuenta que deshabilita la optimización read_in_order_use_buffering y la fusión preliminar (read_in_order_two_level_merge_threshold) para la lectura.
read_overflow_mode
read_overflow_mode_leaf
throw: lanzar una excepción (predeterminado).break: detener la ejecución de la consulta y devolver el resultado parcial.
read_priority
threadpool para el sistema de archivos remoto.
read_through_distributed_cache
readonly
receive_data_timeout_ms
receive_timeout
send_timeout para el socket en el extremo correspondiente de la conexión en el servidor.
recursive_cte_max_steps_in_type_inference
getLeastSupertype de forma iterativa a las partes no recursiva y recursiva de UNION ALL hasta alcanzar la convergencia. Establézcalo en 0 para desactivar el ensanchamiento de tipos y usar solo los tipos de la parte no recursiva.
regexp_dict_allow_hyperscan
regexp_dict_flag_case_insensitive
regexp_dict_flag_dotall
regexp_max_matches_per_row
- Entero positivo.
reject_expensive_hyperscan_regexps
remerge_sort_lowered_memory_bytes_ratio
remote_filesystem_read_method
remote_filesystem_read_prefetch
remote_fs_read_backoff_max_tries
remote_fs_read_max_backoff_ms
remote_read_min_bytes_for_seek
seek, en lugar de leer con ignore.
rename_files_after_processing
- Tipo: String
- Valor predeterminado: Cadena vacía
file. Cuando esta opción está configurada, todos los archivos leídos por la función de tabla file se renombrarán según el patrón especificado con marcadores de posición, solo si el procesamiento de los archivos se completó correctamente.
Marcadores de posición
%a— Nombre completo del archivo original (p. ej., “sample.csv”).%f— Nombre del archivo original sin la extensión (p. ej., “sample”).%e— Extensión del archivo original con el 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')
sample.csv se realiza correctamente, el archivo pasará a llamarse processed_sample_1683473210851438.csv
replace_running_query
0 (predeterminado) – Lanzar una excepción (no permitir que la consulta se ejecute si ya hay una consulta con el mismo ‘query_id’ en ejecución).
1 – Cancelar la consulta anterior y empezar a ejecutar la nueva.
Establezca este parámetro en 1 para implementar sugerencias para condiciones de segmentación. Después de introducir el siguiente carácter, si la consulta anterior aún no ha terminado, debe cancelarse.
replace_running_query_max_wait_ms
query_id cuando la configuración replace_running_query está activa.
Valores posibles:
- Entero positivo.
- 0 — Lanza una excepción y no permite ejecutar una nueva consulta si el servidor ya está ejecutando una consulta con el mismo
query_id.
replication_wait_for_inactive_replica_timeout
ALTER, OPTIMIZE o TRUNCATE.
Posibles valores:
0— No esperar.- Entero negativo — Esperar indefinidamente.
- Entero positivo — Número de segundos que se debe esperar.
restore_replace_external_dictionary_source_to_null
restore_replace_external_engines_to_null
restore_replace_external_table_functions_to_null
1.
result_overflow_mode
throw
Define qué hacer si el volumen del resultado 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.
Break interrumpe la ejecución solo a nivel de
bloque. Esto significa que la cantidad de filas devueltas será mayor que
max_result_rows, será un múltiplo de max_block_size
y dependerá de max_threads.
Ejemplo
Query
Result
rewrite_count_distinct_if_with_count_distinct_implementation
countDistcintIf mediante la configuración count_distinct_implementation.
Posibles valores:
- true — Se permite.
- false — No se permite.
rewrite_in_to_join
rows_before_aggregation
s3_allow_multipart_copy
s3_allow_parallel_part_upload
s3_check_objects_after_upload
s3_connect_timeout_ms
s3_create_new_file_on_insert
data.Parquet.gz -> data.1.Parquet.gz -> data.2.Parquet.gz, etc.
Valores posibles:
- 0 — la consulta
INSERTcrea un archivo nuevo o falla si el archivo ya existe ys3_truncate_on_insertno está establecido. - 1 — la consulta
INSERTcrea un archivo nuevo en cada inserción usando un sufijo (a partir del segundo) sis3_truncate_on_insertno está establecido.
s3_disable_checksum
s3_ignore_file_doesnt_exist
- 1 —
SELECTdevuelve un resultado vacío. - 0 —
SELECTlanza una excepción.
s3_list_object_keys_size
s3_max_connections
s3_max_get_burst
s3_max_get_rps
s3_max_get_rps
s3_max_inflight_parts_for_one_file
s3_max_part_number
s3_max_put_burst
s3_max_put_rps
s3_max_put_rps
s3_max_single_operation_copy_size
s3_max_single_part_upload_size
s3_max_single_read_retries
s3_max_unexpected_write_error_retries
s3_max_upload_part_size
s3_min_upload_part_size
s3_path_filter_limit
_path que pueden extraerse de los filtros de la consulta para utilizarlos en la iteración de archivos
en lugar del listado con glob. 0 significa deshabilitado.
s3_request_timeout_ms
s3_skip_empty_files
- 0 —
SELECTlanza una excepción si el archivo vacío no es compatible con el formato solicitado. - 1 —
SELECTdevuelve un resultado vacío para un archivo vacío.
s3_slow_all_threads_after_network_error
true, todos los hilos que ejecutan solicitudes a S3 hacia el mismo endpoint de copia de seguridad se ralentizan
después de que una sola solicitud a S3 encuentre un error de red que permita reintento, como un timeout de socket.
Cuando se establece en false, cada hilo gestiona el backoff de las solicitudes a S3 de forma independiente de los demás.
s3_strict_upload_part_size
s3_throw_on_zero_files_match
ListObjects no encuentra ningún archivo
s3_truncate_on_insert
- 0 — la consulta
INSERTcrea un archivo nuevo o falla si el archivo ya existe y no se ha establecido s3_create_new_file_on_insert. - 1 — la consulta
INSERTreemplaza el contenido existente del archivo con los datos nuevos.
s3_upload_part_size_multiply_factor
s3_upload_part_size_multiply_parts_count_threshold
s3_min_upload_part_size se multiplica por s3_upload_part_size_multiply_factor.
s3_uri_style
s3_use_adaptive_timeouts
true, en todas las solicitudes a S3 los dos primeros intentos se realizan con tiempos de espera de envío y recepción reducidos.
Cuando se establece en false, todos los intentos se realizan con los mismos tiempos de espera.
s3_validate_request_settings
- 1 — validar la configuración.
- 0 — no validar la configuración.
s3queue_default_zookeeper_path
s3queue_enable_logging_to_s3queue_log
s3queue_keeper_fault_injection_probability
s3queue_migrate_old_metadata_to_buckets
schema_inference_cache_require_modification_time_for_url
schema_inference_use_cache_for_azure
schema_inference_use_cache_for_file
schema_inference_use_cache_for_hdfs
schema_inference_use_cache_for_s3
schema_inference_use_cache_for_url
secondary_indices_enable_bulk_filtering
select_sequential_consistency
Esta configuración se comporta de forma distinta en SharedMergeTree y ReplicatedMergeTree; consulta SharedMergeTree consistency para obtener más información sobre el comportamiento de
select_sequential_consistency en SharedMergeTree.SELECT. Requiere que insert_quorum_parallel esté deshabilitado (está habilitado de forma predeterminada).
Posibles valores:
- 0 — Deshabilitado.
- 1 — Habilitado.
SELECT solo en aquellas réplicas que contienen los datos de todas las consultas INSERT anteriores ejecutadas con insert_quorum. Si el cliente apunta 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 (valor predeterminado), select_sequential_consistency no funciona. Esto se debe a que las consultas paralelas INSERT pueden escribirse en distintos conjuntos de réplicas del quórum, por lo que no hay garantía de que una sola réplica haya recibido todas las escrituras.
Vea también:
send_logs_level
send_logs_source_regexp
send_profile_events
- 0 — Deshabilitado.
- 1 — Habilitado.
send_progress_in_http_headers
X-ClickHouse-Progress en las respuestas de clickhouse-server.
Para obtener más información, lea la descripción de la interfaz HTTP.
Posibles valores:
- 0 — Deshabilitado.
- 1 — Habilitado.
send_table_structure_on_insert_with_inline_data
send_timeout
receive_timeout para el socket en el extremo correspondiente de la conexión en el servidor.
serialize_query_plan
serialize_string_in_memory_with_zero_byte
session_timezone
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
DateTime interno sin especificar explícitamente una zona horaria:
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, un DateTime se interpreta 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.
set_overflow_mode
throw: lanzar una excepción (valor predeterminado).break: detener la ejecución de la consulta y devolver el resultado parcial, como si se hubieran agotado los datos de origen.
select_sequential_consistency con SharedMergeTree. Solo disponible en ClickHouse Cloud.
Tiempo máximo de backoff, en milisegundos, para la actualización de partes al usar select_sequential_consistency con SharedMergeTree. Solo está disponible en ClickHouse Cloud.
Número máximo de reintentos para actualizar las partes al usar select_sequential_consistency con SharedMergeTree. Solo disponible en ClickHouse Cloud.
Sincroniza automáticamente el conjunto de partes de datos tras las operaciones de partición MOVE|REPLACE|ATTACH en tablas SMT. Solo en Cloud
short_circuit_function_evaluation
enable— Habilita la evaluación de cortocircuito para las funciones en las que resulta adecuada (pueden generar una excepción o tener un coste computacional elevado).force_enable— Habilita la evaluación de cortocircuito para todas las funciones.disable— Deshabilita la evaluación de cortocircuito.
short_circuit_function_evaluation_for_nulls
short_circuit_function_evaluation_for_nulls_threshold, el sistema omite evaluar la función fila por fila. En su lugar, devuelve NULL de inmediato para todas las filas, evitando cálculos innecesarios.
short_circuit_function_evaluation_for_nulls_threshold
show_processlist_include_internal
SHOW PROCESSLIST.
Los procesos internos incluyen recargas de diccionarios, recargas de vistas materializadas actualizables, consultas SELECT auxiliares ejecutadas en consultas SHOW ..., y consultas auxiliares CREATE DATABASE ... ejecutadas internamente para gestionar tablas dañadas, entre otros.
show_remote_databases_in_system_tables
show_data_lake_catalogs_in_system_tables
Permite mostrar bases de datos remotas (catálogos de lago de datos, MySQL, PostgreSQL) en las tablas del sistema.
show_table_uuid_in_table_create_query_if_not_nil
SHOW TABLE.
Valores posibles:
- 0 — La consulta se mostrará sin el UUID de la tabla.
- 1 — La consulta se mostrará con el UUID de la tabla.
single_join_prefer_left_table
skip_redundant_aliases_in_udf
- 1 — Los alias se omiten (se sustituyen) en las UDF.
- 0 — Los alias no se omiten (se sustituyen) en las UDF.
- ClickHouse no puede conectarse a la réplica por cualquier motivo. Al conectarse a una réplica, ClickHouse realiza varios intentos. Si todos ellos fallan, la réplica se considera no disponible.
-
La réplica no puede resolverse mediante DNS.
Si el hostname de la réplica no puede resolverse mediante DNS, esto puede indicar las siguientes situaciones:
- El host de la réplica no tiene un registro DNS. Esto puede ocurrir en sistemas con DNS dinámico, por ejemplo, Kubernetes, donde los nodos pueden no resolverse durante una caída, y esto no es un error.
- Error de configuración. El archivo de configuración de ClickHouse contiene un hostname incorrecto.
- 1 — omisión habilitada. Si un segmento no está disponible, ClickHouse devuelve un resultado basado en datos parciales y no informa de problemas de disponibilidad de nodos.
- 0 — omisión deshabilitada. Si un segmento no está disponible, ClickHouse lanza una excepción.
sleep_after_receiving_query_ms
sleep_in_send_data_ms
sleep_in_send_tables_status_ms
sort_overflow_mode
throw: lanzar una excepción.break: detener la ejecución de la consulta y devolver el resultado parcial.
split_intersecting_parts_ranges_into_layers_final
dividir_rangos_de_partes_en_intersectantes_y_no_intersectantes_final
splitby_max_substrings_includes_remaining_string
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.
stop_refreshable_materialized_views_on_startup
SYSTEM START VIEWS o SYSTEM START VIEW <name>. También se aplica a las vistas recién creadas. No tiene efecto sobre las vistas materializadas no actualizables.
storage_file_read_method
read, pread, mmap. El método mmap no se aplica a clickhouse-server (está destinado a clickhouse-local).
storage_system_stack_trace_pipe_read_timeout_ms
system.stack_trace. Esta configuración se utiliza con fines de prueba y no está pensada para que los usuarios la cambien.
stream_flush_interval_ms
stream_like_engine_allow_direct_select
stream_like_engine_insert_queue
stream_poll_timeout_ms
system_events_show_zero_values
system.events.
Algunos sistemas de monitorización requieren que se les envíen todos los valores de las métricas en cada punto de control, incluso cuando el valor de la métrica es cero.
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
system_metric_log_show_zero_values_in_histograms
histograms de system.metric_log.
De forma predeterminada, se omiten los histogramas cuyo count total de observaciones es cero y, dentro de cada histograma emitido, también se omiten del map histogram las entradas de bucket sin observaciones. Habilite esta opción para escribir todos los histogramas y todos los buckets independientemente del recuento; es útil para sistemas de monitorización que requieren que cada métrica aparezca en cada punto de control.
Posibles valores:
- 0 — Deshabilitado. Los histogramas con
count = 0no se emiten; los histogramas emitidos incluyen solo los buckets que recibieron al menos una observación. - 1 — Habilitado. Se escriben todos los histogramas y cada límite de bucket aparece en
histogram.
table_engine_read_through_distributed_cache
table_function_remote_max_addresses
- Un entero positivo.
tcp_keep_alive_timeout
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
temporary_files_buffer_size
temporary_files_codec
- LZ4 — Se aplica compresión LZ4.
- NONE — No se aplica compresión.
text_index_density_threshold
text_index_hint_max_selectivity
text_index_like_max_postings_to_read
LIKE del índice de texto mediante dictionary scan.
Requiere que use_text_index_like_evaluation_by_dictionary_scan esté habilitado.
text_index_like_min_pattern_length
use_text_index_like_evaluation_by_dictionary_scan esté habilitado.
text_index_posting_list_apply_mode
throw_if_no_data_to_insert
clickhouse-client o mediante la interfaz gRPC.
throw_on_error_from_cache_on_write_operations
throw_on_max_partitions_per_insert_block
max_partitions_per_insert_block.
Valores posibles:
true- Cuando un bloque de inserción alcanzamax_partitions_per_insert_block, se lanza una excepción.false- Registra una advertencia cuando se alcanzamax_partitions_per_insert_block.
throw_on_unsupported_query_inside_transaction
timeout_before_checking_execution_speed
min_execution_speed)
una vez transcurrido el tiempo especificado en segundos.
timeout_overflow_mode
max_execution_time o si el
tiempo de ejecución estimado supera max_estimated_execution_time.
Valores posibles:
throw: generar una excepción (por defecto).break: detener la ejecución de la consulta y devolver el resultado parcial, como si los datos de origen se hubieran agotado.
timeout_overflow_mode_leaf
max_execution_time_leaf.
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.
totals_auto_threshold
totals_mode = 'auto'.
Consulte la sección «modificador WITH TOTALS».
totals_mode
trace_profile_events
- 1 — Seguimiento de profile events habilitado.
- 0 — Seguimiento de profile events deshabilitado.
trace_profile_events_list
trace_profile_events está habilitada, limita los eventos rastreados a la lista especificada de nombres separados por comas.
Si trace_profile_events_list es una cadena vacía (valor predeterminado), rastrea todos los eventos de perfil.
Valor de ejemplo: ‘DiskS3ReadMicroseconds,DiskS3ReadRequestsCount,SelectQueryTimeMicroseconds,ReadBufferFromS3Bytes’
Usar esta configuración permite recopilar datos con mayor precisión para un gran número de consultas, ya que, de lo contrario, la enorme cantidad de eventos puede desbordar la cola interna del registro del sistema y hacer que se descarte una parte de ellos.
transfer_overflow_mode
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.
transform_null_in
NULL no se pueden comparar porque NULL significa que el valor no está definido. 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.
null_in:
traverse_shadow_remote_data_paths
union_default_mode
SELECT. Esta configuración solo se utiliza con UNION cuando no se especifica explícitamente UNION ALL o UNION DISTINCT.
Valores posibles:
'DISTINCT'— ClickHouse devuelve las filas resultantes de combinar consultas, eliminando las filas duplicadas.'ALL'— ClickHouse devuelve todas las filas resultantes de combinar consultas, incluidas las filas duplicadas.''— ClickHouse genera una excepción cuando se usa conUNION.
unique_key_max_encoded_size
UNIQUE KEY.
unknown_packet_in_send_data
update_parallel_mode
UPDATE concurrentes.
Valores posibles:
sync- ejecutar secuencialmente todas las consultasUPDATE.auto- ejecutar secuencialmente solo las consultasUPDATEcon dependencias entre las columnas actualizadas en una consulta y las columnas usadas en las expresiones de otra consulta.async- no sincronizar las consultasUPDATE.
update_sequential_consistency
url_base
- URL relativa a la ruta (p. ej.,
data.csv): se combina con la ruta de la URL base según la RFC 3986. Todo lo que aparece después de la última/en la ruta base se sustituye por la URL relativa, por lo que la barra diagonal final importa:https://example.com/dir/+data.csv=https://example.com/dir/data.csv, perohttps://example.com/dir+data.csv=https://example.com/data.csv. Si la base no tiene ruta (p. ej.,https://example.com), se inserta una/:https://example.com/data.csv. Los segmentos de punto (./y../) de la URL relativa se normalizan:https://example.com/dir/+../a.csv=https://example.com/a.csv. - URL relativa al host (p. ej.,
/test/data.csv): se resuelve a partir del esquema y el host de la URL base. - URL relativa al esquema (p. ej.,
//other.com/test/data.csv): se resuelve usando el esquema de la URL base. - Referencia de solo consulta (p. ej.,
?x=1): se añade a la ruta de la URL base (sustituyendo cualquier consulta o fragmento existente). - Referencia de solo fragmento (p. ej.,
#frag): se añade a la URL base, conservando cualquier query string (sustituyendo cualquier fragmento existente). - Referencia vacía: devuelve la URL base sin fragmento.
url_base es https://example.com/def/, entonces:
data.csvse resuelve enhttps://example.com/def/data.csv/test/data.csvse resuelve enhttps://example.com/test/data.csv//other.com/test/data.csvse resuelve enhttps://other.com/test/data.csv
use_async_executor_for_materialized_views
use_cache_for_count_from_files
file/s3/url/hdfs/azureBlobStorage.
Habilitado de forma predeterminada.
use_client_time_zone
use_compact_format_in_distributed_parts_names
INSERT en segundo plano (distributed_foreground_insert) en tablas con el engine Distributed.
Valores posibles:
- 0 — Usa el formato de directorio
user[:password]@host:port#default_database. - 1 — Usa el formato de directorio
[shard{shard_index}[_replica{replica_index}]].
- con
use_compact_format_in_distributed_parts_names=0, los cambios en la definición del clúster no se aplicarán alINSERTen segundo plano. - con
use_compact_format_in_distributed_parts_names=1, cambiar el orden de los nodos en la definición del clúster cambiaráshard_index/replica_index, así que tenlo en cuenta.
use_concurrency_control
concurrent_threads_soft_limit_num y concurrent_threads_soft_limit_ratio_to_cores). Si se deshabilita, permite usar un mayor número de hilos incluso si el servidor está sobrecargado (no se recomienda para un uso normal y se necesita principalmente para pruebas).
Valor predeterminado en Cloud: 0.
use_hash_table_stats_for_join_reordering
use_hedged_requests
hedged_connection_timeout
o si no se han recibido datos dentro de receive_data_timeout. La consulta usa la primera conexión que envía un paquete de progreso no vacío (o un paquete de datos, si allow_changing_replica_until_first_data_packet);
las demás conexiones se cancelan. Se admiten consultas con max_parallel_replicas > 1.
Habilitado de forma predeterminada.
Valor predeterminado de Cloud: 0.
use_hive_partitioning
/name=value/) en los motores de tabla de tipo archivo File/S3/URL/HDFS/AzureBlobStorage y permitirá usar las columnas de partición como columnas virtuales en la consulta. Estas columnas virtuales tendrán los mismos nombres que en la ruta con particiones, pero comenzarán con _.
use_iceberg_metadata_files_cache
- 0 - Deshabilitado
- 1 - Habilitado
use_iceberg_partition_pruning
use_index_for_in_with_subqueries
use_index_for_in_with_subqueries_max_values
use_join_disjunctions_push_down
JOIN conectadas por OR hacia los lados de entrada correspondientes (“pushdown parcial”).
Esto permite que los motores de almacenamiento filtren antes, lo que puede reducir la cantidad de datos leídos.
La optimización preserva la semántica y solo se aplica cuando cada rama OR de nivel superior aporta al menos un
predicado determinista para el lado de destino.
use_legacy_to_time
use_lightweight_primary_key_index_analysis
MergeTree con claves primarias largas.
Cuando está habilitado, el tiempo de ejecución del análisis del índice depende principalmente de la complejidad del filtro de la consulta (las columnas clave que realmente utiliza), y no de la longitud de la clave primaria; por tanto, ampliar la clave de ordenación apenas añade sobrecarga al análisis del índice en consultas que filtran solo por unas pocas de sus columnas.
Valores posibles:
- 0 — Deshabilitado. Todas las columnas de la clave primaria se procesan durante el análisis del índice.
- 1 — Habilitado.
use_page_cache_for_disks_without_file_cache
use_page_cache_for_local_disks
local_filesystem_read_method = 'pread' o 'read'. No desactiva la caché de páginas del SO; para ello se puede usar min_bytes_to_use_direct_io. Solo afecta a las tablas normales, no a la función de tabla file() ni al motor de tabla File().
use_page_cache_for_object_storage
use_page_cache_with_distributed_cache
use_paimon_partition_pruning
use_parquet_metadata_cache
- 0 - Deshabilitado
- 1 - Habilitado
use_partition_pruning
use_partition_key
Usa la clave de partición para la poda de particiones durante la ejecución de consultas en tablas MergeTree.
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
use_primary_key
- 0 — Deshabilitado.
- 1 — Habilitado.
use_query_cache
SELECT pueden utilizar la caché de consultas. Los parámetros enable_reads_from_query_cache
y enable_writes_to_query_cache controlan con mayor detalle cómo se utiliza la caché.
Valores posibles:
- 0 - Deshabilitado
- 1 - Habilitado
use_query_condition_cache
WHERE
y reutiliza esta información como un índice temporal para las consultas posteriores.
Valores posibles:
- 0 - Deshabilitado
- 1 - Habilitado
use_reader_executor
ReaderExecutor en lugar de la matrioska heredada de búferes de lectura. Recurre a la ruta heredada para las configuraciones que el ejecutor aún no admite.
use_roaring_bitmap_iceberg_positional_deletes
use_skip_indexes
- 0 — Deshabilitado.
- 1 — Habilitado.
use_skip_indexes_for_disjunctions
- 0 — Deshabilitado.
- 1 — Habilitado.
use_skip_indexes_for_top_k
ORDER BY <column> LIMIT n, el optimizador intentará usar el índice MinMax para omitir gránulos que no sean relevantes para el resultado final. Esto puede reducir la latencia de la consulta.
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
use_skip_indexes_if_final
- 0 — Deshabilitado.
- 1 — Habilitado.
use_skip_indexes_if_final_exact_mode
- 0 — Deshabilitado.
- 1 — Habilitado.
use_skip_indexes_on_data_read
- 0 — Deshabilitado.
- 1 — Habilitado.
use_statistics
use_statistics_cache
use_statistics_for_part_pruning
- 0 — Deshabilitado.
- 1 — Habilitado.
use_strict_insert_block_limits
- Umbrales mínimos (AND): Se alcanzan tanto min_insert_block_size_rows como min_insert_block_size_bytes.
- Umbrales máximos (OR): Se alcanza max_insert_block_size_rows o max_insert_block_size_bytes.
- Umbrales mínimos (OR): Se alcanza min_insert_block_size_rows o min_insert_block_size_bytes.
use_structure_from_insertion_table_in_table_functions
use_text_index_header_cache
use_text_index_like_evaluation_by_dictionary_scan
use_text_index_postings_cache
use_text_index_tokens_cache
use_top_k_dynamic_filtering
ORDER BY <column> LIMIT n.
Cuando está habilitada, el ejecutor de la consulta intentará omitir gránulos y filas que no formarán parte de las top N filas finales del conjunto de resultados. Esta optimización es dinámica por naturaleza, y las mejoras de latencia dependen de la distribución de los datos y de la presencia de otros predicados en la consulta.
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
use_top_k_dynamic_filtering_for_variable_length_types
use_top_k_dynamic_filtering se aplique cuando la columna de ordenación tiene un tipo de datos de longitud variable (p. ej., String, Array, Map, Tuple que contiene elementos de longitud variable).
Para estos tipos, la comparación del umbral por fila que realiza el filtro dinámico puede costar más de lo que ahorra cuando predomina el mínimo lexicográfico de la columna (p. ej., cadenas mayoritariamente vacías) y se pueden omitir pocos gránulos. En ese caso, el filtro dinámico empeora la latencia de la consulta en lugar de mejorarla.
Cuando este ajuste es 0, el filtrado dinámico se restringe a columnas cuyos valores tienen un tamaño máximo fijo en memoria (números, Date, DateTime, FixedString, Enum, Nullable de esos tipos, Tuple de esos tipos). Cuando se establece en 1, el filtrado dinámico también se aplica a tipos de longitud variable.
Valores posibles:
- 0 — Desactivado.
- 1 — Activado.
use_uncompressed_cache
use_variant_as_common_type
Variant como tipo de resultado de las funciones if/multiIf/array/map cuando no existe un tipo común para los tipos de argumento.
Ejemplo:
use_variant_default_implementation_for_comparisons
use_with_fill_by_sorting_prefix
validate_enum_literals_in_operators
IN, NOT IN, ==, != con respecto al tipo enum y lanza una excepción si el literal no es un valor válido del enum.
validate_mutation_query
validate_polygons
- 0 — El lanzamiento de excepciones está deshabilitado.
pointInPolygonacepta polígonos no válidos y devuelve resultados posiblemente incorrectos para ellos. - 1 — El lanzamiento de excepciones está habilitado.
variant_throw_on_type_mismatch
true(predeterminado) — lanzar una excepción.false— devolverNULLpara esas filas.
vector_search_filter_strategy
- ‘auto’ - Posfiltrado (la semántica exacta puede cambiar en el futuro).
- ‘postfilter’ - Usa el índice de similitud vectorial para identificar los vecinos más cercanos y luego aplica otros filtros.
- ‘prefilter’ - Evalúa primero otros filtros y luego realiza una búsqueda por fuerza bruta para identificar a los vecinos.
vector_search_index_fetch_multiplier
vector_search_postfilter_multiplier
Multiplica por este número la cantidad de vecinos más cercanos recuperados del índice de similitud vectorial. Solo se aplica al posfiltrado con otros predicados o si la configuración ‘vector_search_with_rescoring = 1’.
vector_search_with_rescoring
wait_changes_become_visible_after_commit_mode
wait_for_async_insert
wait_for_async_insert_timeout
wait_for_part_commit_in_dependent_materialized_views
JOIN vea la parte escrita por ese sink.
La garantía se aplica por instancia de sink: es posible que las partes escritas por otros hilos de sink del mismo INSERT aún no sean visibles. Esta configuración no proporciona orden de commit entre hilos.
No tiene efecto en las inserciones en tablas sin vistas materializadas dependientes.
wait_for_window_view_fire_signal_timeout
webassembly_udf_max_fuel
webassembly_udf_max_fuel = 1 corresponde a aproximadamente 1024 unidades de fuel. Establezca 0 para no tener ningún límite finito. Se aplica solo a las funciones cuya configuración por función webassembly_udf_enable_fuel es true, que es el valor predeterminado.