Esta guía ofrece una visión general de qué esperar, tanto a nivel funcional como operativo, en ClickHouse Cloud. Aunque ClickHouse Cloud se basa en la distribución de código abierto de ClickHouse, puede haber algunas diferencias en la arquitectura y en la implementación. Puede resultarle interesante y útil, como contexto, este blog sobre cómo creamos ClickHouse Cloud.
Arquitectura de ClickHouse Cloud
ClickHouse Cloud simplifica significativamente la carga operativa y reduce los costos de ejecutar ClickHouse a escala. No es necesario dimensionar el despliegue por adelantado, configurar la replicación para alta disponibilidad, segmentar manualmente los datos, ampliar los servidores cuando aumente la carga de trabajo ni reducirlos cuando no se utilicen; nosotros nos encargamos de ello.
Estos beneficios son el resultado de las decisiones arquitectónicas en las que se basa ClickHouse Cloud:
- El cómputo y el almacenamiento están separados y, por tanto, pueden escalarse automáticamente de forma independiente, por lo que no tiene que sobreaprovisionar ni almacenamiento ni cómputo en configuraciones estáticas de instancias.
- El almacenamiento por niveles sobre almacenamiento de objetos y el almacenamiento en caché multinivel proporcionan una escalabilidad prácticamente ilimitada y una buena relación precio-rendimiento, por lo que no tiene que dimensionar por adelantado su partición de almacenamiento ni preocuparse por los altos costos de almacenamiento.
- La alta disponibilidad está activada de forma predeterminada y la replicación se gestiona de forma transparente, para que pueda centrarse en crear sus aplicaciones o analizar sus datos.
- El escalado automático para cargas de trabajo continuas y variables está activado de forma predeterminada, por lo que no tiene que dimensionar el servicio por adelantado, ampliar sus servidores cuando aumente la carga de trabajo ni reducirlos manualmente cuando haya menos actividad
- La hibernación fluida para cargas de trabajo intermitentes está activada de forma predeterminada. Pausamos automáticamente sus recursos de cómputo tras un período de inactividad y los reanudamos de forma transparente cuando llega una nueva consulta, para que no tenga que pagar por recursos inactivos.
- Los controles avanzados de escalado permiten establecer un máximo de autoescalado para un mayor control de costos o un mínimo de autoescalado para reservar recursos de cómputo para aplicaciones con requisitos de rendimiento específicos.
Funcionalidades
ClickHouse Cloud ofrece acceso a un conjunto seleccionado de funcionalidades de la distribución de código abierto de ClickHouse. En las tablas siguientes se describen algunas funciones que actualmente están deshabilitadas en ClickHouse Cloud.
Motores de bases de datos y tablas
ClickHouse Cloud es, de forma predeterminada, un servicio replicado y de alta disponibilidad, basado en la familia de motores de tabla SharedMergeTree. Al crear una tabla con un motor estándar de la familia MergeTree, Cloud sustituye automáticamente el motor correspondiente por Shared*. No debes añadir tú mismo un prefijo Shared o Replicated.
| Especificas | Cloud usa |
|---|---|
MergeTree (o ningún motor) |
SharedMergeTree |
ReplacingMergeTree |
SharedReplacingMergeTree |
SummingMergeTree |
SharedSummingMergeTree |
AggregatingMergeTree |
SharedAggregatingMergeTree |
CollapsingMergeTree |
SharedCollapsingMergeTree |
VersionedCollapsingMergeTree |
SharedVersionedCollapsingMergeTree |
GraphiteMergeTree |
SharedGraphiteMergeTree |
Los motores Replicated* se convierten en sus equivalentes Shared*. La sustitución puede verse en SHOW CREATE TABLE, que muestra el motor Shared* aunque tu sentencia especifique la variante simple.
Los siguientes motores de tabla también son compatibles y se usan tal cual. El motor de tabla MySQL compatible es distinto del motor de base de datos MySQL no compatible:
- URL
- View
- MaterializedView
- GenerateRandom
- Null
- Buffer
- Memory
IcebergS3yIcebergAzure
- Deltalake
- Hudi
- MySQL
- MongoDB
- NATS
- RabbitMQ
- PostgreSQL
- S3
- Kafka
Los motores de tabla experimentales PaimonS3 y PaimonAzure pueden habilitarse en determinados servicios de ClickHouse Cloud. Ponte en contacto con Support para confirmar la disponibilidad.
Interfaces
ClickHouse Cloud admite HTTPS, interfaces nativas y el protocolo de red de MySQL. Próximamente también ofrecerá compatibilidad con más interfaces, como Postgres.
Diccionarios
Los diccionarios son una forma habitual de acelerar las búsquedas en ClickHouse. Actualmente, ClickHouse Cloud admite diccionarios de PostgreSQL, MySQL, servidores remotos y locales de ClickHouse, Redis, MongoDB y fuentes HTTP.
Consultas federadas
Ofrecemos compatibilidad con consultas federadas de ClickHouse para la comunicación entre clústeres en la nube y con clústeres externos autogestionados de ClickHouse. Actualmente, ClickHouse Cloud admite consultas federadas mediante los siguientes motores de integración:
IcebergS3yIcebergAzurePaimonS3yPaimonAzure(experimental; contacte con Support para conocer la disponibilidad)- Deltalake
- Hudi
- MySQL
- MongoDB
- NATS
- RabbitMQ
- PostgreSQL
- S3
Las consultas federadas con algunos motores externos de bases de datos y de tablas, como SQLite, ODBC, JDBC, Redis, HDFS y Hive, todavía no son compatibles.
Funciones definidas por el usuario
Las funciones definidas por el usuario en ClickHouse Cloud se encuentran en beta pública.
Comportamiento de los ajustes
Esto significa:
- Los ajustes a nivel de sesión (establecidos mediante la instrucción
SET) no se propagan al contexto de ejecución de las UDFs - Las UDFs no heredan los ajustes del perfil de usuario
- Los ajustes a nivel de consulta no se aplican durante la ejecución de las UDFs
Funcionalidades experimentales
Las funcionalidades experimentales están deshabilitadas en los servicios de ClickHouse Cloud para garantizar la estabilidad de los despliegues de servicios.
Colecciones con nombre
Las colecciones con nombre creadas mediante DDL pueden habilitarse en algunos servicios de ClickHouse Cloud. Contacta con Support para confirmar la disponibilidad. Las colecciones con nombre definidas en archivos de configuración no están disponibles porque los usuarios no pueden modificar los archivos de configuración del servidor en ClickHouse Cloud.
Valores predeterminados y consideraciones operativas
A continuación se indican los ajustes predeterminados de los servicios de ClickHouse Cloud. En algunos casos, estos ajustes son fijos para garantizar el correcto funcionamiento del servicio y, en otros, pueden modificarse.
Límites operacionales
max_parts_in_total: 10,000
El valor predeterminado de la configuración max_parts_in_total para las tablas MergeTree se ha reducido de 100,000 a 10,000. El motivo de este cambio es que hemos observado que un gran número de partes de datos probablemente provoque un inicio lento de los servicios en la nube. Un gran número de partes suele indicar que se ha elegido una clave de partición demasiado granular, algo que normalmente ocurre por accidente y debe evitarse. Este cambio en el valor predeterminado permitirá detectar estos casos antes.
max_concurrent_queries: 1,000
Se aumentó esta configuración a nivel de servidor del valor predeterminado de 100 a 1000 para permitir una mayor concurrencia.
Esto da como resultado número de réplicas * 1,000 consultas concurrentes para un servicio. Un servicio con una sola réplica admite hasta 1000 consultas concurrentes independientemente del nivel. Los servicios con varias réplicas en los niveles Scale y Enterprise admiten hasta 1000 consultas concurrentes por réplica.
max_table_size_to_drop: 1,000,000,000,000
Se aumentó este ajuste de 50 GB para permitir eliminar tablas o particiones de hasta 1 TB.
Ajustes del sistema
ClickHouse Cloud está optimizado para cargas de trabajo variables y, por ese motivo, la mayoría de los ajustes del sistema no se pueden configurar en este momento. No prevemos que la mayoría de los usuarios necesiten ajustar los ajustes del sistema, pero si tiene alguna pregunta sobre la optimización avanzada del sistema, póngase en contacto con ClickHouse Cloud Support.
Administración avanzada de la seguridad
Como parte de la creación del servicio de ClickHouse, creamos una base de datos predeterminada y el usuario default, que tiene amplios permisos sobre esta base de datos. Este usuario inicial puede crear usuarios adicionales y asignarles permisos sobre esta base de datos. Más allá de esto, por el momento no se admite habilitar las siguientes funciones de seguridad dentro de la base de datos mediante autenticación Kerberos, LDAP o certificados SSL X.509.
Lista de funcionalidades no compatibles
Las siguientes tablas enumeran las funcionalidades y los procedimientos autogestionados que no son compatibles con ClickHouse Cloud. Cada entrada indica la funcionalidad específica no compatible, incluso cuando su página de origen también abarca funcionalidades compatibles.
Infraestructura y operaciones gestionadas
| Funcionalidad no compatible | Documentación |
|---|---|
Implementación y configuración autogestionadas de ClickHouse Keeper |
Guía de Keeper, Conexiones seguras a ZooKeeper |
| Aprovisionamiento manual de certificados TLS y configuración del servidor | Aprovisionamiento de ACME, Configuración de TLS |
Configuración manual de niveles de almacenamiento activo/intermedio/frío con TTL |
Guía |
| Ejecución de pruebas de rendimiento de hardware autogestionado | Guía |
| Aplicación de recomendaciones operativas para entornos autogestionados | Guía |
Autenticación y seguridad
| Funcionalidad no compatible | Documentación |
|---|---|
| Autenticación externa mediante HTTP | Referencia |
| Autenticación externa mediante Kerberos | Referencia |
| Autenticación LDAP y asignación de roles | Configuración, Autenticador |
| Autenticación mediante certificado X.509 | Autenticación de usuarios, Autenticador externo |
Interfaces e integraciones
| Funcionalidad no compatible | Documentación |
|---|---|
| Interfaz del protocolo wire de PostgreSQL | Referencia |
| Interfaz SSH con PTY | Referencia |
Motor de replicación MaterializedPostgreSQL |
Guía de ClickPipes, Guía del conector, Motor de base de datos, Motor de tabla |
Motor de tabla ODBC |
Referencia |
| Integración de almacenamiento de objetos compatible con S3 de MinIO | Guía |
| Integración de almacenamiento de objetos compatible con S3 de Tigris | Guía |
Motores de bases de datos y de tablas
| Funcionalidad no compatible | Documentación |
|---|---|
Motor de base de datos MySQL |
Referencia |
Motor de tabla EmbeddedRocksDB |
Referencia |
Motor de tabla HDFS |
Referencia |
Motor de tabla Hive |
Referencia |
Motor de tabla JDBC |
Referencia |
Motor de tabla Redis para consultas federadas |
Referencia |
Motor de tabla SQLite |
Referencia |
Motor de tabla TimeSeries |
Referencia |
Motor de tabla YTsaurus |
Referencia |
Motores de tabla de la familia Log (Log, StripeLog y TinyLog) |
Descripción general de la familia, Log, StripeLog, TinyLog |
Diccionarios y configuración del servidor
| Funcionalidad no compatible | Documentación |
|---|---|
Colecciones con nombre y las sentencias CREATE NAMED COLLECTION y ALTER NAMED COLLECTION |
Descripción general, Crear, Modificar |
| Configuración de diccionarios basada en archivos | Referencia |
| Diccionarios de geobase integrados | Referencia |
Fuentes locales de diccionario YAMLRegExpTree |
Guía de diseños, Referencia de fuentes |
Fuente de diccionario YTsaurus |
Referencia |
| Diccionarios de tokenizadores japoneses configurados en el servidor | Referencia |
Formatos de datos y códecs
| Funcionalidad no compatible | Documentación |
|---|---|
Formato CapnProto con archivos de esquema del lado del servidor |
Referencia de formatos, Guía |
Formatos Protobuf, ProtobufList y ProtobufSingle con archivos de esquema del lado del servidor |
Guía, ProtobufList, ProtobufSingle |
Códecs ZSTD_QAT y DEFLATE_QPL obsoletos |
ZSTD_QAT, DEFLATE_QPL |
Funciones y características experimentales
| Funcionalidad no compatible | Documentación |
|---|---|
| Funciones experimentales de procesamiento del lenguaje natural | Referencia |
| Transacciones experimentales de múltiples sentencias con commit y rollback | Guía |
| Funciones experimentales de introspección de transacciones | transactionID, transactionLatestSnapshot, transactionOldestSnapshot |
Funciones de ventana temporal para WindowView |
Referencia |
WindowView experimental |
Referencia |
| Funciones definidas por el usuario en WebAssembly | Descripción general, Guía |
| Funciones definidas por el usuario ejecutables basadas en controladores | Referencia |
Función de tabla filesystem para archivos locales del servidor |
Referencia |
Administración y control de acceso
| Funcionalidad no compatible | Documentación |
|---|---|
Operaciones de estadísticas de columnas con ALTER TABLE |
Referencia |
Suplantación de usuarios con EXECUTE AS |
Referencia |
| Privilegios específicos de motores de tabla | Concesión, Configuración del servidor |
El atajo de privilegio GRANT ALL |
Referencia |
Apagado del servidor con SYSTEM SHUTDOWN |
Referencia |
Inicio y detención de fetches en segundo plano con sentencias SYSTEM |
SYSTEM STOP FETCHES, SYSTEM START FETCHES |
Inicio y detención de merges en segundo plano con sentencias SYSTEM |
SYSTEM STOP MERGES, SYSTEM START MERGES |
Inicio y detención de merges de TTL en segundo plano con sentencias SYSTEM |
SYSTEM STOP TTL MERGES, SYSTEM START TTL MERGES |
Hoja de ruta
Estamos evaluando el interés por muchas otras funcionalidades en ClickHouse Cloud. Si tienes comentarios y quieres solicitar una funcionalidad específica, envíala aquí.