Обзор
SELECT, а при распределённой
обработке запросов они применяются отдельно на каждом сервере.
Как правило, ClickHouse проверяет ограничения только после полной обработки
частей данных, а не для каждой строки. Это может
привести к ситуации, когда ограничения нарушаются в процессе обработки
части.
Настройки overflow_mode
overflow_mode, который определяет, что происходит
при превышении лимита, и может принимать одно из двух значений:
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные были исчерпаны.
Настройки group_by_overflow_mode
group_by_overflow_mode также есть
значение any:
any: продолжать агрегацию для ключей, уже попавших в набор, но не добавлять в него новые ключи.
Список настроек
Ограничения на «максимальное количество чего-либо» могут иметь значение
0,
что означает отсутствие ограничений.| Параметр | Краткое описание |
|---|---|
max_memory_usage | Максимальный объем оперативной памяти, используемый для выполнения запроса на одном сервере. |
max_memory_usage_for_user | Максимальный объем оперативной памяти, используемый для выполнения запросов пользователя на одном сервере. |
max_rows_to_read | Максимальное количество строк, которое можно прочитать из таблицы при выполнении запроса. |
max_bytes_to_read | Максимальное количество байтов (несжатых данных), которое можно прочитать из таблицы при выполнении запроса. |
read_overflow_mode_leaf | Определяет, что происходит, когда объем прочитанных данных превышает один из лимитов листового узла. |
max_rows_to_read_leaf | Максимальное количество строк, которое можно прочитать из локальной таблицы на листовом узле при выполнении распределенного запроса. |
max_bytes_to_read_leaf | Максимальное количество байтов (несжатых данных), которое можно прочитать из локальной таблицы на листовом узле при выполнении распределенного запроса. |
read_overflow_mode_leaf | Определяет, что происходит, когда объем прочитанных данных превышает один из лимитов листового узла. |
max_rows_to_group_by | Максимальное количество уникальных ключей, полученных при агрегации. |
group_by_overflow_mode | Определяет, что происходит, когда количество уникальных ключей для агрегации превышает лимит. |
max_bytes_before_external_group_by | Включает или отключает выполнение секций GROUP BY во внешней памяти. |
max_bytes_ratio_before_external_group_by | Доля доступной памяти, которую разрешено использовать для GROUP BY. После достижения этого значения для агрегации используется внешняя память. |
max_bytes_before_external_sort | Включает или отключает выполнение секций ORDER BY во внешней памяти. |
max_bytes_ratio_before_external_sort | Доля доступной памяти, которую разрешено использовать для ORDER BY. После достижения этого значения используется внешняя сортировка. |
max_rows_to_sort | Максимальное количество строк до сортировки. Позволяет ограничить потребление памяти при сортировке. |
max_bytes_to_sort | Максимальное количество байтов до сортировки. |
sort_overflow_mode | Определяет, что происходит, если количество строк, полученных до сортировки, превышает один из лимитов. |
max_result_rows | Ограничивает количество строк в результате. |
max_result_bytes | Ограничивает размер результата в байтах (в несжатом виде). |
result_overflow_mode | Определяет, что делать, если объем результата превышает один из лимитов. |
max_execution_time | Максимальное время выполнения запроса в секундах. |
timeout_overflow_mode | Определяет, что делать, если запрос выполняется дольше max_execution_time или расчетное время выполнения превышает max_estimated_execution_time. |
max_execution_time_leaf | По смыслу аналогичен max_execution_time, но применяется только на листовых узлах для распределенных или удаленных запросов. |
timeout_overflow_mode_leaf | Определяет, что происходит, когда запрос на листовом узле выполняется дольше max_execution_time_leaf. |
min_execution_speed | Минимальная скорость выполнения в строках в секунду. |
min_execution_speed_bytes | Минимальное количество обрабатываемых байтов в секунду. |
max_execution_speed | Максимальное количество обрабатываемых строк в секунду. |
max_execution_speed_bytes | Максимальное количество обрабатываемых байтов в секунду. |
timeout_before_checking_execution_speed | Проверяет, не слишком ли низка скорость выполнения (не меньше min_execution_speed), после истечения указанного времени в секундах. |
max_estimated_execution_time | Максимальная расчетная продолжительность выполнения запроса в секундах. |
max_columns_to_read | Максимальное количество столбцов, которое можно прочитать из таблицы за один запрос. |
max_temporary_columns | Максимальное количество временных столбцов, которые должны одновременно находиться в оперативной памяти при выполнении запроса, включая константные столбцы. |
max_temporary_non_const_columns | Максимальное количество временных столбцов, которые должны одновременно находиться в оперативной памяти при выполнении запроса, без учёта константных столбцов. |
max_subquery_depth | Определяет, что произойдёт, если в запросе число вложенных подзапросов превысит указанное значение. |
max_ast_depth | Максимальная глубина вложенности синтаксического дерева запроса. |
max_ast_elements | Максимальное количество элементов в синтаксическом дереве запроса. |
max_rows_in_set | Максимальное количество строк в наборе данных для выражения IN, созданного из подзапроса. |
max_bytes_in_set | Максимальное количество байтов (несжатых данных), используемое набором в выражении IN, созданном из подзапроса. |
set_overflow_mode | Определяет, что произойдёт, если объём данных превысит один из лимитов. |
max_rows_in_distinct | Максимальное количество различных строк при использовании DISTINCT. |
max_bytes_in_distinct | Максимальный объём состояния в памяти в байтах (несжатых), используемого хеш-таблицей при применении DISTINCT. |
distinct_overflow_mode | Определяет, что произойдёт, если объём данных превысит один из лимитов. |
max_rows_to_transfer | Максимальный размер (в строках), который можно передать на удалённый сервер или сохранить во временной таблице при выполнении GLOBAL IN/JOIN. |
max_bytes_to_transfer | Максимальное количество байтов (несжатых данных), которое можно передать на удалённый сервер или сохранить во временной таблице при выполнении GLOBAL IN/JOIN. |
transfer_overflow_mode | Определяет, что произойдёт, если объём данных превысит один из лимитов. |
max_rows_in_join | Ограничивает количество строк в хеш-таблице, используемой при JOIN таблиц. |
max_bytes_in_join | Максимальный размер хеш-таблицы, используемой при JOIN таблиц, в байтах. |
join_overflow_mode | Определяет, какое действие ClickHouse выполняет при достижении любого из следующих ограничений JOIN. |
max_partitions_per_insert_block | Ограничивает максимальное количество партиций в одном вставляемом блоке; если блок содержит слишком много партиций, генерируется исключение. |
throw_on_max_partitions_per_insert_block | Позволяет управлять поведением при достижении max_partitions_per_insert_block. |
max_temporary_data_on_disk_size_for_user | Максимальный объём данных в байтах, занимаемый временными файлами на диске для всех одновременно выполняемых запросов пользователя. |
max_temporary_data_on_disk_size_for_query | Максимальный объём данных в байтах, занимаемый временными файлами на диске для всех одновременно выполняемых запросов. |
max_sessions_for_user | Максимальное количество одновременных сеансов для одного аутентифицированного пользователя на сервере ClickHouse. |
max_partitions_to_read | Ограничивает максимальное количество партиций, к которым можно обратиться в одном запросе. |
Устаревшие настройки
Следующие настройки устарели.