Группы ресурсов в шлюзе Trino Chango
Группы ресурсов используются для ограничения ресурсов кластера Trino с помощью таких настроек, как максимальное количество выполняемых запросов и запросов в очереди, а также объем памяти, который может использовать одна группа ресурсов.
Шлюз Trino Chango выполняет несколько важных функций, таких как аутентификация и авторизация запросов Trino с жестким контролем доступа на уровне каталога, схемы и таблицы, динамическая маршрутизация запросов Trino к внутренним кластерам Trino и выполнение запросов с нулевым временем простоя.
Обзор Chango
Безопасность Chango, обеспечиваемая Chango Authorizer, основана на RBAC. Кластерная группа в Chango эквивалентна роли. Отдельная кластерная группа имеет такие привилегии, как READ и WRITE, а также строгий контроль доступа к данным на уровне каталогов, схем и таблиц.
Например, кластерная группа BI может иметь привилегии на чтение всех таблиц схемы sale_db в каталоге iceberg.
iceberg.sale_db.*. READ
В отличие от этого, инженер данных кластерной группы может иметь привилегии на чтение и запись всех таблиц схемы sale_db в каталоге iceberg.
iceberg.sale_db.*. READ iceberg.sale_db.*. WRITE
Это означает, что кластерной группе BI не разрешается записывать данные в таблицы (создавать, вставлять, обновлять, удалять, объединять в таблицу и т.д.) схемы sale_db в каталоге iceberg.
Пользователи, входящие в кластерную группу, отправляют запросы в Chango, который сначала аутентифицирует пользователя и авторизует запросы с помощью Chango Authorizer. Если запросы авторизованы, то они динамически направляются на бэкенд кластеров Trino.
Chango обладает полезной функцией поддержки HA кластеров Trino, но нам нужен еще больший контроль над использованием ресурсов бэкенд кластеров Trino, здесь нам и пригодятся группы ресурсов.
Группы ресурсов Chango
Ключевые характеристики групп ресурсов Chango.
-
softMemoryLimit: максимальный объем памяти, используемой в группе ресурсов. -
hardConcurrencyLimit: максимальное количество выполняемых запросов. -
maxQueued: максимальное количество запросов, находящихся в очереди. -
schedulingPolicy: способ выбора запросов из очереди для выполнения. Это может бытьweighted, weighted_fair, fair и query_priority. -
schedulingWeight: Вес группы субресурсов для выполнения запросов в очереди.
Если Вы создаете кластерные группы в Chango, Вы можете настроить группы ресурсов.
На рисунке выше показано, как будут направляться запросы к внутренним кластерам Trino в соответствии с настройкой группы ресурсов.
Если кластерная группа создана с учетом группы ресурсов, Chango будет периодически их обновлять и передавать бэкэнду кластера Trino.
После авторизации запросов шлюз Chango добавляет к прокси-запросу trino-заголовок X-Trino-Source со значением имени кластерной группы для селектора.
Вот, собственно, и все.






