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

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