Взаимосвязь ресурсов в Yandex MPP Analytics for PostgreSQL
Примечание
В регионе Казахстан доступна только зона доступности kz1-a.
Примечание
В регионе Казахстан доступны только платформы standard-v3 (Intel Ice Lake) и standard-v3-t4i (Intel Ice Lake with T4i). Другие типы платформ, кластеры GPU и выделенные хосты недоступны.
Основная сущность, которой оперирует сервис Yandex MPP Analytics for PostgreSQL — кластер баз данных.
Кластер баз данных состоит из хостов — виртуальных машин с развернутыми на них базами данных. Подробнее о базах данных в Yandex MPP Analytics for PostgreSQL.
Кластер баз данных включает в себя:
- два хоста-мастера (первичный и резервный);
- два или больше хостов-сегментов.
Первичный хост-мастер (PRIMARY) принимает клиентские подключения и SQL-запросы от приложений при помощи менеджера подключений Odyssey и распределяет их по хостам-сегментам для обработки.
Резервный хост-мастер (STANDBY) непрерывно реплицирует данные первичного хоста-мастера, но пользовательские подключения не принимает.
В случае отказа первичного хоста-мастера резервный принимает на себя его функции. Таким образом, кластер с двумя хостами-мастерами при отказе одного из них продолжит обрабатывать запросы.
Хосты-сегменты хранят распределенные данные кластера и выполняют обработку запросов.
Архитектура хоста-сегмента
Архитектура хоста-сегмента представлена на схеме:
На хостах-сегментах развернуты самостоятельные СУБД — сегменты. Количество сегментов на каждом хосте одинаково. Каждый сегмент в кластере имеет одну реплику — зеркальный сегмент, который располагается на другом хосте и хранит копию данных с основного сегмента.
Каждый сегмент включает следующие компоненты:
- механизм выполнения запросов (Execution Engine);
- подключаемые расширения (Extensions).
Для хранения данных можно использовать хранилище кластера или гибридное хранилище.
Кластер можно расширить, добавив хосты-сегменты. При расширении можно также увеличить количество сегментов на каждом хосте. Без расширения кластера увеличить количество сегментов невозможно.
Выполнение запросов в кластере
При любом сценарии использования приложение отправляет SQL-запрос в кластер. Кластер обрабатывает запрос в рамках сессии пользователя следующим образом:
- Устанавливает сессию с хостом-мастером с помощью менеджера подключений Odyssey, который управляет авторизацией и снижает накладные расходы на кластер.
- Передает запрос в процесс Query Coordinator на хосте-мастере. Query Coordinator анализирует запрос, затем разбивает его на части и для каждой выбирает план выполнения с помощью оптимизатора запросов (Optimizer).
- Передает части запроса с планом выполнения на сегменты. При выполнении запроса сегменты могут обращаться к локальному хранилищу, а также к внешним источникам данных с помощью Yandex Data Transfer или внешних таблиц.
Взаимосвязь ресурсов в кластере Yandex MPP Analytics for PostgreSQL и модель обмена данными внутри кластера, а также между первичным хостом-мастером и приложениями представлена на схеме:
Размещение хостов кластера
Хосты кластера Yandex MPP Analytics for PostgreSQL представляют собой виртуальные машины в облаке. Такие виртуальные машины могут размещаться:
-
На стандартных хостах Yandex Cloud.
Это общие физические серверы для размещения виртуальных машин кластера. Такие хосты выбираются случайным образом из пула доступных хостов, удовлетворяющих выбранной конфигурации кластера.
-
На выделенных хостах Yandex Cloud.
Это физические серверы для размещения исключительно ваших виртуальных машин. ВМ на выделенных хостах обладают всеми возможностями обычных ВМ. Дополнительно они получают физическую изоляцию от ВМ других пользователей и доступ ко всему объему локальных дисков физического сервера.
Выделенные хосты выбираются из групп выделенных хостов, указанных при создании кластера. Группа выделенных хостов должна быть предварительно создана в сервисе Yandex Compute Cloud.
Подробнее см. в разделе Выделенный хост.
Все хосты кластера Yandex MPP Analytics for PostgreSQL размещаются в одной из зон доступности: kz1-a, kz1-b или kz1-d.
При создании кластера необходимо указывать:
-
Класс хостов — шаблон, по которому будут развертываться хосты кластера. Список доступных классов и их характеристики см. в разделе Классы хостов.
-
Окружение — среду, в которой будет развертываться кластер:
PRODUCTION— для стабильных версий ваших приложений.PRESTABLE— для тестирования. Prestable-окружение аналогично Production-окружению и на него также распространяется SLA, но при этом на нем раньше появляются новые функциональные возможности, улучшения и исправления ошибок. В Prestable-окружении вы можете протестировать совместимость обновлений сервиса с вашим приложением.
Внимание
Сервис может в автоматическом режиме обращаться к системной и диагностической информации ваших баз данных, чтобы отрисовывать графики мониторинга и поддерживать работоспособность кластера. Сервис никогда не запрашивает и не использует данные, которые вы записали в базу самостоятельно.
При работе необходимо учитывать, что контролирует сервис, а что — клиент Yandex Cloud. Понимание этих зон контроля помогает эффективно использовать облачные ресурсы и избегать возможных проблем при работе с базами данных. Подробнее см. Разграничение зон контроля пользователей сервисов управляемых баз данных (MDB) и Yandex Cloud.