Para reducir los costos de almacenamiento de datos, mejorar el rendimiento de las consultas y aumentar la utilización de los recursos del sistema, los clústeres de Alibaba Cloud ClickHouse Community-compatible Edition y Enterprise Edition que utilizan el tipo de almacenamiento ESSD_L1 o ESSD_L2 admiten el almacenamiento por niveles de datos frecuentes y poco frecuentes. Esta función le permite almacenar datos en diferentes medios de almacenamiento según la frecuencia de acceso. Este tema describe cómo habilitar el almacenamiento por niveles de datos frecuentes y poco frecuentes y configurar las directivas de almacenamiento por niveles.
Requisitos previos
Community-compatible edition
El clúster ejecuta la versión 20.8 o posterior.
La función de copia de seguridad de datos está deshabilitada para el clúster.
Para clústeres que ejecutan una versión anterior, puede migrar los datos a un clúster que ejecute la versión 20.8 o posterior antes de habilitar el almacenamiento por niveles de datos frecuentes y poco frecuentes. Para obtener más información, consulte Data migration between Alibaba Cloud ClickHouse Community-compatible Edition clusters.
La función de almacenamiento por niveles de datos frecuentes y poco frecuentes no es compatible con las regiones US (Silicon Valley) y US (Virginia).
Enterprise edition
El clúster utiliza el tipo de almacenamiento ESSD_L1 o ESSD_L2. Para usar este tipo de almacenamiento, debe enviar un ticket para agregar su cuenta a la lista de permitidos.
Contexto
El almacenamiento por niveles de datos frecuentes y poco frecuentes clasifica los datos en dos categorías según la frecuencia de acceso:
Datos frecuentes: Datos a los que se accede con frecuencia. Estos datos se almacenan en un disco de datos frecuentes, como un ESSD o un disco ultra que selecciona durante la creación del clúster, para lograr un acceso de alto rendimiento.
Datos poco frecuentes: Datos a los que se accede con poca frecuencia. Estos datos se almacenan en un disco de datos poco frecuentes de menor costo para lograr un almacenamiento rentable. El almacenamiento en frío utiliza únicamente object storage de OSS y no se puede cambiar a ESSD PL0 ni a otros tipos de disco personalizados.
Las directivas de almacenamiento para el almacenamiento por niveles de datos frecuentes y poco frecuentes son las siguientes:
Community-compatible edition
|
Directiva de almacenamiento |
Descripción |
|
Directiva de almacenamiento predeterminada |
Los nuevos datos se escriben en el disco de datos frecuentes para realizar consultas de alto rendimiento. Cuando el almacenamiento utilizado en el disco de datos frecuentes alcanza un umbral especificado, el sistema mueve automáticamente la parte de datos más grande al disco de datos poco frecuentes para liberar espacio. |
|
Directiva de almacenamiento basada en TTL |
Esta directiva amplía la directiva de almacenamiento predeterminada. Puede agregar una cláusula TTL para mover automáticamente todos los datos anteriores a un intervalo especificado al disco de datos poco frecuentes. |
Enterprise edition
El sistema descarga automáticamente los datos que ya no se modifican a OSS de menor costo para reducir los gastos de almacenamiento.
TTL global: En Enterprise Edition, puede configurar un TTL global para controlar el almacenamiento por niveles de datos frecuentes y poco frecuentes.
Hora de descarga: Después de habilitar el almacenamiento por niveles de datos frecuentes y poco frecuentes, el sistema escanea todos los archivos de datos a las 00:00 UTC cada día. Descarga las partes de datos cuya antigüedad supera el TTL global desde el disco de datos frecuentes al disco de datos poco frecuentes (OSS).
Precauciones
Community-compatible edition
Habilite esta función fuera de las horas pico. Después de habilitar esta función, el clúster se reinicia inmediatamente. Durante el reinicio, solo puede consultar la información del clúster y no puede actualizar la configuración, escalar horizontalmente el clúster ni modificar parámetros.
-
Debe especificar una directiva de almacenamiento para sus tablas cuando utilice esta función. ApsaraDB for ClickHouse solo admite la directiva de almacenamiento
hot_to_cold. No se admiten directivas de almacenamiento personalizadas, como configurar varias directivas (por ejemplo,defaultyhd_policy) que apunten a diferentes directorios de almacenamiento.Al crear una tabla, utilice
SETTINGS storage_policy = 'hot_to_cold'para especificar la directiva de almacenamiento.-
Modifique la directiva de almacenamiento de una tabla existente.
Después del 1 de enero de 2024
Ejecute la siguiente instrucción para modificar la directiva:
ALTER TABLE <table_name> MODIFY SETTING storage_policy = 'hot_to_cold';Antes del 1 de enero de 2024
Puede agregar una nueva directiva de almacenamiento mediante operaciones de gestión específicas. Esto le permite utilizar la nueva directiva para migrar datos desde el disco de datos frecuentes al disco de datos poco frecuentes.
Esta función no se puede deshabilitar después de haberla habilitado.
No se admite la reducción de categoría de disco para clústeres con almacenamiento por niveles de datos frecuentes y poco frecuentes habilitado.
Enterprise edition
Modificar datos en el almacenamiento en frío, por ejemplo, mediante operaciones
MutationoOptimize, o una operaciónMergedesencadenada por el sistema, recarga los datos en el almacenamiento en caliente para reconstruir los archivos de datos. Los nuevos archivos de datos no se mueven inmediatamente al almacenamiento en frío. Se descargan nuevamente solo después de que su antigüedad supere el TTL global. Por lo tanto, evite adiciones, eliminaciones o modificaciones frecuentes en los datos poco frecuentes.La descarga no es instantánea. El sistema ajusta dinámicamente la tasa de descarga según factores como la presión de E/S actual en el sistema de almacenamiento. El proceso puede tardar varias horas, dependiendo de la cantidad de datos que se deban descargar.
-
Se aplican las siguientes reglas al modificar el TTL:
Si aumenta el TTL, el cambio surte efecto en la siguiente hora de descarga. Sin embargo, los datos que ya están en el almacenamiento en frío no se mueven al almacenamiento en caliente.
Si disminuye el TTL, el cambio surte efecto en la siguiente hora de descarga.
El valor mínimo para el TTL global es de 1 día, y el incremento mínimo de ajuste es de 1 día.
No se admite la reducción de categoría de disco para clústeres con almacenamiento por niveles de datos frecuentes y poco frecuentes habilitado.
Facturación
-
Las reglas de facturación son las siguientes:
Tipo
Detalles
Almacenamiento de datos frecuentes
La capacidad de almacenamiento de datos frecuentes equivale a la capacidad de almacenamiento que compró para el clúster.
Almacenamiento de datos poco frecuentes
El almacenamiento de datos poco frecuentes se factura bajo el modelo pay-as-you-go. No necesita comprar una cantidad fija de espacio de almacenamiento por adelantado. Se le factura por hora según el almacenamiento que utilice.
Para obtener más información sobre los precios unitarios del almacenamiento de datos poco frecuentes, consulte Storage space fees for the Community-compatible Edition y Pay-as-you-go billing for the Enterprise Edition.
Fórmula de facturación: Tarifa de almacenamiento en frío = Precio unitario del almacenamiento de datos poco frecuentes × Uso de datos poco frecuentes × Duración del uso.
Ejemplo: Si el precio unitario del almacenamiento de datos poco frecuentes es de 0.000026 USD por GB-hora y utiliza 2000 GB de almacenamiento en frío de 19:00 a 20:00, la tarifa total se calcula de la siguiente manera: 0.000026 USD por GB-hora × 2000 GB × 1 hora = 0.052 USD. Si libera 500 GB de espacio de almacenamiento en frío y el uso real es de 1500 GB de 20:00 a 21:00, la tarifa total para esta hora se calcula de la siguiente manera: 0.000026 USD por GB-hora × 1500 GB × 1 hora = 0.039 USD.
Los precios en este ejemplo son solo de referencia. Prevalecen los precios reales en la consola.
Habilitar el almacenamiento por niveles
Community-compatible edition
Inicie sesión en la consola de Alibaba Cloud ClickHouse. En la esquina superior izquierda de la página, seleccione la región donde está desplegado su clúster.
En la página Clusters, haga clic en la pestaña Clusters of Community-compatible Edition y luego haga clic en el ID del clúster objetivo.
En el panel de navegación izquierdo, haga clic en Cold and hot layered storage.
Haga clic en Click to Enable Layered Storage.
-
En el cuadro de diálogo que aparece, haga clic en OK.
Después de confirmar la operación, el clúster se reinicia. La función se habilita después de que el estado del clúster cambia de Changing Configuration a Running.
Enterprise edition
Para Alibaba Cloud ClickHouse Enterprise Edition, primero debe enviar un ticket para agregar su cuenta a la lista de permitidos para esta función. Luego, siga estos pasos para habilitar la función en su clúster.
Inicie sesión en la consola de Alibaba Cloud ClickHouse. En la esquina superior izquierda de la página, seleccione la región donde está desplegado su clúster.
En la página Clusters, haga clic en la pestaña Enterprise Edition Clusters y luego haga clic en el ID del clúster objetivo.
En el panel de navegación izquierdo, haga clic en Cold and hot layered storage.
Haga clic en Click to Enable Layered Storage.
En el cuadro de diálogo que aparece, configure el TTL global.
-
Haga clic en OK.
La función se habilita después de que el estado del clúster cambia a Running y la página Tiered Storage muestra que la función está Enabled.
Después de habilitar la función, puede hacer clic en el icono de edición junto a Parameter Value para ajustar el TTL global. El nuevo TTL surte efecto en el siguiente ciclo de descarga (00:00 UTC del día siguiente).
Gestionar directivas de almacenamiento para Community-compatible edition
Directiva de almacenamiento predeterminada
Después de habilitar el almacenamiento por niveles de datos frecuentes y poco frecuentes, la directiva de almacenamiento predeterminada incluye los siguientes parámetros.
|
Parámetro |
Descripción |
|
move_factor |
Cuando el espacio disponible en el disco de datos frecuentes cae por debajo de esta proporción, el sistema mueve automáticamente la parte de datos más grande al disco de datos poco frecuentes. El valor de este parámetro oscila entre Nota
Para ver el espacio en disco, consulte View disk space. |
|
prefer_not_to_merge |
Especifica si se deben combinar los datos en el disco de datos poco frecuentes. Valores válidos:
|
Directiva de almacenamiento basada en TTL
Puede agregar una cláusula TTL a la directiva de almacenamiento predeterminada para mover automáticamente todos los datos anteriores a un intervalo especificado al disco de datos poco frecuentes.
Sintaxis
TTL <time_column> + INTERVAL <number> <unit> TO DISK 'cold_disk'
Parámetros
|
Parámetro |
Descripción |
|
time_column |
Una columna del tipo de datos Date o DateTime. |
|
number unit |
El intervalo de tiempo. Las unidades comunes incluyen DAY, WEEK, MONTH y YEAR. |
Para obtener más información sobre las cláusulas TTL, consulte TTL para columnas y tablas.
Ejemplo
La siguiente instrucción crea una tabla y mueve todos los datos anteriores a 90 días al disco de datos poco frecuentes según la columna date.
CREATE TABLE ttl_test_tbl
(
`f1` String,
`f2` String,
`f3` Int64,
`f4` Float64,
`date` Date
)
ENGINE = MergeTree()
PARTITION BY date
ORDER BY f1
TTL date + INTERVAL 90 DAY TO DISK 'cold_disk'
SETTINGS storage_policy = 'hot_to_cold';
Modificar una directiva basada en TTL
Puede cambiar la columna Date o DateTime y el intervalo de tiempo para una directiva de almacenamiento por niveles basada en TTL.
Precauciones
-
Impacto en los datos:
Datos existentes: De forma predeterminada, la nueva directiva también se aplica a los datos existentes, pero este proceso es asíncrono y lleva tiempo. Para aplicar el cambio inmediatamente, ejecute la instrucción
ALTER TABLE ... MATERIALIZE TTL;después de modificar la directiva. Si no desea cambiar la directiva de almacenamiento para los datos existentes, ejecute la instrucciónSET materialize_ttl_after_modify=0;antes de modificar la directiva.Los nuevos datos se clasifican por niveles según la nueva directiva.
Después de modificar una directiva de almacenamiento basada en TTL, los datos que ya están en el disco de datos poco frecuentes no se mueven automáticamente al disco de datos frecuentes. Para mover los datos, consulte Move data between hot and cold data disks.
Sintaxis
ALTER TABLE <table_name> ON CLUSTER default MODIFY TTL <time_column> + INTERVAL <number> <unit> TO DISK 'cold_disk';
Parámetros
|
Parámetro |
Descripción |
|
table_name |
El nombre de la tabla. |
|
time_column |
La columna Date o DateTime de destino. |
|
number unit |
El intervalo de tiempo. Las unidades comunes incluyen DAY, WEEK, MONTH y YEAR. |
Gestión de datos para Community-compatible edition
Mover datos entre discos de datos frecuentes y poco frecuentes
-
Mover datos de un disco de datos frecuentes a un disco de datos poco frecuentes:
ALTER TABLE <table_name> ON CLUSTER default MOVE PARTITION <partition> TO DISK 'cold_disk'; -
Mover datos de un disco de datos poco frecuentes a un disco de datos frecuentes:
ALTER TABLE <table_name> ON CLUSTER default MOVE PARTITION <partition> TO DISK 'default';Notapartitiones el nombre de la partición, que puede encontrar en la tablasystem.parts.
Ver datos en discos de datos frecuentes y poco frecuentes
-
Ver datos en un disco de datos frecuentes:
SELECT * FROM system.parts WHERE database = '<db_name>' AND TABLE = '<tbl_name>' AND disk_name ='default' AND active = 1; -
Ver datos en un disco de datos poco frecuentes:
SELECT * FROM system.parts WHERE database = '<db_name>' AND TABLE = '<tbl_name>' AND disk_name ='cold_disk' AND active = 1;
Ver espacio en disco
Después de habilitar el almacenamiento por niveles de datos frecuentes y poco frecuentes, puede ejecutar la siguiente instrucción para ver el espacio en disco:
SELECT * FROM system.disks;
Se devuelve el siguiente resultado:
┌─name─────┬─────────path───────────────────────────┬─free_space───────────┬─total_space──────────┬─used_space───┬─keep_free_space───┬──type──┐
│ cold_disk│ /clickhouse/data/data/disks/cold_disk/ │ 18446744073709551615 │ 18446744073709551615 │ 115312080698 │ 0 │ OSS │
│ default │ /clickhouse/data/data/ │ 201663209472 │ 207083249664 │ 5420040192 │ 0 │ local │
└──────────┴────────────────────────────────────────┴──────────────────────┴──────────────────────┴──────────────┴───────────────────┴────────┘
La siguiente tabla describe las columnas en el conjunto de resultados.
|
Parámetro |
Descripción |
|
name |
El nombre del disco.
|
|
path |
La ruta de almacenamiento de datos en el disco. |
|
free_space |
El espacio disponible en el disco, en bytes. El espacio disponible en un disco de datos poco frecuentes no tiene límite. |
|
total_space |
El espacio total en el disco, en bytes. El espacio total en un disco de datos poco frecuentes es efectivamente ilimitado. |
|
used_space |
El espacio de disco utilizado, en bytes. |
|
keep_free_space |
El espacio libre reservado, en bytes. |
|
type |
El medio de almacenamiento.
|
Preguntas frecuentes
P: ¿Por qué mis datos no se mueven del disco de datos frecuentes al disco de datos poco frecuentes?
R: Que los datos se muevan a un disco de datos poco frecuentes depende de los valores de move_ttl_info.min y move_ttl_info.max en la tabla system.parts. Puede ejecutar la siguiente instrucción para consultar estos valores:
SELECT move_ttl_info.min, move_ttl_info.max FROM system.parts WHERE database = '<db_name>' AND table = '<tb_name>' AND disk_name = 'default'
Si la hora actual es anterior a cualquiera de estos valores, el sistema no mueve la parte de datos. También es posible que el sistema esté procesando o preparándose para mover los datos, y que la operación aún no haya finalizado.