Поделиться через


Добавить источник CDC базы данных MySQL в поток событий

Примечание.

В этой статье содержатся ссылки на термин SLAVE, термин, который корпорация Майкрософт больше не использует. Когда этот термин будет удален из программного обеспечения, мы удалим его из статьи.

В этой статье показано, как добавить источник отслеживания измененных данных MySQL в поток событий. В настоящее время база данных MySQL CDC поддерживается в следующих службах, где базы данных могут быть доступны общедоступно.

  • База данных Azure для MySQL
  • Amazon RDS для MySQL
  • Amazon Aurora MySQL
  • Google Cloud SQL для MySQL (GCP).

В этом руководстве в качестве примера используется База данных Azure для MySQL CDC.

После добавления источника CDC базы данных MySQL в поток событий он записывает изменения на уровне строк в указанные таблицы. Затем эти изменения можно обрабатывать в режиме реального времени и отправлять в разные места назначения для дальнейшего анализа.

Примечание.

Этот источник не поддерживается в следующих регионах возможностей рабочей области: Запад США 3, Западная Швейцария.

Предварительные условия

  • Доступ к рабочей области в режиме лицензии емкости Fabric или в режиме пробной лицензии с правами участника или более высокого уровня.
  • Доступ к экземпляру базы данных MySQL, например, к базе данных в базе данных Azure для MySQL — Гибкий Сервер.
  • База данных MySQL должна быть общедоступной, а не за брандмауэром или защищенной в виртуальной сети.
  • Если у вас нет потока событий, создайте поток событий.

Настройка базы данных MySQL

Соединитель использует соединитель Debezium MySQL для записи изменений в базе данных MySQL. Необходимо определить пользователя MySQL с соответствующими привилегиями во всех базах данных, из которых соединитель обмена сообщениями может записывать изменения. Вы можете напрямую использовать пользователя администратора для подключения к базе данных, которая обычно имеет соответствующие привилегии, или выполнить следующие действия, чтобы создать нового пользователя:

Примечание.

Новая учетная запись пользователя или администратора и соответствующий пароль будут использоваться для подключения к базе данных позже внутри Eventstream.

  1. В командной строке mysql создайте пользователя MySQL:

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

    mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
    

    Примечание.

    Если глобальная блокировка чтения недоступна, например, в облачных решениях, таких как Amazon RDS или Aurora, используются блокировки на уровне таблицы для создания согласованного снимка состояния. В этом случае необходимо предоставить пользователю разрешение LOCK TABLES. Кроме того, для поддержки операций FLUSH во время моментального снимка также может потребоваться предоставить привилегии RELOAD или FLUSH_TABLES.

  3. Завершите работу с разрешениями пользователя:

    mysql> FLUSH PRIVILEGES;
    

Чтобы убедиться, что у пользователя или администратора есть необходимые привилегии, выполните следующую команду, а затем необходимо отобразить необходимые привилегии на шаге 2.

SHOW GRANTS FOR user;

Дополнительные сведения о предоставлении необходимых разрешений пользователю см. в документации по Debezium connector for MySQL: Debezium Documentation.

Включение binlog

Необходимо включить двоичное ведение журнала для репликации MySQL. Двоичные журналы записывают обновления транзакций для средств репликации для распространения изменений. В этом разделе используется База данных Azure для MySQL CDC в качестве примера для демонстрации шагов конфигурации.

  1. На странице портала Azure для вашей учетной записи Azure Database for MySQL выберите Параметры сервера в разделе "Параметры" в области навигации слева.

  2. На странице параметров сервера настройте следующие свойства и нажмите кнопку "Сохранить".

    • Для binlog_row_image выберите полный.

    • Для binlog_expire_logs_seconds задайте количество секунд, ожидаемых службой до очистки файла двоичного журнала. Задайте значение, соответствующее потребностям вашей среды, например 86400.

    Снимок экрана: параметры binlog для репликации в параметрах сервера.

Добавление базы данных MySQL (CDC) в качестве источника

Если вы еще не добавили источник в поток событий, выберите "Использовать внешнюю плитку источника ".

Снимок экрана: выбор плитки

Если вы добавляете источник в уже опубликованный поток событий, перейдите в режим редактирования, выберите "Добавить источник" на ленте и выберите "Внешние источники".

