Отказоустойчивое выполнение запросов в кластере Managed Service for Trino
Отказоустойчивое выполнение запросов в кластере Managed Service for Trino обеспечивается механизмом Fault tolerant execution
Чтобы обеспечить отказоустойчивое выполнение запросов при включенном Fault tolerant execution, Exchange Manager периодически выгружает промежуточные результаты в бакет Object Storage. Если запрос не был выполнен, то координатор назначит повторное выполнение запроса другому воркеру, который сможет использовать ранее обработанные данные.
Примечание
Механизм Fault tolerant execution не распространяется на ошибочные или некорректно составленные запросы.
Механизм Fault tolerant execution поддерживается только для следующих коннекторов:
- Delta Lake
- Hive
- Iceberg
- Oracle
Preview - PostgreSQL
- MS SQL Server
Preview
Чтобы включить Fault tolerant execution, при создании или изменении кластера выберите в блоке Политика перезапросов значение параметра Тип объекта для перезапроса:
-
Задача — в рамках запроса повторно выполняется промежуточное задание, вызвавшее сбой воркера.
Важно
При интенсивном потоке простых запросов повторный запуск заданий может привести к более высокой задержке сложных пакетных запросов. Рекомендуется создать выделенный кластер Managed Service for Trino с настройкой повторного выполнения заданий для сложных пакетных запросов.
-
Запрос — повторно выполняются все этапы запроса, в котором произошел сбой воркера.
Типы хранилища для Exchange Manager
В качестве хранилища для промежуточных результатов Exchange Manager можно использовать один из двух типов бакета:
-
Служебный бакет — бакет создается и обслуживается на стороне Managed Service for Trino. Дополнительная настройка и оплата не требуются, но размер бакета ограничен. При выполнении запросов с большим объемом промежуточных данных места в служебном бакете может не хватить.
-
Пользовательский бакет — бакет Object Storage, который вы создаете самостоятельно в своем каталоге. Ограничения на размер бакета определяются квотами Object Storage, оплата за хранение и операции взимается по тарифам Object Storage.
Чтобы кластер Managed Service for Trino мог записывать данные в пользовательский бакет, сервисному аккаунту кластера должна быть назначена роль storage.editor или роль с аналогичными правами на бакет.
По умолчанию используется служебный бакет. Выбрать тип хранилища можно при создании или изменении кластера.
Подробнее об отказоустойчивом выполнении запросов в официальной документации