Visão geral
SELECT e, no
processamento distribuído de consultas, elas são aplicadas separadamente em cada servidor.
Em geral, o ClickHouse verifica as restrições somente depois que as partes de dados são
totalmente processadas, em vez de verificá-las para cada linha. Isso pode
levar a situações em que as restrições sejam violadas enquanto a parte está sendo
processada.
Configurações de overflow_mode
overflow_mode, que define o que acontece
quando o limite é excedido e pode assumir um de dois valores:
throw: gera uma exceção (padrão).break: interrompe a execução da consulta e retorna o resultado parcial, como se os dados de origem tivessem se esgotado.
max_execution_time com break, algumas operações não conseguem retornar um
resultado parcial com segurança; portanto, em vez de produzir um resultado menor, são interrompidas sem produzir resultado algum. Uma função
que calcula um único valor é interrompida sem produzir esse valor; o fato de a interrupção também chegar ao
cliente como um erro TIMEOUT_EXCEEDED, ou apenas como a ausência de um resultado, depende de onde a consulta foi
interrompida. Uma mutação em uma tabela Memory deixada incompleta pelo timeout mantém a tabela inalterada e
reporta TIMEOUT_EXCEEDED. Um INSERT pode reportar QUERY_WAS_CANCELLED. Algumas operações que aguardam
outras réplicas ou trabalho em segundo plano não são interrompidas por max_execution_time: uma gravação com quórum
continua aguardando até que seu quórum seja atingido ou reporta UNKNOWN_STATUS_OF_INSERT se
insert_quorum_timeout expirar primeiro.
Configurações de group_by_overflow_mode
group_by_overflow_mode também aceita
o valor any:
any: continua a agregação das chaves que entraram no conjunto, mas não adiciona novas chaves ao conjunto.
Lista de configurações
As restrições de “quantidade máxima de algo” podem ter o valor
0,
o que significa “sem restrição”.Configurações obsoletas
As configurações abaixo estão obsoletas