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

Amazon Aurora PostgreSQL

Экспериментальная функция

Потоковая загрузка Doris является экспериментальной функцией и поддерживается начиная с Doris 4.1.5.

Потоковая загрузка Doris поддерживает синхронизацию данных из Amazon Aurora PostgreSQL-Compatible Edition 14 или более поздней версии. Перед синхронизацией необходимо включить логическую репликацию (Logical Replication) на стороне кластера Aurora и выполнить соответствующую авторизацию. Этот документ предназначен для администраторов баз данных и инженеров по данным и содержит полный набор шагов предварительной настройки.

Контрольный список предварительных условий​

Перед началом настройки подтвердите следующую информацию:

Элемент проверкиТребование
Версия Aurora PostgreSQL14 или более поздняя версия
Права на операцииПрава на изменение групп параметров кластера в консоли AWS RDS
Права базы данныхПрава на создание пользователей, предоставление привилегий и создание Publication
Окно обслуживанияВозможность перезапустить экземпляр записи Aurora (после изменения параметров логической репликации требуется перезапуск)

Процесс настройки​

Полный процесс настройки состоит из 5 шагов:

  1. Проверить текущее состояние настройки логической репликации
  2. Настроить группу параметров кластера
  3. Применить группу параметров кластера и перезапустить экземпляр
  4. Создать пользователя синхронизации Doris и предоставить ему права
  5. Создать Publication

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

Шаг 1: Проверка текущей конфигурации​

Назначение: определить, включена ли логическая репликация в кластере Aurora, и решить, требуется ли изменять группу параметров.

Подключитесь к экземпляру записи Aurora и выполните следующий SQL-запрос:

SHOW rds.logical_replication;

Выберите дальнейшее действие в зависимости от возвращённого значения:

Возвращённое значениеЗначениеДальнейшее действие
onЛогическая репликация включенаПерейдите к шагу 4: Создание пользователя синхронизации
offЛогическая репликация не включенаПерейдите к шагу 2: Настройка группы параметров кластера

Шаг 2: Настройка группы параметров кластера​

Назначение: создать DB Cluster Parameter Group с включённой логической репликацией для использования кластером Aurora.

Действия:

  1. Войдите в консоль AWS RDS.

  2. На панели навигации слева выберите Parameter groups и нажмите Create parameter group.

  3. В поле типа выберите DB Cluster Parameter Group, затем выберите соответствующее семейство версий Aurora PostgreSQL.

  4. Откройте созданную группу параметров кластера, найдите rds.logical_replication и установите для неё значение 1:

    Настройка WAL PostgreSQL

  5. Нажмите Save Changes, чтобы сохранить изменения.

Описание ключевого параметра:

ПараметрРекомендуемое значениеОписание
rds.logical_replication1Включает логическую репликацию; значение 0 означает, что она отключена

Шаг 3: Применение группы параметров кластера и перезапуск​

Назначение: привязать новую группу параметров к целевому кластеру Aurora и применить конфигурацию после перезапуска экземпляра записи.

Действия:

  1. В консоли RDS выберите целевой кластер Aurora и нажмите Modify.
  2. В разделе DB cluster parameter group выберите группу параметров кластера, созданную на шаге 2.
  3. Выберите Apply immediately.
  4. Перезапустите экземпляр записи Aurora, чтобы конфигурация вступила в силу.
предупреждение

Для применения изменения параметра rds.logical_replication требуется перезапустить экземпляр записи Aurora. Выполняйте эту операцию в часы низкой нагрузки.

Шаг 4: Создание пользователя синхронизации​

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

  1. Создайте отдельного пользователя:

    CREATE USER doris_sync PASSWORD '<password>';
  2. Предоставьте права на чтение схемы и таблиц (в качестве примера используется схема 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;
  3. Предоставьте право репликации:

    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