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.
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ção | Breve descrição |
|---|---|
max_memory_usage | A quantidade máxima de RAM usada para executar uma consulta em um único servidor. |
max_memory_usage_for_user | A quantidade máxima de RAM usada para executar as consultas de um usuário em um único servidor. |
max_rows_to_read | O número máximo de linhas que podem ser lidas de uma tabela ao executar uma consulta. |
max_bytes_to_read | O número máximo de bytes (de dados não compactados) que podem ser lidos de uma tabela ao executar uma consulta. |
read_overflow_mode_leaf | Define o que acontece quando o volume de dados lidos excede um dos limites do nó folha |
max_rows_to_read_leaf | O número máximo de linhas que podem ser lidas de uma tabela local em um nó folha ao executar uma consulta distribuída |
max_bytes_to_read_leaf | O número máximo de bytes (de dados não compactados) que podem ser lidos de uma tabela local em um nó folha ao executar uma consulta distribuída. |
read_overflow_mode_leaf | Define o que acontece quando o volume de dados lidos excede um dos limites do nó folha. |
max_rows_to_group_by | O número máximo de chaves exclusivas recebidas da agregação. |
group_by_overflow_mode | Define o que acontece quando o número de chaves exclusivas para agregação excede o limite |
max_bytes_before_external_group_by | Habilita ou desabilita a execução de cláusulas GROUP BY em memória externa. |
max_bytes_ratio_before_external_group_by | A proporção da memória disponível permitida para GROUP BY. Quando esse limite é atingido, a memória externa é usada para agregação. |
max_bytes_before_external_sort | Habilita ou desabilita a execução de cláusulas ORDER BY em memória externa. |
max_bytes_ratio_before_external_sort | A proporção da memória disponível permitida para ORDER BY. Quando esse limite é atingido, a ordenação externa é usada. |
max_rows_to_sort | O número máximo de linhas antes da ordenação. Permite limitar o consumo de memória durante a ordenação. |
max_bytes_to_sort | O número máximo de bytes antes da ordenação. |
sort_overflow_mode | Define o que acontece se o número de linhas recebidas antes da ordenação exceder um dos limites. |
max_result_rows | Limita o número de linhas no resultado. |
max_result_bytes | Limita o tamanho do resultado em bytes (não compactados) |
result_overflow_mode | Define o que fazer se o volume do resultado exceder um dos limites. |
max_execution_time | O tempo máximo de execução da consulta, em segundos. |
timeout_overflow_mode | Define o que fazer se a consulta for executada por mais tempo que max_execution_time ou se o tempo estimado de execução for maior que max_estimated_execution_time. |
max_execution_time_leaf | Semelhante, em termos semânticos, a max_execution_time, mas aplicado apenas a nós folha para consultas distribuídas ou remotas. |
timeout_overflow_mode_leaf | Define o que acontece quando a consulta em um nó folha é executada por mais tempo que max_execution_time_leaf. |
min_execution_speed | Velocidade mínima de execução em linhas por segundo. |
min_execution_speed_bytes | O número mínimo de bytes processados por segundo durante a execução. |
max_execution_speed | O número máximo de linhas processadas por segundo durante a execução. |
max_execution_speed_bytes | O número máximo de bytes processados por segundo durante a execução. |
timeout_before_checking_execution_speed | Verifica, após o tempo especificado em segundos, se a velocidade de execução não está muito baixa (isto é, se não é inferior a min_execution_speed). |
max_estimated_execution_time | Tempo máximo estimado de execução da consulta, em segundos. |
max_columns_to_read | O número máximo de colunas que podem ser lidas de uma tabela em uma única consulta. |
max_temporary_columns | O número máximo de colunas temporárias que devem ser mantidas na RAM simultaneamente durante a execução de uma consulta, incluindo colunas constantes. |
max_temporary_non_const_columns | O número máximo de colunas temporárias que devem ser mantidas na RAM simultaneamente durante a execução de uma consulta, sem contar as colunas constantes. |
max_subquery_depth | Define o que acontece se uma consulta tiver mais subconsultas aninhadas do que o número especificado. |
max_ast_depth | A profundidade máxima de aninhamento da árvore sintática de uma consulta. |
max_ast_elements | O número máximo de elementos na árvore sintática de uma consulta. |
max_rows_in_set | O número máximo de linhas de um conjunto de dados na cláusula IN criado a partir de uma subconsulta. |
max_bytes_in_set | O número máximo de bytes (de dados não comprimidos) usados por um conjunto na cláusula IN criado a partir de uma subconsulta. |
set_overflow_mode | Define o que acontece quando a quantidade de dados excede um dos limites. |
max_rows_in_distinct | O número máximo de linhas distintas ao usar DISTINCT. |
max_bytes_in_distinct | O número máximo de bytes do estado (em bytes não comprimidos) na memória, usado por uma tabela hash ao usar DISTINCT. |
distinct_overflow_mode | Define o que acontece quando a quantidade de dados excede um dos limites. |
max_rows_to_transfer | Tamanho máximo (em linhas) que pode ser transferido para um servidor remoto ou salvo em uma tabela temporária quando a seção GLOBAL IN/JOIN é executada. |
max_bytes_to_transfer | O número máximo de bytes (dados não comprimidos) que pode ser transferido para um servidor remoto ou salvo em uma tabela temporária quando a seção GLOBAL IN/JOIN é executada. |
transfer_overflow_mode | Define o que acontece quando a quantidade de dados excede um dos limites. |
max_rows_in_join | Limita o número de linhas na tabela hash usada ao fazer JOIN entre tabelas. |
max_bytes_in_join | O tamanho máximo, em bytes, da tabela hash usada ao fazer JOIN entre tabelas. |
join_overflow_mode | Define qual ação o ClickHouse executa quando qualquer um dos limites de join a seguir é atingido. |
max_partitions_per_insert_block | Limita o número máximo de partições em um único bloco inserido, e uma exceção é lançada se o bloco contiver partições demais. |
throw_on_max_partitions_per_insert_block | Permite controlar o comportamento quando max_partitions_per_insert_block é atingido. |
max_temporary_data_on_disk_size_for_user | A quantidade máxima de dados consumida por arquivos temporários em disco, em bytes, para todas as consultas do usuário executadas concorrentemente. |
max_temporary_data_on_disk_size_for_query | A quantidade máxima de dados consumida por arquivos temporários em disco, em bytes, para todas as consultas executadas concorrentemente. |
max_sessions_for_user | Número máximo de sessões simultâneas por usuário autenticado no servidor ClickHouse. |
max_partitions_to_read | Limita o número máximo de partições que podem ser acessadas em uma única consulta. |
Configurações obsoletas
As configurações abaixo estão obsoletas