Skip to main content
Estas configuraciones están disponibles en system.merge_tree_settings y se autogeneran a partir del código fuente de ClickHouse.

min_absolute_delay_to_close

Retraso absoluto mínimo para cerrar, dejar de atender solicitudes y no devolver Ok durante la comprobación de estado.

min_columns_to_activate_adaptive_write_buffer

Permite reducir el uso de memoria en tablas con muchas columnas mediante búferes de escritura adaptativos. Se compara con el número de flujos de escritura de una parte wide, que puede superar considerablemente su número de columnas: un Map con muchos buckets o un Array o Tuple profundamente anidado escribe muchos flujos para una sola columna, y se asigna un búfer de escritura por flujo. Valores posibles:
  • 0 - deshabilitado
  • 1 - siempre habilitado

min_compress_block_size

Tamaño mínimo de los bloques de datos sin comprimir necesario para la compresión al escribir la siguiente marca. También puede especificar esta configuración en la configuración global (consulte la configuración min_compress_block_size). El valor especificado cuando se crea la tabla sobrescribe el valor global de esta configuración.

min_index_granularity_bytes

Tamaño mínimo permitido de los gránulos de datos en bytes. Sirve como protección para evitar crear accidentalmente tablas con un index_granularity_bytes demasiado bajo.

min_marks_to_honor_max_concurrent_queries

El número mínimo de marcas que debe leer la consulta para aplicar la configuración max_concurrent_queries.
Las consultas seguirán estando limitadas por otras configuraciones de max_concurrent_queries.
Valores posibles:
  • Entero positivo.
  • 0 — Deshabilitado (el límite de max_concurrent_queries no se aplica a ninguna consulta).
Ejemplo

min_merge_bytes_to_use_direct_io

El volumen mínimo de datos de una operación de merge necesario para usar acceso de E/S directa al disco de almacenamiento. Al hacer merge de partes de datos, ClickHouse calcula el volumen total de almacenamiento de todos los datos que se van a hacer merge. Si el volumen supera los min_merge_bytes_to_use_direct_io bytes, ClickHouse lee y escribe los datos en el disco de almacenamiento mediante la interfaz de E/S directa (opción O_DIRECT). Si min_merge_bytes_to_use_direct_io = 0, la E/S directa se deshabilita.

min_partition_age_to_force_merge_seconds

Fusiona las partes de una partición si todas ellas son más antiguas que este valor, es decir, si la partición ya no recibe inserciones. A diferencia de min_age_to_force_merge_seconds combinado con min_age_to_force_merge_on_partition_only, la partición no tiene que caber en una única fusión: cada fusión sigue respetando max_bytes_to_merge_at_max_space_in_pool. Funciona con los selectores de merge Simple y StochasticSimple. La antigüedad que se compara aquí es la de la parte más reciente de la partición (now - modification_time, minimizado sobre sus partes), de modo que la regla solo se activa cuando todas las partes han superado ese valor. Cualquier parte nueva la reinicia: una inserción, una mutación y también cada fusión que asigna esta misma configuración, ya que la parte fusionada es nueva. Por tanto, el forzado se desactiva en cuanto se completa una fusión forzada y vuelve a activarse solo después de que transcurra de nuevo ese valor sin partes nuevas, de manera que una partición que necesita varias fusiones se compacta en rondas sucesivas separadas por este intervalo, y no en una única pasada continua. El forzado funciona exactamente igual que en min_age_to_force_merge_seconds: suspende el requisito de proporción de tamaño que normalmente impide asignar una fusión desequilibrada, y también suspende el mínimo impuesto por min_parts_to_merge_at_once, por lo que una fusión forzada puede abarcar menos partes de las que exige ese mínimo. No se desactiva ninguna otra heurística: merge_selector_window_size sigue delimitando qué partes se examinan y merge_selector_enable_heuristic_to_remove_small_parts_at_right sigue recortando una parte pequeña al final de un rango seleccionado de tres partes o más. Si una carga de trabajo necesita desactivar alguna de ellas, debe hacerlo explícitamente mediante su propia configuración. Con los selectores de merge Simple y StochasticSimple, no puede combinarse con min_age_to_force_merge_seconds junto con min_age_to_force_merge_on_partition_only. Ese par fusiona una partición entera de una sola vez, y solo una fusión así se marca como final, que es lo que permite a un ReplacingMergeTree ejecutar CLEANUP; forzar fusiones regulares por antigüedad de partición se anticiparía a ello. Utilice ese par para las particiones que caben en una única fusión y esta configuración para las que no. Los demás selectores ignoran esta configuración, por lo que con ellos la combinación sí se acepta. Valores posibles:
  • Entero positivo.

