Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
В этой статье содержатся ссылки на термин 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.
В командной строке
mysql
создайте пользователя MySQL:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
Предоставьте пользователю необходимые привилегии:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
Примечание.
Если глобальная блокировка чтения недоступна, например, в облачных решениях, таких как Amazon RDS или Aurora, используются блокировки на уровне таблицы для создания согласованного снимка состояния. В этом случае необходимо предоставить пользователю разрешение
LOCK TABLES
. Кроме того, для поддержки операцийFLUSH
во время моментального снимка также может потребоваться предоставить привилегииRELOAD
илиFLUSH_TABLES
.Завершите работу с разрешениями пользователя:
mysql> FLUSH PRIVILEGES;
Чтобы убедиться, что у пользователя или администратора есть необходимые привилегии, выполните следующую команду, а затем необходимо отобразить необходимые привилегии на шаге 2.
SHOW GRANTS FOR user;
Дополнительные сведения о предоставлении необходимых разрешений пользователю см. в документации по Debezium connector for MySQL: Debezium Documentation.
Включение binlog
Необходимо включить двоичное ведение журнала для репликации MySQL. Двоичные журналы записывают обновления транзакций для средств репликации для распространения изменений. В этом разделе используется База данных Azure для MySQL CDC в качестве примера для демонстрации шагов конфигурации.
На странице портала Azure для вашей учетной записи Azure Database for MySQL выберите Параметры сервера в разделе "Параметры" в области навигации слева.
На странице параметров сервера настройте следующие свойства и нажмите кнопку "Сохранить".
Для binlog_row_image выберите полный.
Для binlog_expire_logs_seconds задайте количество секунд, ожидаемых службой до очистки файла двоичного журнала. Задайте значение, соответствующее потребностям вашей среды, например 86400.
Добавление базы данных MySQL (CDC) в качестве источника
Если вы еще не добавили источник в поток событий, выберите "Использовать внешнюю плитку источника ".
Если вы добавляете источник в уже опубликованный поток событий, перейдите в режим редактирования, выберите "Добавить источник" на ленте и выберите "Внешние источники".
На странице "Выбор источника данных" найдите и выберите "Подключиться" на плитке Базы данных MySQL (CDC).
Настройка и подключение к базе данных MySQL (CDC)
На экране "Подключение" в разделе "Подключение" выберите "Создать подключение", чтобы создать облачное подключение.
Введите следующие параметры подключения и учетные данные подключения для базы данных MySQL, а затем выберите Connect.
сервер : адрес сервера базы данных MySQL, например my-mysql-server.mysql.database.azure.com.
База данных: имя базы данных, например my_database.
Имя подключения: автоматически создано или введите новое имя для этого подключения.
имя пользователя и пароль: введите учетные данные для базы данных MySQL. Обязательно введите учетную запись администратора сервера или учетную запись пользователя, созданную с необходимыми привилегиями.
Введите следующую информацию, чтобы настроить источник данных CDC базы данных MySQL, а затем нажмите кнопку Далее.
порт: значение по умолчанию — 3306. Если выбранное облачное подключение настроено в Управление подключениями и шлюзами, убедитесь, что номер порта соответствует тому, который указан там. Если они не соответствуют, номер порта в облачном подключении в Управление подключениями и шлюзами имеет приоритет.
таблица: выберите Все таблицы или введите имя(я) таблицы. Если выбрать последний, укажите таблицы, используя разделенный запятыми список полных идентификаторов таблиц (
databaseName.tableName
).Можно ввести до 100 таблиц, причем каждое имя таблицы (включая имя схемы) ограничено 128 символами, если используется полный идентификатор таблицы напрямую.
Идентификатор сервера: введите уникальное значение для каждого сервера и клиента репликации в кластере MySQL. Значение по умолчанию ― 1000.
Примечание.
Задайте для каждого средства чтения разные идентификаторы сервера. Каждый клиент базы данных MySQL для чтения двоичных журналов должен иметь уникальный идентификатор, называемый идентификатором сервера. Сервер MySQL использует этот идентификатор для поддержания сетевого подключения и позиции binlog. Разные задачи, использующие один и тот же идентификатор сервера, могут привести к чтению с неправильной позиции бинлога. Поэтому рекомендуется задать для каждого средства чтения разные идентификаторы сервера.
Вы можете развернуть Расширенные настройки, чтобы получить доступ к дополнительным параметрам конфигурации для источника базы данных MySQL.
-
Режим блокировки моментальных снимков: Варианты:
- минимальное (по умолчанию): удерживает глобальную блокировку чтения только на начальном этапе для фиксации схемы и метаданных. Остальная часть моментального снимка использует транзакцию REPEATABLE READ, позволяя обновлять данные во время чтения данных.
- расширенный: поддерживает глобальную блокировку чтения на весь срок действия снимка, в результате чего блокируются все записи. Используйте для полной согласованности, если допустима блокировка записи.
- None: пропускает получение блокировок таблицы во время снимка. Безопасно, только если во время процесса изменения схемы не происходят.
-
Режим обработки десятичных знаков: указывает, как соединитель обрабатывает значения столбцов
DECIMAL
иNUMERIC
.-
Precise
: представляет значения, использующие точные десятичные типы (например, JavaBigDecimal
), чтобы обеспечить полную точность и точность представления данных. -
Double
: преобразует значения в числа с плавающей запятой двойной точности. Это повышает удобство использования и производительность, но может привести к потере точности. -
String
: кодирует значения в виде форматированных строк. Это упрощает использование в последующих системах, но приводит к потере семантической информации о исходном числовом типе.
-
Вы также можете изменить имя источника, нажав кнопку "Карандаш" для имени источника в разделе сведений о потоке справа.
-
Режим блокировки моментальных снимков: Варианты:
На странице «Обзор и подключение» после проверки сводки по источнику CDC для базы данных MySQL выберите «Добавить», чтобы завершить настройку.
Просмотр обновленного потока событий
Вы видите источник базы данных MySQL (CDC), который добавлен в ваш поток событий в Режиме редактирования.
Выберите Опубликовать, чтобы опубликовать изменения и начать передачу данных CDC базы данных MySQL в поток событий.
Связанный контент
Другие соединители:
- Потоки данных Amazon Kinesis
- Azure Cosmos DB
- Центры событий Azure
- Центр Интернета вещей Azure
- Изменение данных в базе данных SQL Azure (CDC)
- Confluent Kafka
- Пользовательская конечная точка
- Google Cloud Pub/Sub
- База данных PostgreSQL CDC
- Пример данных
- события хранилища блоб-объектов Azure
- Событие рабочей области Fabric