Перейти к основному содержимому
Перейти к основному содержимому

Квоты

Квоты в ClickHouse Cloud

Квоты поддерживаются в ClickHouse Cloud, но должны создаваться с использованием DDL синтаксиса. Подход с конфигурацией XML, описанный ниже, не поддерживается.

Квоты позволяют ограничивать использование ресурсов в течение определенного периода времени или отслеживать использование ресурсов.
Квоты настраиваются в конфигурации пользователя, которая, как правило, является 'users.xml'.

Система также имеет возможность ограничивать сложность одного запроса. См. раздел Ограничения на сложность запросов.

В отличие от ограничений на сложность запросов, квоты:

  • Накладывают ограничения на набор запросов, которые могут быть выполнены в течение определенного времени, вместо того чтобы ограничивать один запрос.
  • Учитывают ресурсы, потраченные на всех удаленных серверах при распределенной обработке запросов.

Рассмотрим раздел файла 'users.xml', который определяет квоты.

По умолчанию квота отслеживает потребление ресурсов каждый час, не ограничивая использование.
Потребление ресурсов, рассчитанное для каждого интервала, выводится в журнал сервера после каждого запроса.

Для квоты 'statbox' ограничения установлены на каждый час и каждые 24 часа (86,400 секунд). Временной интервал считается, начиная с фиксированного момента времени, определенного реализацией. Другими словами, 24-часовой интервал не обязательно начинается с полуночи.

Когда интервал заканчивается, все собранные значения очищаются. Для следующего часа расчет квоты начинается заново.

Вот что можно ограничить:

queries – Общее количество запросов.

query_selects – Общее количество запросов select.

query_inserts – Общее количество запросов insert.

errors – Количество запросов, которые вызвали исключение.

result_rows – Общее количество строк, возвращенных в результате.

read_rows – Общее количество исходных строк, прочитанных из таблиц для выполнения запроса на всех удаленных серверах.

execution_time – Общее время выполнения запроса в секундах (время на стенде).

Если предел превышен хотя бы для одного временного интервала, выбрасывается исключение с сообщением о том, какое ограничение было превышено, за какой интервал и когда начинается новый интервал (когда запросы можно будет отправлять снова).

Квоты могут использовать функцию "quota key", чтобы независимо отслеживать ресурсы для нескольких ключей. Вот пример этого:

Квота назначается пользователям в разделе 'users' конфигурации. См. раздел "Права доступа".

Для распределенной обработки запросов накопленные суммы хранятся на сервере запросов. Так что если пользователь переходит на другой сервер, квота там "начнется заново".

Когда сервер перезапускается, квоты сбрасываются.