min_parts_to_merge_at_once

Cantidad mínima de partes de datos que el selector de merge puede elegir para fusionar de una sola vez (configuración de nivel experto; no la cambie si no entiende lo que hace). 0 - deshabilitado. Funciona con los selectores de merge Simple y StochasticSimple.

min_replicated_logs_to_keep

Mantiene aproximadamente este número de los registros más recientes en el log de ZooKeeper, incluso si están obsoletos. No afecta al funcionamiento de las tablas: se usa solo para diagnosticar el log de ZooKeeper antes de limpiarlo. Posibles valores:
  • Cualquier entero positivo.

min_unreserved_disk_space_for_merge

Reserva la cantidad especificada de espacio en disco no reservado (en bytes) para evitar que las fusiones en segundo plano dejen sin espacio a las inserciones. Esta cantidad se resta del espacio libre. A partir del espacio restante, y con un margen de seguridad adicional, se calcula el límite del tamaño total de las partes de origen de una fusión, de modo que incluso la mayor fusión permitida quede muy por debajo del espacio disponible. El límite disminuye a medida que se llena el disco y llega a cero cuando el espacio libre se reduce a la cantidad reservada; en ese momento no se selecciona ninguna fusión en segundo plano. (0 significa que está deshabilitada) A diferencia de keep_free_space_bytes, ClickHouse puede seguir utilizando el espacio protegido: solo queda excluido de la planificación de fusiones. Esta configuración no limita las mutaciones, que pueden consumir ese espacio, ni afecta a los discos con espacio ilimitado (como el almacenamiento de objetos). Las fusiones iniciadas mediante OPTIMIZE con FINAL o con una PARTITION explícita ignoran esta configuración. Las fusiones que eliminan partes completamente expiradas se seleccionan siempre que el límite sea superior a cero, independientemente de su tamaño; si el límite es cero, no se selecciona ninguna. Cada fusión reserva al menos 1 MiB, por lo que una fusión iniciada cuando quedan menos de 1 MiB por encima del espacio protegido puede consumir hasta 1 MiB de ese espacio. Una réplica ReplicatedMergeTree también ejecuta las eliminaciones en cola cuando su propio límite es cero, si el único TTL de la tabla es un TTL de filas sin WHERE. Si el TTL incluye GROUP BY o WHERE, o si se trata de un TTL de columna, esa eliminación reescribe las filas restantes: ReplicatedMergeTree la pospone en función del tamaño de sus partes, pero MergeTree no lo hace y puede escribirlas en el espacio protegido. Cuando el límite llega a cero, un OPTIMIZE sin modificadores no asigna ninguna fusión: no tiene efecto o genera CANNOT_ASSIGN_OPTIMIZE con optimize_throw_if_noop = 1. Use FINAL o una PARTITION explícita para realizar una fusión que utilice el espacio protegido. En ReplicatedMergeTree, esa excepción solo se registra en la entrada del log de replicación si la configuración tiene un valor distinto de cero en la réplica que pone la fusión en cola. Por tanto, un OPTIMIZE puesto en cola mientras el valor era 0 sigue sujeto a la holgura. ALTER TABLE ... MODIFY SETTING no se replica, así que asigne el mismo valor a todas las réplicas: una réplica con una holgura mayor vuelve a aplicarla a las fusiones asignadas en otras réplicas y puede posponerlas indefinidamente. Mantenga el valor en 0 hasta que todas las réplicas ejecuten una versión que reconozca esta configuración: una réplica con una versión anterior no puede interpretar las entradas del log correspondientes a las fusiones exentas y deja de recuperar las entradas posteriores de la tabla, incluidas las de las inserciones normales.