SELECT. Você habilita uma consulta por meio de settings em nível de consulta/session/USER, e o ClickHouse atribui workers do pool para executá-la por meio do seu service e endpoint existentes.
Isso é diferente da separação de processamento. Um warehouse oferece processamento dedicado e de longa duração por meio de múltiplos services que compartilham dados. O On-Demand Compute oferece workers temporários de um pool compartilhado, por meio do seu service existente.
O On-Demand Compute utiliza capabilities totalmente novas:
- Execução de consulta sem estado com On-Demand Compute
- Um novo CBO (cost-based optimizer)
- Uma nova execução de consulta distribuída
Quando usar o On-Demand Compute
Durante o private preview, use o On-Demand Compute para consultasSELECT elegíveis e de uso intensivo de computação que você queira executar fora do compute do primary service:
- Consultas ad hoc e analíticas: execute consultas
SELECTde uso intensivo de computação em workers adicionais. - Workloads de leitura não críticas: tire leituras selecionadas do primary service.
- Consultas em lago de dados: consulte dados compatíveis do Apache Iceberg, Delta Lake ou
SharedMergeTreeem workers adicionais. - Compute adicional temporário: solicite workers para consultas elegíveis sem redimensionar o primary service.
SELECT. Os workers não executam consultas INSERT, DDL, mutações nem background operations.
Como funciona
- Você envia uma consulta
SELECTelegível ao seu ClickHouse Cloud service solicitando um número específico de workers. Seu endpoint, sua authentication e sua configuração de RBAC permanecem inalterados - Seu cluster então se conecta ao pool e solicita o número especificado de workers
- Os workers são leased por uma duração de pelo menos 60 segundos; se a consulta durar mais, o lease é renovado automaticamente
- Os workers recebem a consulta e a executam
- A resposta é então enviada de volta ao seu client
- Os workers são apagados.
8 vCPUs e 32 GiB de memória. Use distributed_plan_workers_num para especificar quantos workers a consulta solicita.
Usando compute sob demanda
Settings
Use estas configurações para começar a usar o on-demand compute:Exemplo
Algumas consultas não podem ser distribuídas entre os workers:distributed_plan_fallback_to_local_execution:
Consultas concorrentes
Consultas concorrentes do mesmo ClickHouse Cloud service podem compartilhar os workers atribuídos. O ClickHouse solicita workers adicionais somente quando uma consulta requer mais workers do que os já atribuídos ao service. Por exemplo, se duas consultas concorrentes solicitarem três workers cada, elas podem compartilhar os mesmos três workers. Se outra consulta solicitar cinco workers, o ClickHouse pode usar os três workers atribuídos e solicitar mais dois do pool. Veja o exemplo abaixo:Quando o pool não consegue atender à requisição
A disponibilidade de workers é de melhor esforço durante o private preview. Se houver menos workers disponíveis do que o solicitado, a consulta é executada com os workers que o ClickHouse conseguir atribuir. Por exemplo, uma requisição de cinco workers pode ser executada com três. Se nenhum worker puder ser alocado, a consulta falha. Tente executar a consulta novamente. Se o problema persistir, entre em contato com a equipe de conta da ClickHouse — o pool de preview pode estar esgotado ou dimensionado incorretamente.Monitoring
Use asystem.query_log no seu service para saber quantos workers foram alocados à sua consulta.
Número de workers alocados
Regiões disponíveis
O On-Demand Compute é regional: os workers são executados na mesma região do seu serviço.Preço
Durante o private preview, o compute sob demanda é gratuito, sujeito a um limite de uso (consulte Limitações). Fale com a account team da ClickHouse caso precise que esse limite seja aumentado. O preço será definido quando o preview terminar. Os participantes do preview serão notificados antes de o recurso ser promovido para beta e antes do início de qualquer cobrança. O modelo previsto é o mesmo do compute do ClickHouse Cloud: você paga pelo compute que utiliza (tempo de worker alocado), e não por dados varridos ou linhas lidas.Limitações
As limitações a seguir se aplicam durante o private preview. Outras limitações podem se aplicar. Relate comportamentos inesperados ao suporte do ClickHouse ou à sua account team.- Apenas consultas
SELECT. Os workers não executam consultasINSERT, mutações, DDL nem background operations. - Formato com suporte. O private preview oferece suporte a Apache Iceberg, Delta Lake e
SharedMergeTree. - Parallel replicas. As parallel replicas devem estar desabilitadas.
- Tamanho do worker. Cada worker tem
8 vCPUse32 GiBde memória. - Limite de workers. Cada consulta pode solicitar até cinco workers durante o private preview.
- Capacidade do pool. A disponibilidade de workers é de melhor esforço. Uma consulta pode receber menos workers do que solicitou. Se nenhum worker estiver disponível, a consulta falha.
- Desempenho. O desempenho varia conforme a consulta. A atribuição de workers, o planejamento distribuído e a transferência dos estágios do plano podem adicionar latência. Alguns formatos de consulta podem apresentar desempenho inferior ao da execução no primary service (suas consultas típicas de menos de um segundo provavelmente terão desempenho melhor no seu cluster)
- Compatibilidade de consultas. O distributed planner não consegue executar remotamente todos os planos de consulta. Consultas sem suporte podem retornar uma exceção
SUPPORT_IS_DISABLED.
Roadmap
O On-Demand Compute é apenas o começo. Trabalhos em andamento ou planejados:- Eliminar limitações conhecidas (lacunas de
SUPPORT_IS_DISABLED) - Pools com workers de tamanhos diferentes
- Estabilizar o desempenho de consultas em comparação com a execução stateful
- Suporte a background merge
- Precificação
- Calibração do escalonador automático do pool de workers
- Observabilidade integrada
- Permissões dedicadas para o On-Demand Compute
- Expansão de workloads de Data Lake (escrita, compaction, etc…)
Segurança
Os workers vêm de um pool pré-aquecido compartilhado entre services na mesma region, por isso existe uma regra inegociável: um worker atende a um service por vez e nunca é repassado de um service para outro. Nada muda na forma como você acessa o ClickHouse. Os clientes continuam se conectando ao endpoint do seu service com a authentication existente, e apenas o seu service se comunica com os workers em seu nome. Os workers não expõem nenhum endpoint ao cliente.- Um service por worker: um worker é alocado (lease) a um único service durante toda a duração desse lease. Ele nunca é compartilhado por dois services ao mesmo tempo.
- Sem reutilização entre services: quando o lease termina, o worker é destruído e substituído por um novo. Um worker nunca é reatribuído a outro service.
- Sem dados persistentes: os workers não mantêm armazenamento persistente e não sobrevivem ao término de um lease.
- Mesma region do seu service: os workers são executados na mesma region do service que os aloca, seguindo regras rígidas de residência de dados.
- Seus access controls existentes continuam valendo: IP access lists e private endpoints regem o endpoint do seu service exatamente como antes. O On-Demand Compute não adiciona nenhum endpoint para você configurar ou proteger.
- Sua authentication e RBAC existentes: as consultas são executadas com o mesmo USER e os mesmos privileges de qualquer outra consulta no seu service. Os workers não possuem identity nem modelo de permission próprios.
Isolamento de rede
Enquanto um worker está em lease para o seu service, a plataforma permite o tráfego de rede entre esse worker e o seu service e bloqueia todo o restante. A restrição é aplicada na camada de rede, e não no engine de consulta, portanto não depende da consulta, de suas configurações nem do plan produzido pelo optimizer.- Somente o seu service consegue alcançar os seus workers. O path existe durante o lease atual do worker e apenas para aquele service.
- Workers não atribuídos são inalcançáveis. Um worker aguardando no pool não tem nenhum path de rede de ou para qualquer service até entrar em lease.
- Workers em lease para services diferentes não conseguem se alcançar. Os workers de um mesmo lease trocam entre si estágios do plano e resultados intermediários. Workers de leases diferentes permanecem isolados uns dos outros, mesmo compartilhando um pool.
- O path é removido junto com o worker. Encerrar um lease destrói o worker, o que elimina a única coisa que o tráfego tinha permissão para alcançar.
- O path de request permanece restrito. Seu service acessa o serviço de assignment de workers para fazer lease e renovar workers. Esse path não transporta dados de consulta e se limita à API de assignment.
Authentication e autorização internas
O isolamento de rede determina o que pode alcançar um worker. A authentication determina o que um caller tem permissão de fazer depois de chegar lá, e as duas são aplicadas de forma independente: um caller precisa atender às duas. Toda connection entre o seu service, o serviço de atribuição de workers e os workers é autenticada. Nada é considerado confiável: todas as credentials são emitidas pela plataforma e distribuídas por lease.- Uma credential por worker: quando workers são cedidos em lease ao seu service, a plataforma emite um token assinado único para cada um deles. Cada token funciona apenas para aquele worker específico e apenas para o seu service.
- De curta duração e vinculados ao lease: os tokens expiram junto com o lease que os originou. Renovar um lease emite tokens novos e, uma vez encerrado o lease, seus tokens deixam de autenticar qualquer coisa.
- Verificados junto à plataforma: o worker valida o token que lhe é apresentado no serviço de identity da plataforma, em vez de confiar em qualquer informação fornecida na request.
FAQ
O On-Demand Compute é open source?
O On-Demand Compute é open source?
make_distributed_plan e o CBO existem no ClickHouse OSS, mas o pool compartilhado de workers e a execução sem estado são exclusivos do Cloud.Preciso de uma versão específica para participar do private preview?
Preciso de uma versão específica para participar do private preview?
Como será o preço?
Como será o preço?
Posso usar isso em produção?
Posso usar isso em produção?
Qual é a diferença em relação ao autoscaling do meu service?
Qual é a diferença em relação ao autoscaling do meu service?
SELECT elegíveis acesso temporário a workers de um pool gerenciado, sem alterar o tamanho do primary service. O autoscaling gerencia a capacidade contínua do service, enquanto o On-Demand Compute fornece compute temporário para workloads específicas.Onde posso fazer perguntas?
Onde posso fazer perguntas?
Onde posso relatar bugs?
Onde posso relatar bugs?
query_id, o Service ID e a exceção completa.Outro ClickHouse Cloud service pode acessar os workers que executam a minha consulta?
Outro ClickHouse Cloud service pode acessar os workers que executam a minha consulta?
Um worker é reutilizado por outro service depois que a minha consulta termina?
Um worker é reutilizado por outro service depois que a minha consulta termina?
Isso está disponível no ClickHouse BYOC ou no ClickHouse Private?
Isso está disponível no ClickHouse BYOC ou no ClickHouse Private?