adaptive_aggregator_freeze_threshold
enable_adaptive_aggregator). Los valores menores mantienen las tablas congeladas en caché, mientras que los valores mayores permiten que absorban más claves frecuentes. El valor 0 congela las tablas en la primera oportunidad, lo que hace que el algoritmo se comporte de forma similar al agregador con segmentación (enable_sharding_aggregator): cada clave se enruta según su hash y se agrega en un único propietario, pero se difiere a la fase de fusión en lugar de intercambiarse entre hilos durante el escaneo.
add_http_cors_header
analyze_index_with_space_filling_curves
ORDER BY mortonEncode(x, y) o ORDER BY hilbertEncode(x, y), y la consulta tiene condiciones sobre sus argumentos, por ejemplo, x >= 10 AND x <= 20 AND y >= 20 AND y <= 30, use la curva de llenado de espacio para el análisis de índices.
analyzer_inline_views
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 de asociación de claves entre tablas de muchas a una, de izquierda a derecha. - Los resultados de las operaciones
ANY INNER JOINcontienen todas las filas de la tabla izquierda, como ocurre con las operacionesSEMI LEFT JOIN.
- Los resultados de las operaciones
t1 ANY LEFT JOIN t2yt2 ANY RIGHT JOIN t1son iguales porque ClickHouse usa una lógica que proporciona una asociación de claves de una a muchas en las operacionesANY RIGHT JOIN. - Los resultados de las operaciones
ANY INNER JOINcontienen una fila por clave de las tablas izquierda y derecha.
- 0 — El comportamiento heredado está deshabilitado.
- 1 — El comportamiento heredado está habilitado.
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)
backup_slow_all_threads_after_retryable_s3_error
true, todos los hilos que ejecutan solicitudes S3 al mismo endpoint de copia de seguridad se ralentizan
después de que una sola solicitud S3 encuentre un error de S3 reintentable, como ‘Slow Down’.
Cuando se establece en false, cada hilo gestiona el backoff de las solicitudes S3 de forma independiente de los demás.
cache_warmer_threads
calculate_text_stack_trace
cancel_http_readonly_queries_on_client_close
SELECT) cuando un cliente cierra la conexión sin esperar la respuesta.
Valor predeterminado en Cloud: 1.
checksum_on_read
compression
compression=gz. Tenga en cuenta que es independiente de Content-Encoding (compresión HTTP) y del parámetro heredado compress (compresión nativa de ClickHouse). Especificar una extensión de archivo comprimido en la ruta de la URL tiene el mismo efecto.
Esta configuración de la interfaz HTTP da forma a la respuesta: se procesa antes de ejecutar la consulta (los búferes de respuesta se configuran de antemano), por lo que debe proporcionarse mediante el parámetro URL de HTTP, la extensión de archivo de la ruta de la URL o un perfil de usuario, y no mediante una cláusula SETTINGS dentro de la consulta (donde no tiene efecto y se rechaza).
connection_pool_max_wait_ms
- Entero positivo.
- 0 — tiempo de espera infinito.
connections_with_failover_max_tries
convert_query_to_cnf
true, una consulta SELECT se convierte a la forma normal conjuntiva (CNF). En algunos casos, reescribir una consulta en CNF puede ejecutarse más rápido (consulta este Github issue para obtener una explicación).
Por ejemplo, observa cómo la siguiente consulta SELECT no se modifica (este es el comportamiento predeterminado):
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.
count_matches_stop_at_empty_match
countMatches.
cross_to_inner_join_rewrite
data_type_default_nullable
- 1 — Los tipos de datos en las definiciones de columnas se establecen como
Nullablede forma predeterminada. - 0 — Los tipos de datos en las definiciones de columnas se establecen como no
Nullablede forma predeterminada.
decimal_check_overflow
deduplicate_blocks_in_dependent_materialized_views
- 0 — Deshabilitado.
- 1 — Habilitado.
defer_partition_pruning_after_final
FINAL sobre tablas cuyas
columnas de la clave de partición no forman parte de la clave de ordenación. Este es el comportamiento seguro desde el punto de vista de la corrección
introducido en la 26.3: FINAL puede necesitar deduplicar filas que comparten una clave primaria pero están
en distintas particiones, y la poda de particiones excluiría silenciosamente esas filas del
conjunto de entrada para la deduplicación.
Cuando está deshabilitada, la poda de particiones se aplica incluso con FINAL, restaurando el comportamiento
anterior a la 26.3. Esto puede ser bastante más rápido para consultas con predicados WHERE sobre la
columna de partición, pero solo es correcto cuando no pueden existir filas con la misma clave primaria
en distintas particiones; por ejemplo, en tablas de registro de eventos cuya columna de partición se establece en el momento de la inserción
y nunca cambia.
Esta configuración solo afecta a las tablas particionadas cuyas columnas de la clave de partición no están incluidas
en la clave de ordenación; en las demás tablas, la poda de particiones siempre se aplica.
Posibles valores:
- 0 — Aplicar la poda de particiones antes de
FINAL(comportamiento anterior a la 26.3, más rápido pero inseguro en el caso general). - 1 — Aplazar la poda de particiones hasta después de
FINAL(valor predeterminado, seguro desde el punto de vista de la corrección).
describe_compact_output
dialect
clickhouse(predeterminado) — SQL estándar de ClickHouse.kusto— Kusto Query Language. Requiere la configuración experimentalallow_experimental_kusto_dialect.prql— PRQL. Requiere la configuración experimentalallow_experimental_prql_dialect.polyglot— transpila SQL de otros dialectos (MySQL, PostgreSQL, etc.) a ClickHouse SQL. Requiere la configuración experimentalallow_experimental_polyglot_dialect.promql— PromQL (Prometheus Query Language) evaluado sobre una tabla TimeSeries, configurada mediante las opcionespromql_database,promql_tableypromql_evaluation_time.clickhouse_json— en lugar de texto SQL, la consulta se interpreta como un AST JSON (la salida deparseQueryToJSON). La consultaSETse sigue reconociendo en formato sin procesar para poder volver a cambiar el dialecto. Requiere la configuración experimentalenable_json_ast_dialect.
discard_query_data
distinct_overflow_mode
throw: lanzar una excepción (predeterminado).break: detener la ejecución de la consulta y devolver el resultado parcial, como si los datos de origen se hubieran agotado.
do_not_merge_across_partitions_select_final
dynamic_throw_on_type_mismatch
true(predeterminado) — lanzar una excepción.false— devolverNULLpara esas filas.
enforce_strict_identifier_format
engine_url_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 cuando el archivo está vacío.
exact_rows_before_limit
except_default_mode
exclude_materialize_skip_indexes_on_insert
execute_exists_as_scalar_subquery
0.
explain_query_plan_default
EXPLAIN PLAN.
Posibles valores:
pretty(predeterminado desde la versión 26.7) —actions,compactyprettytomantruepor defecto, lo que genera un plan compacto, Pretty y anotado con acciones.legacy— salida anterior a la versión 26.7.
actions, compact o pretty en la sentencia EXPLAIN (por ejemplo, EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...), esta configuración siempre se sobrescribe.
EXPLAIN PLAN con json = 1 o distributed = 1 mantiene los valores predeterminados de legacy (anteriores a la versión 26.7) independientemente de esta configuración, a menos que actions, compact o pretty se establezcan explícitamente. La salida Pretty no puede representar resultados JSON ni planes distribuidos por segmento, por lo que esos modos solo se muestran correctamente en el formato legacy.
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 desde una tabla distribuida que apunta a tablas replicadas.
De forma predeterminada, 1 (habilitado).
file_like_engine_default_partition_strategy
{_partition_id}: dicha ruta solo es compatible con la estrategia wildcard, por lo que siempre implica wildcard.
filesystem_prefetches_limit
filesystem_prefetches_max_memory_usage si desea limitar el número de prefetches
filter
WHERE a la consulta envolviéndola en una subconsulta. Varios filtros se combinan con AND. La interfaz HTTP permite varios parámetros URL filter, que se combinan con AND, en orden, y con el valor de esta configuración.
Esta es una configuración para la construcción de consultas que el motor aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona con todos los protocolos: puede proporcionarse mediante el parámetro URL HTTP, una cláusula SETTINGS dentro de la consulta o un perfil de usuario.
Afecta a las consultas SELECT / UNION que producen resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia instrucción INSERT / CREATE, no se propaga al SELECT de origen; se aplica la misma regla de no propagación que a cualquier otra configuración.
filter no es un mecanismo de control de acceso y no debe utilizarse como sustituto de las políticas de seguridad a nivel de fila ni de la configuración additional_table_filters. Solo añade un WHERE a la subconsulta envolvente, por lo que los datos subyacentes se siguen leyendo y procesando antes de aplicar el filtro; una consulta puede observar las filas excluidas por el filtro durante el procesamiento (por ejemplo, con throwIf para filtrar información a través de la ruta de error). Use seguridad a nivel de fila o additional_table_filters cuando el objetivo sea restringir las filas a las que puede acceder un usuario.final
- 0 - deshabilitado
- 1 - habilitado
finalize_projection_parts_synchronously
flatten_nested
- 1 — La columna Nested se aplana en arrays separados.
- 0 — La columna Nested permanece como un único array de tuplas.
0, es posible usar un nivel arbitrario de anidamiento.
Ejemplos
Consulta:
format
FORMAT de la consulta, tanto de entrada como de salida. Tiene prioridad sobre el formato especificado en la consulta y en la extensión de archivo. Las configuraciones más específicas input_format y output_format tienen prioridad sobre esta configuración genérica format para sus respectivas direcciones.
framing_output_format
data, totals y extremes es exactamente lo que habría producido el formato de salida sin enmarcado. Los paquetes auxiliares (progreso, registros, eventos de perfil y excepciones) se representan como JSON.
Hay una excepción deliberada: un formato de salida que omite los totales y extremos en su salida sin enmarcado porque no puede representarlos (la familia JSONCompactEachRow) sí los emite con enmarcado, en los paquetes totals y extremes. Para dichos formatos, la concatenación de los paquetes data por sí sola es exactamente la salida sin enmarcado, y los paquetes totals y extremes contienen filas adicionales que la salida sin enmarcado no incluye.
Los registros del servidor se incluyen si se ha configurado send_logs_level, y los eventos de perfil se incluyen si send_profile_events está habilitada (se envían como máximo una vez cada interactive_delay microsegundos, y los paquetes de progreso también se limitan mediante interactive_delay).
Un flujo correcto termina con un paquete progress final que contiene los contadores finales (result_rows, result_bytes, memory_usage), escrito después de los paquetes finales log y profile_events emitidos al registrar la finalización de la consulta, al igual que el paquete de progreso final del protocolo nativo. En caso de error, el paquete exception es el último paquete, salvo en un caso: cuando el error ocurre después de que parte del flujo de paquetes ya se haya incluido en la respuesta y ya no pueda descartarse (si la escritura de un paquete falla a mitad de camino, falla la entrega del propio paquete exception, o el flujo de respuesta falla durante el vaciado o el cierre), el enmarcado falla de forma segura: el flujo termina sin un paquete exception final, y el cliente recibe una respuesta truncada y una conexión HTTP interrumpida en lugar de un paquete final que pueda analizarse. Nunca se añade nada después de un flujo parcial de paquetes, por lo que nunca se mezcla con él un cuerpo de error HTTP sin formato.
Todo lo que una consulta habilita únicamente mediante su propia cláusula SETTINGS —un formato de enmarcado, send_logs_level o send_profile_events— no se conoce hasta que se ha analizado la consulta, por lo que los registros y eventos de perfil correspondientes solo se capturan a partir de la ejecución de la consulta. Los registros y eventos de perfil de las fases de análisis sintáctico, planificación y análisis solo se capturan cuando la configuración procede de la sesión o de la URL. Por ejemplo, una consulta que falla durante el análisis (como una referencia a una tabla desconocida) y habilita send_logs_level solo en su cláusula SETTINGS entrega únicamente el paquete exception, no los registros de la fase de análisis; configure send_logs_level en la sesión o en la URL para capturarlos.
La misma salvedad sobre el descubrimiento tardío se aplica a send_logs_source_regexp: la cola de registros filtra las entradas por origen en el momento en que se captura cada una, por lo que una expresión regular establecida solo en la propia cláusula SETTINGS de la consulta surte efecto a partir de la ejecución de la consulta. Los paquetes log de las fases de análisis sintáctico, planificación y análisis se filtran según el valor de la configuración de la sesión o de la URL (no se filtran si no está configurado allí), por lo que pueden incluir orígenes que no coincidan con la expresión regular de nivel de consulta; a la inversa, las entradas descartadas por una expresión regular más restrictiva de la sesión o la URL no se recuperan mediante otra más amplia de nivel de consulta. Configure send_logs_source_regexp en la sesión o en la URL para filtrar todo el ciclo de vida de la consulta.
Actualmente, la configuración se aplica al protocolo HTTP y se ignora en otras interfaces.
Valores posibles:
None- enruta de forma transparente todo lo aplicable (datos, totales, extremos, progreso) al formato de salida e ignora todo lo que no lo es (métricas, registros), por lo que todo funciona como de forma predeterminada.EventStream- encapsula los paquetes como eventos HTTP enviados por el servidor (text/event-stream). Cada paquete se envía como un evento con el nombre correspondiente:data,totals,extremes,progress,log,profile_events,exception. El progreso y otros paquetes auxiliares se envían como JSON. Dado que los eventos enviados por el servidor son un protocolo de texto que trata los saltos de línea (incluidos los retornos de carro,\r) como delimitadores, un bloque de datos formateados se codifica en Base64 en un único campodatadel evento, que se decodifica en la carga útil completamente formateada con todos sus saltos de línea;Content-Typeincluye un parámetropayload=base64para indicarlo. Cualquier formato de salida, ya sea de texto o binario, puede transportarse de esta forma con exactitud de bytes.JSONEachPacketBase64- cada paquete es un objeto JSON en una línea independiente y los datos formateados se codifican en Base64, por ejemplo:{"packet":"data","data":"eyJ4IjoxfQo="}. Adecuado para formatos de salida binarios.JSONEachPacketString- cada paquete es un objeto JSON en una línea independiente y los datos formateados se incluyen en una cadena, por ejemplo:{"packet":"data","data":"{\"x\":1}\n"}.
JSONEachPacketString coloca los bytes de la carga útil en una cadena JSON sin validarlos ni recodificarlos. Las columnas String y FixedString pueden contener bytes arbitrarios, por lo que los formatos de salida de texto (como JSONEachRow, TSV o CSV) pueden emitir UTF-8 no válido para dichos valores, igual que el propio JSONEachRow de ClickHouse con el valor predeterminado output_format_json_validate_utf8 = 0; por tanto, no se garantiza que el flujo NDJSON resultante sea UTF-8 válido. Use JSONEachPacketBase64 para transportar bytes arbitrarios con exactitud de bytes.
Ejemplo:
fsync_metadata
.sql. Está habilitado de forma predeterminada.
Puede tener sentido deshabilitarlo si el server tiene millones de tablas pequeñas que se crean y eliminan constantemente.
functions_h3_default_if_invalid
geo_distance_returns_float64_on_float64_arguments
geoDistance, greatCircleDistance y greatCircleAngle son Float64, estas devuelven Float64 y emplean doble precisión en los cálculos internos. En versiones anteriores de ClickHouse, las funciones siempre devolvían Float32.
geotoh3_argument_order
glob_expansion_max_elements
h3togeo_lon_lat_result_order
handshake_timeout_ms
hedged_connection_timeout_ms
highlight_max_matches_per_row
- Entero positivo.
hnsw_candidate_list_size_for_search
hsts_max_age
idle_connection_timeout
- Entero positivo (0: cerrar inmediatamente, tras 0 segundos).
inject_random_order_for_select_without_order_by
input_format
interactive_delay
intersect_default_mode
least_greatest_legacy_null_behavior
legacy_column_name_of_tuple_literal
límite
LIMIT y acepta todo lo que admite LIMIT, incluidos los valores negativos (cuenta desde el final del resultado) y las fracciones en (0, 1) (interpretadas como una proporción del resultado).
Valores posibles:
- 0 — El número de filas no está limitado.
- Entero positivo — número exacto de filas.
- Entero negativo — devuelve las últimas N filas.
- Un número real en el intervalo abierto
(0, 1)— devuelve esa fracción del resultado.
SELECT / UNION que generan resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo tiene efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen: se aplica la misma regla de no propagación que para cualquier otra configuración.
load_marks_asynchronously
1.
lock_acquire_timeout
DEADLOCK_AVOIDED.
Valores posibles:
- Entero positivo (en segundos).
- 0 — Sin tiempo de espera de bloqueo.
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 cuánto tiempo deben esperar.
make_distributed_plan
enable_parallel_replicas = 0yautomatic_parallel_replicas_mode = 0— el plan distribuido realiza su propia distribución del trabajo;correlated_subqueries_use_in_memory_buffer = 0;use_skip_indexes_on_data_read = 0;compile_expressions = 0;query_plan_direct_read_from_text_index = 0.
merge_table_max_tables_to_look_for_schema_inference
Merge sin un esquema explícito o al usar la función de tabla merge, se infiere el esquema como una unión de no más del número especificado de tablas coincidentes.
Si hay un número mayor de tablas, el esquema se inferirá a partir del primer número especificado de tablas.
mongodb_throw_on_unsupported_query
multiple_joins_try_to_keep_original_names
normalize_function_names
offset
OFFSET y admite todo lo que admite OFFSET, incluidos valores negativos y fracciones en (0, 1).
Valores posibles:
- 0 — No se omite ninguna fila.
- Entero positivo.
- Entero negativo.
- Un número real en el intervalo abierto
(0, 1)— se omite esa fracción del resultado.
SELECT / UNION que producen resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen, conforme a la misma regla de no propagación aplicable a cualquier otra configuración.
order
ORDER BY a la consulta como subconsulta envolvente. Acepta una lista arbitraria de expresiones.
Esta es una configuración de construcción de consultas que el engine aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona en todos los protocolos: se puede proporcionar mediante el parámetro de URL HTTP, una cláusula SETTINGS en la consulta o un perfil de usuario.
Da forma a las consultas SELECT / UNION que generan resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen, igual que ocurre con cualquier otra configuración.
output_format
default_format.
página
offset = limit * (page - 1). Solo se puede especificar cuando se establece limit y no offset. Las páginas se numeran a partir de 1. Admite los mismos valores negativos o fraccionarios que limit y offset.
Es una configuración de construcción de consultas que el engine aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona con todos los protocolos: se puede proporcionar mediante el parámetro URL de HTTP, una cláusula SETTINGS en la consulta o un perfil de usuario.
Afecta a las consultas SELECT / UNION que producen resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia instrucción INSERT / CREATE, no se propaga al SELECT de origen: se aplica la misma regla de no propagación que a cualquier otra configuración.
paimon_target_snapshot_id
parallelize_output_from_storages
partial_result_on_first_cancel
per_part_index_stats
poll_interval
polyglot_dialect
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 (en función del ID de la consulta). 0 significa que está deshabilitado.
prefetch_buffer_size
print_pretty_type_names
DESCRIBE y en la función toTypeName().
Ejemplo:
priority
push_external_roles_in_interserver_queries
query_metric_log_interval
collect_interval_milliseconds de la configuración query_metric_log o, si no está presente, usará 1000 de forma predeterminada.
Para deshabilitar la recopilación de una sola consulta, establezca query_metric_log_interval en 0.
Valor predeterminado: -1
queue_max_wait_ms
rabbitmq_max_wait_ms
readonly
recursive_cte_max_steps_in_type_inference
getLeastSupertype a las partes no recursiva y recursiva de la UNION ALL hasta alcanzar la convergencia. Establézcalo en 0 para desactivar la ampliación de tipos y usar solo los tipos de la parte no recursiva.
regexp_max_matches_per_row
- Entero positivo.
reject_expensive_hyperscan_regexps
remerge_sort_lowered_memory_bytes_ratio
remote_read_min_bytes_for_seek
seek en lugar de leer ignorando datos.
rename_files_after_processing
- Type: String
- Valor predeterminado: Cadena vacía
file. Cuando esta opción está establecida, todos los archivos leídos por la función de tabla file se renombrarán según el patrón especificado con placeholders, siempre que el procesamiento de los archivos haya finalizado correctamente.
Marcadores de posición
%a— Nombre completo del archivo original (p. ej., “sample.csv”).%f— Nombre del archivo original sin extensión (p. ej., “sample”).%e— Extensión del archivo original con punto (p. ej., “.csv”).%t— Marca de tiempo (en microsegundos).%%— Signo de porcentaje (”%”).
Ejemplo
-
Opción:
--rename_files_after_processing="processed_%f_%t%e" -
Consulta:
SELECT * FROM file('sample.csv')
sample.csv se lee correctamente, el archivo se renombrará a processed_sample_1683473210851438.csv
replication_wait_for_inactive_replica_timeout
ALTER, OPTIMIZE o TRUNCATE.
Valores posibles:
0— No esperar.- Entero negativo — Esperar indefinidamente.
- Entero positivo — Número de segundos de espera.
reserve_memory
workload.
Si no hay suficiente memoria disponible para la carga de trabajo, la consulta no se inicia y queda en estado pendiente hasta que la reserva pueda satisfacerse.
Un valor de 0 significa que no hay reserva.
Esta configuración solo tiene efecto si se crea el recurso MEMORY RESERVATION.
Sustituye el motor de tabla de ReplicatedMergeTree por SharedMergeTree durante RESTORE.
Valor predeterminado en Cloud: 1.
result_overflow_mode
throw: lanzar una excepción (predeterminado).break: detener la ejecución de la consulta y devolver el resultado parcial, como si se hubieran agotado los datos de origen.
Break interrumpe la ejecución solo a nivel de
bloque. Esto significa que la cantidad de filas devueltas es mayor que
max_result_rows, es múltiplo de max_block_size
y depende de max_threads.
Ejemplo
Query
Result
rows_before_aggregation
secondary_indices_enable_bulk_filtering
select
SELECT. Si no está vacía, la consulta que produce resultados se envuelve como SELECT <expr_list> FROM (<query>).
Es una configuración de construcción de consultas que el motor aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona con todos los protocolos: se puede especificar mediante el parámetro URL de HTTP, una cláusula SETTINGS en la consulta o un perfil de usuario.
Da forma a las consultas SELECT / UNION que producen resultados. En el caso de una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo surte efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o una sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen; se aplica la misma regla de no propagación que a cualquier otra configuración.
select_sequential_consistency
El comportamiento de esta configuración difiere entre SharedMergeTree y ReplicatedMergeTree; consulte 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 (habilitado de forma predeterminada).
Valores posibles:
- 0 — Deshabilitado.
- 1 — Habilitado.
SELECT solo en aquellas réplicas que contienen datos de todas las consultas INSERT anteriores ejecutadas con insert_quorum. Si el client hace referencia a una réplica parcial, ClickHouse generará una excepción. La consulta SELECT no incluirá datos que aún no se hayan escrito en el quórum de réplicas.
Cuando insert_quorum_parallel está habilitado (el valor predeterminado), select_sequential_consistency no funciona. Esto se debe a que las consultas INSERT en paralelo pueden escribirse en distintos conjuntos de réplicas de quórum, por lo que no hay garantía de que una sola réplica haya recibido todas las escrituras.
Véase también:
session_timezone
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
toDateTime()sin una zona horaria especificada explícitamente, usado en la primera consultaSELECT, respeta la configuraciónsession_timezoney la zona horaria global.- En la segunda consulta, se interpreta un DateTime a partir de un String y hereda el tipo y la zona horaria de la columna existente
d. Por lo tanto, no se respetan la configuraciónsession_timezoneni la zona horaria global.
set_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.
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.
sleep_after_receiving_query_ms
snappy_mode
file y url. HTTP Content-Encoding: snappy siempre usa el formato framing e ignora esta configuración.
Ten en cuenta que el formato bruto de bloques snappy producido por una única llamada a snappy::Compress (por ejemplo, las cargas útiles del protocolo remoto de Prometheus gestionadas por SnappyBasicReadBuffer) es un formato de transmisión independiente y específico del protocolo, y no está controlado por esta configuración.
Valores posibles:
basic— Formato de bloques snappy de Hadoop. Compatible con archivos leídos y escritos por Hadoop. Admite lectura y escritura.framed— Formato framing de Snappy, el formato estándar de streaming definido por Google. Admite lectura y escritura.
sort
ORDER BY simple a la consulta envolviéndola en una subconsulta. Acepta una lista de identificadores o referencias posicionales a columnas (enteros positivos) separada por comas, con un prefijo opcional + (ASC) o - (DESC). Ejemplo: sort=a,-b ordena por a de forma ascendente y por b de forma descendente; sort=1,-2 ordena por la primera columna de forma ascendente y por la segunda de forma descendente. No se puede combinar con order.
Esta es una configuración de construcción de consultas que el motor aplica a la consulta analizada (envolviéndola como una tabla derivada), por lo que se combina con la consulta existente y funciona en todos los protocolos: se puede especificar mediante el parámetro URL de HTTP, una cláusula SETTINGS dentro de la consulta o un perfil de usuario.
Da forma a las consultas SELECT / UNION que producen resultados. En una consulta de escritura (INSERT … SELECT, CREATE … AS SELECT), solo tiene efecto cuando el SELECT de origen la incluye en su propia cláusula SETTINGS; un valor heredado de un perfil o sesión, o establecido en la propia sentencia INSERT / CREATE, no se propaga al SELECT de origen, igual que ocurre con cualquier otra configuración.
sort_overflow_mode
throw: lanzar una excepción.break: detener la ejecución de la consulta y devolver el resultado parcial.
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 creadas posteriormente. No tiene efecto sobre las vistas materializadas no actualizables.
tcp_keep_alive_timeout
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
throw_if_no_data_to_insert
clickhouse-client o la interfaz gRPC.
timeout_before_checking_execution_speed
min_execution_speed)
una vez transcurrido el tiempo especificado en segundos.
transfer_overflow_mode
throw: lanzar una excepción (por defecto).break: dejar de ejecutar la consulta y devolver el resultado parcial, como si los datos de origen se hubieran agotado.
transform_null_in
NULL no se pueden comparar porque NULL significa un valor indefinido. Por lo tanto, la comparación expr = NULL siempre debe devolver false. Con esta configuración, NULL = NULL devuelve true para el operador IN.
Valores posibles:
- 0 — La comparación de valores
NULLen el operadorINdevuelvefalse. - 1 — La comparación de valores
NULLen el operadorINdevuelvetrue.
null_in:
traverse_shadow_remote_data_paths
union_default_mode
SELECT. Esta configuración solo se usa con UNION cuando no se especifica explícitamente UNION ALL ni UNION DISTINCT.
Valores posibles:
'DISTINCT'— ClickHouse devuelve como resultado de la combinación de consultas las filas sin duplicados.'ALL'— ClickHouse devuelve como resultado de la combinación de consultas todas las filas, incluidas las duplicadas.''— ClickHouse genera una excepción cuando se usa conUNION.
unknown_packet_in_send_data
variant_throw_on_type_mismatch
true(por defecto) — lanzar una excepción.false— devolverNULLpara esas filas.