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


Добавить источник 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 или в режиме пробной лицензии с разрешениями уровня Contributor или выше.
  • Доступ к экземпляру базы данных 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 для 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, а затем нажмите кнопку Далее.

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

      • Используйте dbo.test.*, чтобы выбрать все таблицы, имена которых начинаются с dbo.test.
      • Используйте dbo\.(test1|test2) для выбора dbo.test1 и dbo.test2.

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

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

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

    • Режим блокировки моментальных снимков: Выберите Дополнительные параметры, чтобы выбрать Режим блокировки моментальных снимков. Доступны следующие варианты:

      • минимальное (по умолчанию): хранит глобальную блокировку чтения только на начальном этапе для записи схемы и метаданных. Остальная часть моментального снимка использует транзакцию REPEATABLE READ, позволяя обновлять данные во время чтения данных.

      • расширенные: поддерживает глобальную блокировку чтения на всю продолжительность моментального снимка, предотвращая все записи. Используйте для полной согласованности, если блокировка записи допустима.

      • None: пропускает получение блокировок таблицы во время моментального снимка. Безопасно, только если во время процесса изменения схемы не происходят.

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

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

    Примечание.

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

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

    Снимок экрана, показывающий страницу

Примечание.

Максимальное количество источников и назначений для одного потока событий — 11.

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

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

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

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

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

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