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

Amazon RDS PostgreSQL

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

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

Потоковая загрузка Doris поддерживает синхронизацию данных из Amazon RDS PostgreSQL 14 и выше. Перед запуском задачи синхронизации необходимо включить логическую репликацию (Logical Replication) в экземпляре RDS и завершить настройку пользователя синхронизации, разрешений и Publication.

Документ предназначен для администраторов экземпляров RDS PostgreSQL и описывает предварительные шаги, необходимые для потоковой загрузки Doris.

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

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

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

Обзор процесса настройки​

Общий процесс настройки выглядит следующим образом:

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

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

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

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

SHOW rds.logical_replication;

Выберите дальнейший путь в зависимости от результата:

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

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

Цель: создать пользовательскую группу параметров и включить rds.logical_replication.

Действия:

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

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

  3. Выберите семейство версий PostgreSQL, соответствующее целевому экземпляру, и создайте новую группу параметров.

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

    PostgreSQL WAL Setting

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

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

ПараметрЗначениеОписание
rds.logical_replication1Включает логическую репликацию; эквивалентно установке wal_level в значение logical

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

Цель: привязать новую группу параметров к экземпляру RDS и перезапустить его, чтобы конфигурация вступила в силу.

Действия:

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

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


Шаг 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;
подсказка

Amazon RDS PostgreSQL использует роль rds_replication для выдачи прав на репликацию, а не стандартный атрибут PostgreSQL REPLICATION.

Обзор прав:

ПравоНазначение
USAGE ON SCHEMAРазрешает доступ к указанной схеме
SELECT ON ALL TABLESРазрешает чтение всех существующих таблиц в схеме
ALTER DEFAULT PRIVILEGES ... SELECTАвтоматически предоставляет право SELECT для таблиц, добавленных в будущем
rds_replicationРоль, необходимая для выполнения логической репликации в RDS

Шаг 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 символами.


FAQ​

Вопрос 1: Если SHOW rds.logical_replication; возвращает on, нужно ли перезапускать экземпляр?

Нет. Значение on означает, что логическая репликация уже действует, поэтому можно сразу перейти к Шагу 4: Создание пользователя синхронизации.

Вопрос 2: Можно ли использовать Publication с другим именем?

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

Вопрос 3: Обязательно ли использовать роль rds_replication?

Да. По соображениям безопасности RDS PostgreSQL не разрешает использовать стандартный атрибут PostgreSQL REPLICATION. Необходимо выдать права с помощью GRANT rds_replication.

Вопрос 4: Обязательно ли создавать Publication вручную?

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


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

СимптомВозможная причинаРешение
SHOW rds.logical_replication; по-прежнему возвращает offГруппа параметров не привязана к экземпляру или экземпляр не был перезапущенПроверьте, использует ли экземпляр новую группу параметров, и перезапустите его
Ошибка разрешений при создании пользователяУ текущей учетной записи недостаточно правИспользуйте учетную запись администратора с правом создания пользователей
GRANT rds_replication возвращает ошибкуУ текущей учетной записи нет права выдавать эту рольИспользуйте учетную запись rds_superuser или другую учетную запись с правом выдачи этой роли
Не удается создать Publication по умолчаниюУ учетной записи синхронизации нет права создавать PublicationВыдайте учетной записи синхронизации необходимые права или попросите администратора заранее создать пользовательскую Publication и настроить publication_name
Пользовательская Publication не существуетНастроен publication_name, но Publication с таким именем не созданаСоздайте Publication согласно инструкциям в Шаге 5 или удалите publication_name, чтобы использовать Publication по умолчанию, управляемую Doris
Изменения параметров не вступили в силуНе выбран параметр Apply immediately или экземпляр не был перезапущенПовторно выполните Шаг 3