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

Amazon Aurora MySQL

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

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

Потоковая загрузка Doris поддерживает Amazon Aurora MySQL-Compatible Edition версий 5.6, 5.7 и 8.0.x. Поскольку Aurora MySQL по умолчанию не включает Binlog, перед синхронизацией данных необходимо выполнить предварительные действия в кластере Aurora: включить и настроить Binlog, создать пользователя синхронизации и задать период хранения Binlog.

Этот документ предназначен для пользователей, планирующих подключить данные Aurora MySQL к потоковой загрузке Doris. В нём описан полный процесс настройки.

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

Перед подключением к Doris убедитесь, что кластер Aurora соответствует следующим условиям:

Элемент проверкиОжидаемое значениеСпособ проверки
Включён ли Binloglog_bin = ONSHOW VARIABLES LIKE 'log_bin';
Формат Binlogbinlog_format = ROWSHOW VARIABLES LIKE 'binlog_format';
Образ строки Binlogbinlog_row_image = FULLSHOW VARIABLES LIKE 'binlog_row_image';
Пользователь синхронизацииСуществует выделенная учетная запись с правами репликацииВыполните SHOW GRANTS FOR ...;
Период хранения BinlogНе менее 72 часовCALL mysql.rds_show_configuration;

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

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

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

-- 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: Настройте группу параметров кластера​

Aurora MySQL не позволяет напрямую изменять параметры во время выполнения; их необходимо изменять через DB Cluster Parameter Group.

Порядок действий:

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

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

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

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

    Настройка формата Binlog в MySQL

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

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

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

ПараметрРекомендуемое значениеОписание
binlog_formatROWДля синхронизации CDC требуется журналирование на уровне строк
binlog_row_imageFULLГарантирует, что Binlog содержит полный образ всех столбцов

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

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

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

Изменение параметра binlog_format требует перезапуска экземпляра записи Aurora. Выполняйте эту операцию в период низкой нагрузки.

После перезапуска снова выполните SQL из Шага 1, чтобы проверить результат. Все три параметра должны соответствовать ожидаемым значениям.

Шаг 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​

Aurora по умолчанию довольно быстро освобождает Binlog, из-за чего после прерывания может оказаться невозможно возобновить репликацию. Рекомендуется установить период хранения Binlog не менее 72 часов, чтобы двоичные журналы оставались доступными в случае сбоя.

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

CALL mysql.rds_set_configuration('binlog retention hours', 72);

Для проверки текущей конфигурации можно использовать следующий SQL:

CALL mysql.rds_show_configuration;
предупреждение

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

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

В1: Почему после изменения binlog_format значение по-прежнему не ROW?

О: Aurora MySQL не позволяет напрямую изменять параметры во время выполнения. Необходимо создать и привязать DB Cluster Parameter Group, как описано в Шаге 2, а затем перезапустить экземпляр записи, чтобы изменение вступило в силу. Изменение группы параметров по умолчанию не сработает.

В2: Нужно ли выполнять проверки и настройку на экземпляре записи?

О: Да. Binlog создаётся только на экземпляре записи Aurora, поэтому все проверки SQL и создание пользователя синхронизации следует выполнять на экземпляре записи.

В3: Как влияет слишком большое значение binlog retention hours?

О: Это потребляет больше места в хранилище. Рекомендуется задавать значение с учётом фактического окна восстановления после сбоя; минимум — 72 часа.

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

ПризнакВозможная причинаРешение
log_bin по-прежнему OFFПользовательская группа параметров кластера не привязана или экземпляр записи не перезапущенВыполните Шаг 3, чтобы привязать группу параметров и перезапустить экземпляр записи
binlog_format не равен ROWИзменена группа параметров экземпляра, а не группа параметров кластераУстановите binlog_format = ROW в DB Cluster Parameter Group
При синхронизации Doris сообщается, что файл Binlog не найденbinlog retention hours слишком мало, и Binlog уже освобождёнИспользуйте mysql.rds_set_configuration, чтобы увеличить период хранения как минимум до 72 часов
Не удаётся аутентифицировать пользователя синхронизацииОграничение хоста пользователя или недостаточные привилегииУбедитесь, что хост пользователя — '%' или IP-адрес исходящего трафика Doris BE, и что предоставлены REPLICATION SLAVE, REPLICATION CLIENT