Снимок экрана: выбор источника в меню

На странице "Выбор источника данных" найдите и выберите "Подключиться" на плитке Базы данных MySQL (CDC).

Снимок экрана: выбор базы данных MySQL (CDC) в качестве исходного типа в мастере получения событий.

Настройка и подключение к базе данных MySQL (CDC)

  1. На экране "Подключение" в разделе "Подключение" выберите "Создать подключение", чтобы создать облачное подключение.

    Снимок экрана: страница

  2. Введите следующие параметры подключения и учетные данные подключения для базы данных MySQL, а затем выберите Connect.

  3. Введите следующую информацию, чтобы настроить источник данных CDC базы данных MySQL, а затем нажмите кнопку Далее.

    • порт: значение по умолчанию — 3306. Если выбранное облачное подключение настроено в Управление подключениями и шлюзами, убедитесь, что номер порта соответствует тому, который указан там. Если они не соответствуют, номер порта в облачном подключении в Управление подключениями и шлюзами имеет приоритет.

    • таблица: выберите Все таблицы или введите имя(я) таблицы. Если выбрать последний, укажите таблицы, используя разделенный запятыми список полных идентификаторов таблиц (databaseName.tableName).

      Можно ввести до 100 таблиц, причем каждое имя таблицы (включая имя схемы) ограничено 128 символами, если используется полный идентификатор таблицы напрямую.

    • Идентификатор сервера: введите уникальное значение для каждого сервера и клиента репликации в кластере MySQL. Значение по умолчанию ― 1000.

    Примечание.

    Задайте для каждого средства чтения разные идентификаторы сервера. Каждый клиент базы данных MySQL для чтения двоичных журналов должен иметь уникальный идентификатор, называемый идентификатором сервера. Сервер MySQL использует этот идентификатор для поддержания сетевого подключения и позиции binlog. Разные задачи, использующие один и тот же идентификатор сервера, могут привести к чтению с неправильной позиции бинлога. Поэтому рекомендуется задать для каждого средства чтения разные идентификаторы сервера.

  4. Вы можете развернуть Расширенные настройки, чтобы получить доступ к дополнительным параметрам конфигурации для источника базы данных MySQL.

    • Режим блокировки моментальных снимков: Варианты:
      • минимальное (по умолчанию): удерживает глобальную блокировку чтения только на начальном этапе для фиксации схемы и метаданных. Остальная часть моментального снимка использует транзакцию REPEATABLE READ, позволяя обновлять данные во время чтения данных.
      • расширенный: поддерживает глобальную блокировку чтения на весь срок действия снимка, в результате чего блокируются все записи. Используйте для полной согласованности, если допустима блокировка записи.
      • None: пропускает получение блокировок таблицы во время снимка. Безопасно, только если во время процесса изменения схемы не происходят.
    • Режим обработки десятичных знаков: указывает, как соединитель обрабатывает значения столбцов DECIMAL и NUMERIC.
      • Precise: представляет значения, использующие точные десятичные типы (например, Java BigDecimal), чтобы обеспечить полную точность и точность представления данных.
      • Double: преобразует значения в числа с плавающей запятой двойной точности. Это повышает удобство использования и производительность, но может привести к потере точности.
      • String: кодирует значения в виде форматированных строк. Это упрощает использование в последующих системах, но приводит к потере семантической информации о исходном числовом типе.

    Вы также можете изменить имя источника, нажав кнопку "Карандаш" для имени источника в разделе сведений о потоке справа.

    Снимок экрана: выбор таблиц, идентификатора сервера и порта для подключения к базе данных Azure MySQL (CDC).

  5. На странице «Обзор и подключение» после проверки сводки по источнику CDC для базы данных MySQL выберите «Добавить», чтобы завершить настройку.

    Снимок экрана: страница

Просмотр обновленного потока событий

  1. Вы видите источник базы данных MySQL (CDC), который добавлен в ваш поток событий в Режиме редактирования.

    Снимок экрана: добавлен источник CDC базы данных Azure MySQL в режиме редактирования с выделенной кнопкой

  2. Выберите Опубликовать, чтобы опубликовать изменения и начать передачу данных CDC базы данных MySQL в поток событий.

    Снимок экрана добавленного источника CDC базы данных Azure MySQL в режиме реального времени.

Другие соединители: