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

Amazon RDS MySQL

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

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

Потоковая загрузка Doris поддерживает синхронизацию данных из Amazon RDS MySQL. Совместимые версии включают MySQL 5.6, 5.7 и 8.0.x. Перед запуском задачи синхронизации необходимо убедиться, что в экземпляре RDS включён Binlog и журналы изменений записываются в правильном формате.

Этот документ предназначен для пользователей, которым необходимо синхронизировать данные из Amazon RDS MySQL в Doris посредством потоковой загрузки (CDC). В нём приведены все предварительные настройки в порядке их выполнения.

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

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

Проверяемый параметрОжидаемое значениеОписание
log_binONBinlog включён
binlog_formatROWИзменения записываются в построчном режиме
binlog_row_imageFULLЗаписывается полный образ строки
Пользователь синхронизацииСозданИмеет привилегии SELECT, REPLICATION SLAVE и REPLICATION CLIENT
Срок хранения BinlogНе менее 72 часовПредотвращает преждевременную очистку журналов, которая может прервать синхронизацию

Если какое-либо из условий не выполнено, настройте их по одному, следуя приведённым ниже шагам.

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

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

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

-- Check if binlog is enabled
SHOW VARIABLES LIKE 'log_bin';

-- Check binlog format
SHOW VARIABLES LIKE 'binlog_format';

-- Check binlog row image
SHOW VARIABLES LIKE 'binlog_row_image';

Интерпретация результатов:

Шаг 2: Создание и настройка группы параметров​

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

Выполните следующие действия:

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

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

  3. Выберите соответствующее семейство версий MySQL и создайте новую группу параметров.

  4. Отредактируйте группу параметров, найдите binlog_format и установите значение ROW:

    MySQL Binlog Format Setting

  5. Аналогично найдите binlog_row_image и установите значение FULL.

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

Параметры, которые необходимо изменить, приведены ниже:

ПараметрЦелевое значениеНазначение
binlog_formatROWЗаписывает изменения данных на уровне строк, что требуется для синхронизации CDC
binlog_row_imageFULLЗаписывает полные данные строки до и после каждого изменения

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

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

Выполните следующие действия:

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

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

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

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

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

    CREATE USER 'doris_sync'@'%' IDENTIFIED BY '<password>';
  2. Предоставьте привилегии, необходимые для синхронизации:

    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'doris_sync'@'%';

Описание необходимых привилегий:

ПривилегияНазначение
SELECTЧитает существующие данные (этап полной загрузки)
REPLICATION SLAVEИзвлекает Binlog в качестве реплики
REPLICATION CLIENTЗапрашивает состояние Binlog на основном сервере

Шаг 5: Настройка срока хранения Binlog​

Цель: по умолчанию Amazon RDS MySQL удаляет двоичные журналы как можно скорее. Рекомендуется установить срок хранения Binlog не менее 72 часов, чтобы файлы Binlog, используемые для репликации, оставались доступными в случае сбоя.

Используйте хранимую процедуру mysql.rds_set_configuration, чтобы задать срок хранения:

CALL mysql.rds_set_configuration('binlog retention hours', 72);
предупреждение

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

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

В1: Нужно ли обязательно перезапускать экземпляр после изменения binlog_format?

Да. binlog_format является статическим параметром, поэтому для применения изменения необходимо перезапустить экземпляр RDS. Выполняйте эту операцию в непиковые часы.

В2: Почему binlog_row_image необходимо установить в FULL?

Потоковой загрузке Doris нужны полные данные строки до и после каждого изменения, чтобы правильно восстановить операции UPDATE и DELETE. Значения MINIMAL или NOBLOB приведут к ошибкам синхронизации или неполным данным.

В3: Можно ли использовать одну и ту же группу параметров для нескольких экземпляров RDS?

Да. Несколько экземпляров RDS одного семейства версий могут использовать одну группу параметров, если им требуется одинаковая конфигурация Binlog.

В4: Можно ли установить более длительный срок хранения Binlog?

Да. Параметр binlog retention hours поддерживает значения от 1 до 168 часов (до 7 дней). Более длительный срок хранения увеличивает окно восстановления, но занимает больше места в хранилище.

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

СимптомВозможная причинаРешение
SHOW VARIABLES LIKE 'log_bin' возвращает OFFДля экземпляра не включено автоматическое резервное копирование, поэтому Binlog не включёнВключите автоматическое резервное копирование для экземпляра в консоли RDS; после этого Binlog будет включён автоматически
После изменения binlog_format по-прежнему имеет значение MIXED или STATEMENTЭкземпляр не был перезапущен или привязана неправильная группа параметровУбедитесь, что привязана новая группа параметров, затем перезапустите экземпляр
Синхронизация Doris сообщает об ошибке binary log not foundBinlog был очищенУвеличьте значение binlog retention hours и перезапустите задачу синхронизации Doris
Пользователь синхронизации не может подключитьсяНеверно задан белый список хостов или парольПроверьте, соответствует ли квалификатор хоста в 'doris_sync'@'%' исходящему IP-адресу узла Doris
Ошибки недостаточных привилегийОтсутствуют такие привилегии, как REPLICATION SLAVEПовторно выполните оператор GRANT из шага 4