Descripción
Contiene información sobre las políticas de almacenamiento y los volúmenes definidos en la configuración del servidor.
Columnas
policy_name(String) — El nombre de la política de almacenamiento.volume_name(String) — El nombre del volumen.volume_priority(UInt64) — La prioridad del volumen.disks(Array(String)) — La lista de nombres de todos los discos que forman parte de esta política de almacenamiento.volume_type(Enum8('JBOD' = 0, 'SINGLE_DISK' = 1, 'UNKNOWN' = 2)) — El tipo de volumen: JBOD o un único disco.max_data_part_size(UInt64) — El tamaño máximo de una parte que se puede almacenar en cualquiera de los discos del volumen.move_factor(Float32) — Cuando el espacio disponible es inferior a este factor, los datos comienzan a moverse automáticamente al siguiente volumen, si existe (de forma predeterminada, 0.1).prefer_not_to_merge(UInt8) — No debe usar esta configuración. Deshabilita la combinación de partes en este volumen (es perjudicial y degrada el rendimiento).perform_ttl_move_on_insert(UInt8) — Deshabilita el movimiento TTL al insertar una parte. De forma predeterminada (si está habilitado), si se inserta una parte que ya ha expirado según la regla de movimiento TTL, se mueve inmediatamente al volumen/disco definido en dicha regla.load_balancing(Enum8('ROUND_ROBIN' = 0, 'LEAST_USED' = 1)) — Política de equilibrado de discos:round_robinoleast_used.
Selección de volumen en INSERT
Cuando INSERT crea una nueva parte, ClickHouse elige un disco de destino
siguiendo las reglas que se indican a continuación, en este orden. Se aplica la primera regla que coincida y pueda
reservar espacio para la parte; de lo contrario (si la regla no se aplica, no hay espacio
libre o se supera max_data_part_size), la evaluación continúa con la siguiente
regla.
- Regla de movimiento TTL — si una cláusula
TTL <expr> TO VOLUME 'X'(oTO DISK 'X') ya ha vencido para las filas que se están insertando, yperform_ttl_move_on_insert = 1(valor predeterminado) en el volumen de destino TTL (paraTO DISK 'X', el volumen que contiene el discoX), la parte se escribe directamente en ese destino. Si la reserva allí falla, el insert pasa a los pasos 2–4; se registra una advertencia, peroINSERTno falla solo por este motivo. max_data_part_size— un volumen rechaza partes mayores que sumax_data_part_size. Esto se comprueba por volumen; no bloquea una reserva del paso 1TTL ... TO DISK 'X', que apunta directamente al disco.volume_priority— entre los volúmenes restantes, se elige el que tenga el valorvolume_prioritymás bajo. Los volúmenes sin un<volume_priority>explícito se ordenan según su posición en la configuración.load_balancing— una vez elegido un volumen, el disco dentro de ese volumen se selecciona según su política deload_balancing(round_robinoleast_used).
Para forzar que los inserts respeten volume_priority incluso cuando se aplique una regla de movimiento TTL
«ya vencida», establezca perform_ttl_move_on_insert = 0 en
el volumen de destino TTL (para TO DISK 'X', en el volumen que contiene
el disco X). La parte se escribe primero en el volumen de prioridad N y
después se mueve al destino TTL mediante una tarea de movimiento en segundo plano (observable a través de
system.moves). Consulte la
configuración perform_ttl_move_on_insert del motor MergeTree.