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

Amazon Aurora PostgreSQL

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

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

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

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

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

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

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

Весь процесс настройки состоит из 5 шагов:

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

Если на шаге 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:

    PostgreSQL WAL Setting

  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 вручную не требуется. Если publication_name не задан, Doris использует учётную запись синхронизации для создания Publication с именем doris_pub_<job_id> и удаляет её при удалении задания. Поэтому учётной записи синхронизации требуется разрешение на создание Publication.

Если при создании Streaming Job явно задан publication_name, заранее создайте Publication с таким же именем. Пользовательская Publication должна включать все исходные таблицы, синхронизируемые заданием, а её обслуживание и очистку выполняет пользователь. Например:

CREATE PUBLICATION doris_pub_custom
FOR TABLE public.orders, public.customers;

При создании задания задайте "publication_name" = "doris_pub_custom". Имя может содержать только строчные буквы, цифры и символы подчёркивания, не может начинаться с цифры и ограничено 63 символами.

Часто задаваемые вопросы​

Q1: SHOW rds.logical_replication; возвращает on. Что ещё нужно сделать?

Изменять группу параметров кластера или перезапускать экземпляр не требуется. Сразу перейдите к шагу 4: создание пользователя синхронизации.

Q2: Поддерживаются ли Aurora PostgreSQL 13 и более ранние версии?

Нет. Для непрерывной загрузки Doris требуется Aurora PostgreSQL 14 или более поздняя версия.

Q3: Можно ли использовать Publication с пользовательским именем?

Можно указать пользовательское имя через publication_name, но Publication необходимо создать до создания задания и убедиться, что она включает все синхронизируемые таблицы.

Q4: Обязательно ли использовать учётную запись superuser для синхронизации?

Нет. Если publication_name не указан, Doris автоматически создаёт Publication по умолчанию и управляет ею. Предварительно создавать Publication нужно только при использовании пользовательской Publication.

Устранение неполадок​

СимптомВозможная причинаРешение
SHOW rds.logical_replication; по-прежнему возвращает offНовая группа параметров не привязана к кластеру или экземпляр записи не перезапущенУбедитесь, что DB cluster parameter group переключена на новую группу параметров, и перезапустите экземпляр записи
Не удаётся создать пользователя или выдать привилегииУ текущей учётной записи недостаточно привилегийВойдите с учётной записью, имеющей rds_superuser или эквивалентные привилегии, и выполните операцию
GRANT rds_replication завершается ошибкойТекущая версия Aurora слишком старая или кластер не является Aurora PostgreSQLОбновите до Aurora PostgreSQL 14 или более поздней версии
Не удаётся создать Publication по умолчаниюУ учётной записи синхронизации нет разрешения на создание PublicationВыдайте учётной записи синхронизации необходимые привилегии или попросите администратора заранее создать пользовательскую Publication и настроить publication_name
Пользовательская Publication отсутствуетНастроен publication_name, но Publication с таким именем не созданаСоздайте Publication согласно шагу 5 или удалите настройку publication_name