¿Qué es la separación de cómputo-cómputo?
- Nodos de cómputo de ClickHouse (denominados réplicas) con clústeres dedicados de CPU y memoria
- Un endpoint (o varios endpoints creados desde la consola de la UI de ClickHouse Cloud) para conectarse al servicio (por ejemplo,
https://dv2fzne24g.us-east-1.aws.clickhouse.cloud:8443) para conexiones locales y de aplicaciones de terceros - Una carpeta de almacenamiento de objetos donde el servicio almacena todos los datos y parte de los metadatos:
Fig. 1 - Servicio único en ClickHouse Cloud En lugar de tener un único servicio, puedes crear varios servicios con acceso al mismo almacenamiento compartido, lo que te permite dedicar recursos a cargas de trabajo específicas sin tener que duplicar los datos. Este concepto se denomina separación de cómputo-cómputo. La separación de cómputo-cómputo significa que cada servicio tiene su propio conjunto de réplicas y un endpoint, pero utiliza la misma carpeta de almacenamiento de objetos y accede a las mismas tablas, vistas, etc. Esto significa que puedes elegir la capacidad de cómputo adecuada para tu carga de trabajo. Algunas cargas de trabajo pueden resolverse con una sola réplica pequeña, mientras que otras pueden requerir alta disponibilidad (HA) completa y cientos de gigabytes de memoria en varias réplicas. La separación de cómputo-cómputo también te permite separar las operaciones de lectura de las de escritura para que no interfieran entre sí:
Fig. 2 - Separación de cómputo en ClickHouse Cloud
¿Qué es un warehouse?
- Servicio principal
DWH Prod - Servicio secundario
DWH Prod Subservice
Fig. 3 - Ejemplo de warehouse Todos los servicios de un warehouse comparten lo siguiente:
- Región (por ejemplo, us-east1)
- Proveedor de servicios de Cloud (AWS, GCP o Azure)
- Versión de la base de datos de ClickHouse
- ClickHouse Keeper (para gestionar réplicas)
Controles de acceso
Credenciales de la base de datos
Fig. 4 - La usuaria Alice se creó en servicio 1, pero puede usar las mismas credenciales para acceder a todos los servicios que comparten los mismos datos
Control de acceso a la red
Fig. 5 - Alice tiene restringido el acceso al servicio 2 debido a la configuración del control de acceso a la red Los roles y privilegios de ClickHouse también pueden aplicarse para controlar el acceso a los datos cuando los usuarios se conectan como usuarios individuales en lugar de hacerlo con el usuario default.
Servicios de solo lectura frente a servicios de lectura y escritura
- lectura y escritura
- Pueden leer y escribir datos en ClickHouse
- Realizan operaciones de fusión en segundo plano (p. ej., fusionar partes después de insertar datos), que consumen CPU y memoria
- Pueden exportar datos a sistemas externos
- solo lectura
- Solo pueden leer datos; no pueden escribir ni modificar datos en ClickHouse
- No realizan operaciones de fusión en segundo plano fuera de las system tables, por lo que sus recursos se dedican por completo a las consultas de lectura
- Aún pueden exportar datos a sistemas externos (p. ej., mediante table functions), pero no pueden modificar datos dentro de ClickHouse
- Entran en inactividad sin demora, a diferencia de los servicios de lectura y escritura, que pueden mantenerse activos debido a las fusiones en segundo plano.
Fig. 6 - Servicios de lectura y escritura y de solo lectura en un warehouse
- Actualmente, los servicios de solo lectura admiten operaciones de gestión de usuarios (CREATE, DROP, etc.).
- Las vistas materializadas actualizables se ejecutan solo en servicios de lectura y escritura (RW) de un warehouse.
- El tipo de un servicio (solo lectura o lectura y escritura) queda fijado en el momento de su creación y no puede cambiarse posteriormente desde la Cloud Console. Para cambiar entre acceso de solo lectura y de lectura y escritura, cree un servicio nuevo en el warehouse con el tipo deseado.
Escalado
- Número de nodos (réplicas). El servicio principal (el servicio que se creó primero en el warehouse) debe tener 2 o más nodos. Cada servicio secundario puede tener 1 o más nodos.
- Tamaño de los nodos (réplicas)
- Si el servicio debe escalar automáticamente (horizontal y verticalmente)
- Si el servicio debe quedar inactivo cuando no haya actividad
Cambios en el comportamiento de clusterAllReplicas
clusterAllReplicas() cambia.
Usar el nombre de cluster default solo tendrá como destino las réplicas dentro del servicio actual, no todos los servicios del warehouse.
Por ejemplo, si llamas a clusterAllReplicas(default, system, processes) desde el servicio 1, solo se devuelven los procesos que se ejecutan en el servicio 1.
Para realizar una consulta en todos los servicios del warehouse, usa en su lugar el nombre de cluster all_groups.default:
Los servicios secundarios de un solo nodo pueden escalar verticalmente, mientras que los servicios primarios de un solo nodo no pueden.
Limitaciones
Limitaciones del aislamiento de cargas de trabajo
-
Todos los servicios de lectura y escritura realizan operaciones de fusión en segundo plano de forma predeterminada. Al insertar datos en ClickHouse, la base de datos primero inserta los datos en algunas particiones de staging y luego realiza fusiones en segundo plano. Estas fusiones pueden consumir recursos de memoria y CPU. Cuando dos servicios de lectura y escritura comparten el mismo almacenamiento, ambos realizan operaciones en segundo plano. Esto significa que puede darse una situación en la que haya una consulta
INSERTen el Servicio 1, pero que la operación de fusión la complete el Servicio 2. Ten en cuenta que los servicios de solo lectura no ejecutan fusiones en segundo plano, por lo que no consumen sus recursos en esta operación. Nuestro equipo de soporte puede desactivar las fusiones en un servicio. - Todos los servicios de lectura y escritura realizan operaciones de inserción del motor de tabla S3Queue. Al crear una tabla S3Queue en un servicio de lectura y escritura, todos los demás servicios de lectura y escritura del warehouse pueden leer datos de S3 y escribir datos en la base de datos.
- Las inserciones en un servicio de lectura y escritura pueden impedir que otro servicio de lectura y escritura pase a inactividad si esta función está habilitada. Hay situaciones en las que un servicio realiza operaciones de fusión en segundo plano para otro servicio. Esas operaciones en segundo plano pueden impedir que el segundo servicio pase a inactividad. Una vez que finalicen las operaciones en segundo plano, el servicio quedará inactivo. Los servicios de solo lectura no se ven afectados.
Avisos útiles
- Versiones de ClickHouse: El calendario de actualizaciones se rige por la configuración del servicio principal. Los servicios secundarios no pueden tener un calendario de versiones independiente del servicio principal.
-
Las consultas
CREATE/RENAME/DROP DATABASEpodrían bloquearse de forma predeterminada por servicios inactivos o detenidos. Si estas consultas se ejecutan cuando el servicio está inactivo o detenido, pueden quedarse colgadas. Para evitarlo, puedes ejecutar consultas de administración de bases de datos consettings distributed_ddl_task_timeout=0a nivel de sesión o por consulta.
- Servicio principal con una réplica Actualmente, el comportamiento predeterminado permite que los servicios secundarios tengan una réplica; el servicio principal debe tener al menos 2. Para habilitar servicios principales con una sola réplica, póngase en contacto con el equipo de soporte. Este comportamiento estará activado de forma predeterminada en el segundo trimestre de 2026.
- Inactividad del servicio principal: la inactividad automática del servicio principal está activada de forma predeterminada.
Precios
Copias de seguridad
- Como todos los servicios de un mismo warehouse comparten el mismo almacenamiento, las copias de seguridad se realizan solo en el servicio principal (inicial). De este modo, se respaldan los datos de todos los servicios del warehouse.
- Si restaura una copia de seguridad desde el servicio principal de un warehouse, esta se restaurará en un servicio completamente nuevo, sin conexión con el warehouse existente. A continuación, puede añadir más servicios al nuevo servicio en cuanto finalice la restauración.
Cómo configurar un warehouse
Crear un warehouse
Fig. 7 - Haga clic en el signo más para crear un nuevo servicio en un warehouse En la pantalla de creación del servicio, el servicio original aparecerá seleccionado en la lista desplegable como origen de los datos del nuevo servicio. Una vez creados, estos dos servicios formarán un warehouse.
Cambiar el nombre de un warehouse
- Puede seleccionar “Ordenar por warehouse” en la página de servicios, en la esquina superior derecha, y luego hacer clic en el icono del lápiz junto al nombre del warehouse.
- Puede hacer clic en el nombre del warehouse en cualquiera de los servicios y cambiarle el nombre allí.
Eliminación de un warehouse
- Elimina todos los servicios creados además del primer servicio;
- Elimina el primer servicio (advertencia: en este paso se eliminarán todos los datos del warehouse).