Skip to main content
Cotas no ClickHouse CloudAs cotas são compatíveis com o ClickHouse Cloud, mas devem ser criadas usando a sintaxe DDL. A abordagem de configuração em XML documentada abaixo não tem suporte.
As cotas permitem limitar o uso de recursos durante um período de tempo ou acompanhar esse uso. As cotas são configuradas na configuração do usuário, que geralmente é ‘users.xml’. O sistema também tem um recurso para limitar a complexidade de uma única consulta. Consulte a seção Restrictions on query complexity. Em contraste com as restrições de complexidade de consulta, as cotas:
  • Impõem restrições a um conjunto de consultas que podem ser executadas ao longo de um período, em vez de limitar uma única consulta.
  • Contabilizam os recursos consumidos em todos os servidores remotos no processamento de consultas distribuídas.
Vamos examinar a seção do arquivo ‘users.xml’ que define as cotas.
Por padrão, a QUOTA acompanha o consumo de recursos a cada hora, sem limitar o uso. O consumo de recursos calculado para cada intervalo é registrado no log do servidor após cada solicitação.
Para a QUOTA ‘statbox’, as restrições são definidas para cada hora e para cada 24 horas (86.400 segundos). O intervalo de tempo é contado a partir de um momento fixo definido pela implementação. Em outras palavras, o intervalo de 24 horas não necessariamente começa à meia-noite. Quando o intervalo termina, todos os valores coletados são zerados. Na próxima hora, o cálculo da QUOTA recomeça. Aqui estão as quantidades que podem ser restringidas: queries – O número total de requisições. query_selects – O número total de requisições SELECT. query_inserts – O número total de requisições INSERT. errors – O número de consultas que geraram uma exceção. result_rows – O número total de linhas retornadas como resultado. result_bytes - O tamanho total das linhas retornadas como resultado. read_rows – O número total de linhas de origem lidas das tabelas para executar a consulta em todos os servidores remotos. read_bytes - O tamanho total lido das tabelas para executar a consulta em todos os servidores remotos. written_bytes - O tamanho total de uma operação de gravação. execution_time – O tempo total de execução da consulta, em segundos (wall time). failed_sequential_authentications - O número total de falhas consecutivas de autenticação. queries_per_normalized_hash – O número máximo de execuções de uma mesma consulta normalizada. Consultas normalizadas são consultas com literais substituídos por placeholders, portanto SELECT 1 e SELECT 2 são consideradas a mesma consulta normalizada. Esse limite é acompanhado de forma independente para cada padrão distinto de consulta normalizada. Se o limite for excedido em pelo menos um intervalo de tempo, uma exceção será lançada com um texto informando qual restrição foi excedida, para qual intervalo e quando o novo intervalo começa (ou seja, quando as consultas podem ser enviadas novamente). As QUOTAs podem usar o recurso “QUOTA key” para contabilizar recursos de várias chaves de forma independente. Veja um exemplo:
Você também pode definir QUOTAs com base no hash normalizado da consulta, para que cada padrão de consulta distinto tenha seu próprio bucket de QUOTA independente. Na configuração XML, isso é escrito como <keyed_by_normalized_query_hash />:
O mesmo pode ser expresso com a sintaxe DDL:
Neste exemplo, o usuário pode executar até 100 vezes por hora cada consulta normalizada distinta. SELECT number FROM numbers(1) e SELECT number FROM numbers(2) compartilham o mesmo bucket (porque têm a mesma forma normalizada), mas SELECT number, number FROM numbers(1) usa um bucket separado. A QUOTA é atribuída aos usuários na seção ‘users’ da configuração. Consulte a seção “Direitos de acesso”. No processamento distribuído de consultas, os valores acumulados são armazenados no servidor que faz a solicitação. Portanto, se o usuário acessar outro servidor, a QUOTA nele vai “recomeçar”. Quando o servidor é reiniciado, as QUOTAs são redefinidas.
Última modificação em 3 de julho de 2026