SELECT. Usted habilita una consulta mediante settings a nivel de consulta, session o usuario, y ClickHouse asigna workers del grupo para ejecutarla a través de su service y su endpoint existentes.
Esto se diferencia de la separación de cómputo-cómputo. Un warehouse proporciona compute dedicado y de larga duración mediante varios services que comparten datos. On-Demand Compute proporciona workers temporales de un grupo compartido a través de su service existente.
On-Demand Compute aprovecha capabilities completamente nuevas:
- Ejecución de consultas stateless con on-demand compute
- Un nuevo CBO (cost-based optimizer)
- Una nueva distributed query execution
Cuándo usar On-Demand Compute
Durante la private preview, use On-Demand Compute para las consultasSELECT elegibles y de uso intensivo de compute que desee ejecutar fuera del compute del primary service:
- Consultas ad hoc y analíticas: ejecute consultas
SELECTde uso intensivo de compute en workers adicionales. - Cargas de trabajo de lectura no críticas: traslade determinadas lecturas fuera del primary service.
- Consultas sobre lagos de datos: consulte datos compatibles de Apache Iceberg, Delta Lake o
SharedMergeTreeen workers adicionales. - Compute adicional temporal: solicite workers para consultas elegibles sin redimensionar el primary service.
SELECT. Los workers no ejecutan consultas INSERT, DDL, mutations ni background operations.
Cómo funciona
- Envías una consulta
SELECTelegible a tu ClickHouse Cloud service solicitando un número específico de workers. Tu endpoint, la authentication y la configuración de RBAC no cambian - Tu cluster se conecta entonces al grupo y solicita el número de workers especificado
- Los workers se arriendan durante al menos 60 segundos; si la consulta dura más, el lease se renueva automáticamente
- Los workers reciben la consulta y la ejecutan
- La respuesta se devuelve a tu client
- Los workers se borran.
8 vCPUs y 32 GiB de memoria. Usa distributed_plan_workers_num para especificar cuántos workers solicita la consulta.
Uso de compute bajo demanda
Settings
Utilice estos ajustes para empezar a usar on-demand compute:Ejemplo
Algunas consultas no se pueden distribuir entre los workers:distributed_plan_fallback_to_local_execution:
Consultas concurrentes
Las consultas concurrentes de un mismo ClickHouse Cloud service pueden compartir los workers asignados. ClickHouse solicita workers adicionales únicamente cuando una consulta necesita más workers de los que ya están asignados al service. Por ejemplo, si dos consultas concurrentes solicitan tres workers cada una, pueden compartir esos mismos tres workers. Si otra consulta solicita cinco workers, ClickHouse puede usar los tres workers asignados y solicitar dos más al grupo. Vea el siguiente ejemplo:Cuando el grupo no puede satisfacer la solicitud
La disponibilidad de workers no está garantizada durante la private preview. Si hay menos workers disponibles de los solicitados, la consulta se ejecuta con los workers que ClickHouse pueda asignar. Por ejemplo, una solicitud de cinco workers puede ejecutarse con tres. Si no se puede arrendar ningún worker, la consulta falla. Reintente la consulta. Si el problema persiste, póngase en contacto con el equipo de su cuenta de ClickHouse: es posible que el grupo de vista previa esté agotado o mal dimensionado.Monitoring
Utilizasystem.query_log en tu service para saber cuántos workers se asignaron a tu consulta.
Número de workers asignados
Regiones disponibles
On-Demand Compute es regional: los workers se ejecutan en la misma región que su servicio.Precios
Durante la private preview, On-Demand Compute es gratuito, con un límite de uso (consulte Limitaciones). Consulte a su account team de ClickHouse si necesita ampliar ese límite. Los precios se aplicarán cuando finalice la preview. Se notificará a los participantes de la preview antes de que la feature pase a beta y antes de que se apliquen cargos. El modelo previsto es el mismo que el del compute de ClickHouse Cloud: se paga por el compute que se utiliza (tiempo de worker en lease), no por los datos escaneados ni por las filas leídas.Limitaciones
Durante la private preview se aplican las siguientes limitaciones. Pueden existir otras. Informe de cualquier comportamiento inesperado al soporte de ClickHouse o a su account team.- Solo consultas
SELECT. Los workers no ejecutan consultasINSERT, mutations, DDL ni background operations. - Formato compatible. La private preview admite Apache Iceberg, Delta Lake y
SharedMergeTree. - Parallel replicas. Las parallel replicas deben estar deshabilitadas.
- Tamaño del worker. Cada worker cuenta con
8 vCPUsy32 GiBde memoria. - Límite de workers. Cada consulta puede solicitar hasta cinco workers durante la private preview.
- Capacidad del grupo. La disponibilidad de workers no está garantizada. Una consulta puede recibir menos workers de los solicitados. Si no hay workers disponibles, la consulta falla.
- Rendimiento. El rendimiento varía según la consulta. La asignación de workers, la planificación distribuida y la transferencia de las etapas del plan pueden añadir latency. Algunas formas de consulta pueden rendir peor que si se ejecutaran en el primary service (sus consultas habituales de menos de un segundo probablemente rendirán mejor en su cluster)
- Compatibilidad de consultas. El distributed planner no puede ejecutar de forma remota todos los query plans. Las consultas no compatibles pueden devolver una excepción
SUPPORT_IS_DISABLED.
Roadmap
On-Demand Compute es un punto de partida. Trabajos en curso o previstos:- Resolver las limitaciones conocidas (huecos de
SUPPORT_IS_DISABLED) - Grupos de workers de distintos tamaños
- Estabilizar el rendimiento de las consultas frente a la ejecución stateful
- Compatibilidad con fusiones en segundo plano
- Precios
- Calibración del autoscaler del grupo de workers
- Observabilidad integrada
- Permisos dedicados para On-Demand Compute
- Ampliación de las cargas de trabajo de lago de datos (escritura, compaction, etc…)
Seguridad
Los workers provienen de un grupo precalentado que se comparte entre los services de una misma región, por lo que existe una regla no negociable: un worker atiende a un único service a la vez y nunca se traspasa de un service a otro. La forma de acceder a ClickHouse no cambia en absoluto. Los clients siguen conectándose a su service endpoint con la authentication que ya utilizan, y su service es lo único que se comunica con los workers en su nombre. Los workers no exponen ningún endpoint al cliente.- Un service por worker: un worker se asigna en lease a un único service mientras dure ese lease. Nunca lo comparten dos services al mismo tiempo.
- Sin reutilización entre services: cuando finaliza un lease, el worker se destruye y se sustituye por uno nuevo. Un worker nunca se reasigna a otro service.
- Sin datos persistentes: los workers no conservan almacenamiento persistente ni sobreviven al final de un lease.
- La misma región que su service: los workers se ejecutan en la misma región que el service que los toma en lease, conforme a estrictas reglas de residencia de datos.
- Sus access controls existentes siguen vigentes: las IP access lists y los private endpoints rigen su service endpoint exactamente igual que antes. On-Demand Compute no añade ningún endpoint que deba configurar o proteger.
- Su authentication y RBAC actuales: las consultas se ejecutan con el mismo USER y los mismos privileges que cualquier otra consulta de su service. Los workers no tienen una identity ni un modelo de permission propios.
Aislamiento de red
Mientras un worker está arrendado a tu service, la plataforma permite el tráfico de red entre ese worker y tu service, y bloquea todo lo demás. La restricción se aplica en la capa de red y no en el query engine, por lo que no depende de la consulta, de sus settings ni del plan que genere el optimizer.- Solo tu service puede alcanzar tus workers. El path existe para el lease actual del worker y únicamente para ese service.
- Los workers sin asignar son inalcanzables. Un worker que espera en el grupo no tiene ninguna ruta de red hacia o desde ningún service hasta que se arrienda.
- Los workers arrendados a distintos services no pueden comunicarse entre sí. Los workers de un mismo lease intercambian entre ellos plan stages y resultados intermedios. Los workers de leases distintos permanecen aislados entre sí, aunque compartan un grupo.
- El path se elimina junto con el worker. Finalizar un lease destruye el worker, con lo que desaparece lo único que el tráfico tenía permitido alcanzar.
- El path de las requests se mantiene acotado. Tu service se comunica con el servicio de asignación de workers para arrendar y renovar workers. Ese path no transporta datos de consultas y se limita a la assignment API.
Autenticación y autorización internas
El aislamiento de red determina qué puede llegar a un worker. La autenticación determina qué se le permite hacer a un llamador una vez que llega allí, y ambos mecanismos se aplican de forma independiente: un llamador debe cumplir con los dos. Cada connection entre su service, el servicio de asignación de workers y los workers está autenticada. No se confía en nada: todas las credenciales las emite la plataforma y se entregan por lease.- Una credencial por worker: cuando se otorgan workers en lease a su service, la plataforma emite un token firmado y único para cada uno. Cada token funciona únicamente para ese worker y únicamente para su service.
- De corta duración y vinculados al lease: los tokens caducan junto con el lease que los generó. Al renovar un lease se emiten tokens nuevos y, una vez finalizado un lease, sus tokens ya no autentican nada.
- Verificados contra la plataforma: un worker valida el token que se le presenta contra el servicio de identity de la plataforma, en lugar de confiar en los datos suministrados en la request.
FAQ
¿On-Demand Compute es open source?
¿On-Demand Compute es open source?
make_distributed_plan y el CBO existen en ClickHouse OSS, pero el grupo compartido de workers y la ejecución stateless son exclusivos de Cloud.¿Necesito una versión específica para unirme al private preview?
¿Necesito una versión específica para unirme al private preview?
¿Cómo será el pricing?
¿Cómo será el pricing?
¿Puedo usar esto en production?
¿Puedo usar esto en production?
¿En qué se diferencia esto del autoscaling de mi service?
¿En qué se diferencia esto del autoscaling de mi service?
SELECT queries elegibles acceso temporal a workers de un grupo administrado sin cambiar el tamaño del primary service. El autoscaling gestiona la capacidad continua del service, mientras que On-Demand Compute proporciona compute temporal para cargas de trabajo específicos.¿Dónde puedo hacer preguntas?
¿Dónde puedo hacer preguntas?
¿Dónde puedo informar errores?
¿Dónde puedo informar errores?
query_id, su Service ID y la excepción completa.¿Puede otro ClickHouse Cloud service acceder a los workers que ejecutan mi query?
¿Puede otro ClickHouse Cloud service acceder a los workers que ejecutan mi query?
¿Otro service reutiliza un worker después de que mi query finaliza?
¿Otro service reutiliza un worker después de que mi query finaliza?
¿Está disponible en ClickHouse BYOC o ClickHouse Private?
¿Está disponible en ClickHouse BYOC o ClickHouse Private?