Amazon Aurora PostgreSQL
Потоковая загрузка Doris является экспериментальной функцией и поддерживается начиная с Doris 4.1.5.
Потоковая загрузка Doris поддерживает синхронизацию данных из Amazon Aurora PostgreSQL-Compatible Edition 14 или более поздней версии. Перед синхронизацией необходимо включить логическую репликацию (Logical Replication) на стороне кластера Aurora и выполнить соответствующую авторизацию. Этот документ предназначен для администраторов баз данных и инженеров по данным и содержит полный набор шагов предварительной настройки.
Контрольный список предварительных условий
Перед началом настройки подтвердите следующую информацию:
| Элемент проверки | Требование |
|---|---|
| Версия Aurora PostgreSQL | 14 или более поздняя версия |
| Права на операции | Права на изменение групп параметров кластера в консоли AWS RDS |
| Права базы данных | Права на создание пользователей, предоставление привилегий и создание Publication |
| Окно обслуживания | Возможность перезапустить экземпляр записи Aurora (после изменения параметров логической репликации требуется перезапуск) |
Процесс настройки
Полный процесс настройки состоит из 5 шагов:
- Проверить текущее состояние настройки логической репликации
- Настроить группу параметров кластера
- Применить группу параметров кластера и перезапустить экземпляр
- Создать пользователя синхронизации Doris и предоставить ему права
- Создать Publication
Если на шаге 1 выяснится, что логическая репликация уже включена, можно сразу перейти к шагу 4, чтобы создать пользователя синхронизации.
Шаг 1: Проверка текущей конфигурации
Назначение: определить, включена ли логическая репликация в кластере Aurora, и решить, требуется ли изменять группу параметров.
Подключитесь к экземпляру записи Aurora и выполните следующий SQL-запрос:
SHOW rds.logical_replication;
Выберите дальнейшее действие в зависимости от возвращённого значения:
| Возвращённое значение | Значение | Дальнейшее действие |
|---|---|---|
on | Логическая репликация включена | Перейдите к шагу 4: Создание пользователя синхронизации |
off | Логическая репликация не включена | Перейдите к шагу 2: Настройка группы параметров кластера |
Шаг 2: Настройка группы параметров кластера
Назначение: создать DB Cluster Parameter Group с включённой логической репликацией для использования кластером Aurora.
Действия:
-
Войдите в консоль AWS RDS.
-
На панели навигации слева выберите Parameter groups и нажмите Create parameter group.
-
В поле типа выберите DB Cluster Parameter Group, затем выберите соответствующее семейство версий Aurora PostgreSQL.
-
Откройте созданную группу параметров кластера, найдите
rds.logical_replicationи установите для неё значение1:
-
Нажмите Save Changes, чтобы сохранить изменения.
Описание ключевого параметра:
| Параметр | Рекомендуемое значение | Описание |
|---|---|---|
rds.logical_replication | 1 | Включает логическую репликацию; значение 0 означает, что она отключена |
Шаг 3: Применение группы параметров кластера и перезапуск
Назначение: привязать новую группу параметров к целевому кластеру Aurora и применить конфигурацию после перезапуска экземпляра записи.
Действия:
- В консоли RDS выберите целевой кластер Aurora и нажмите Modify.
- В разделе DB cluster parameter group выберите группу параметров кластера, созданную на шаге 2.
- Выберите Apply immediately.
- Перезапустите экземпляр записи Aurora, чтобы конфигурация вступила в силу.
Для применения изменения параметра rds.logical_replication требуется перезапустить экземпляр записи Aurora. Выполняйте эту операцию в часы низкой нагрузки.
Шаг 4: Создание пользователя синхронизации
Назначение: создать отдельную учётную запись для потоковой загрузки Doris и предоставить минимальные права, необходимые для чтения данных и выполнения репликации.
-
Создайте отдельного пользователя:
CREATE USER doris_sync PASSWORD '<password>'; -
Предоставьте права на чтение схемы и таблиц (в качестве примера используется схема
public; при необходимости замените её):GRANT USAGE ON SCHEMA "public" TO doris_sync;
GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO doris_sync;
ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO doris_sync; -
Предоставьте право репликации:
GRANT rds_replication TO doris_sync;
Описание привилегий:
| Привилегия | Назначение |
|---|---|
USAGE ON SCHEMA | Разрешает доступ к указанной схеме |
SELECT ON ALL TABLES | Разрешает чтение данных из всех существующих таблиц в схеме |
ALTER DEFAULT PRIVILEGES ... GRANT SELECT | Автоматически предоставляет права чтения таблицам, созданным позднее в этой схеме |
rds_replication | Роль, необходимая для выполнения логической репликации в Aurora PostgreSQL |
Шаг 5: Создание Publication
Назначение: создать Publication, на которую будет подписываться Doris.
Выполните следующий SQL:
CREATE PUBLICATION dbz_publication FOR ALL TABLES;
В настоящее время Doris поддерживает только Publication с именем dbz_publication, и она должна иметь параметр FOR ALL TABLES. Пользовательские имена Publication и указание только части таблиц пока не поддерживаются.
Примечание: если пользователь синхронизации имеет привилегии superuser (например, роль
rds_superuser), Doris создаёт Publication автоматически, поэтому выполнять этот шаг вручную не требуется.
FAQ
Q1: SHOW rds.logical_replication; возвращает on. Что ещё нужно сделать?
Изменять группу параметров кластера или перезапускать экземпляр не требуется. Сразу перейдите к шагу 4: Создание пользователя синхронизации.
Q2: Поддерживаются ли Aurora PostgreSQL 13 и более ранние версии?
Нет. Для потоковой загрузки Doris требуется Aurora PostgreSQL 14 или более поздняя версия.
Q3: Можно ли использовать Publication с пользовательским именем?
Нет. В настоящее время Doris поддерживает только Publication с именем dbz_publication и параметром FOR ALL TABLES.
Q4: Обязательно ли использовать учётную запись superuser для синхронизации?
Нет. Рекомендуется использовать обычного пользователя doris_sync и предоставить ему права, описанные в этом документе. Doris автоматически создаёт Publication только если учётная запись имеет привилегии superuser (например, rds_superuser).
Устранение неполадок
| Симптом | Возможная причина | Решение |
|---|---|---|
SHOW rds.logical_replication; по-прежнему возвращает off | Новая группа параметров не привязана к кластеру или экземпляр записи не был перезапущен | Убедитесь, что DB cluster parameter group переключена на новую группу параметров, и перезапустите экземпляр записи |
| Не удаётся создать пользователя или предоставить привилегии | Текущая учётная запись для входа не имеет достаточных прав | Войдите с учётной записью, имеющей права rds_superuser или эквивалентные, и повторите операцию |
GRANT rds_replication возвращает ошибку | Текущая версия Aurora слишком старая или кластер не является Aurora PostgreSQL | Обновите систему до Aurora PostgreSQL 14 или более поздней версии |
| При создании Publication возникает ошибка разрешений | Пользователь doris_sync не имеет права создавать Publication | Используйте учётную запись superuser для ручного выполнения CREATE PUBLICATION или временно предоставьте учётной записи синхронизации необходимые права |
При запуске синхронизации Doris сообщает, что dbz_publication не найден | Publication не создана, а учётная запись синхронизации не имеет прав superuser и не может создать её автоматически | Вручную выполните команду CREATE PUBLICATION dbz_publication FOR ALL TABLES; из шага 5 |