Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Соединитель MySQL находится в общедоступной предварительной версии. Чтобы запросить доступ, обратитесь к группе учетной записи Azure Databricks.
Узнайте, как настроить MySQL, работающую на Amazon EC2 для обработки данных. Необходимо включить двоичное ведение журнала и настроить хранение двоичных журналов для поддержки отслеживания измененных данных.
Требования
- MySQL версии 5.7.44 или более поздней, либо 8.0 или более поздней, установленных на вашем сервере.
- Разрешение на изменение файлов конфигурации MySQL и перезапуск службы MySQL.
Изменение файла конфигурации MySQL
Двоичное ведение журнала настроено в файле конфигурации MySQL. Расположение этого файла зависит от операционной системы:
- Linux (большинство дистрибутивов):
/etc/my.cnfили/etc/mysql/my.cnf - Linux (Debian/Ubuntu):
/etc/mysql/mysql.conf.d/mysqld.cnf
Обязательные параметры конфигурации
Добавьте или измените следующие параметры в [mysqld] разделе файла конфигурации MySQL:
[mysqld]
# Enable binary logging
log-bin=mysql-bin
# Set a unique server ID (required for replication)
server-id=1
# Set binlog format to ROW for change data capture
binlog_format=ROW
# Log all columns, not just changed columns
binlog_row_image=FULL
# For MySQL 8.0 and later: Set minimum binlog retention to one day (86400 seconds). Recommended: seven days (604800 seconds)
binlog_expire_logs_seconds=604800
# For MySQL 5.7: Use expire_logs_days instead. Minimum: one day. Recommended: seven days.
# expire_logs_days=7
Рекомендации по идентификатору сервера
Параметр server-id должен быть уникальным целым числом от 1 до 4294967295. Если у вас несколько серверов MySQL, каждый из них должен иметь другой идентификатор сервера.
Для одного сервера можно использовать server-id=1. Для нескольких серверов можно использовать такое соглашение:
- Основной сервер:
server-id=1 - Реплика 1.
server-id=2 - Реплика 2:
server-id=3
Перезапустите службу MySQL
После изменения файла конфигурации перезапустите службу MySQL, чтобы применить изменения:
Linux (systemd)
sudo systemctl restart mysql
# or
sudo systemctl restart mysqld
Linux (init.d)
sudo service mysql restart
# or
sudo /etc/init.d/mysql restart
Проверка конфигурации binlog
После перезапуска MySQL убедитесь, что двоичное ведение журнала настроено правильно. Подключитесь к MySQL и выполните следующую команду:
-- Check if binary logging is enabled
SHOW VARIABLES LIKE 'log_bin';
-- Should return:
-- +---------------+-------+
-- | Variable_name | Value |
-- +---------------+-------+
-- | log_bin | ON |
-- +---------------+-------+
-- Check server ID
SHOW VARIABLES LIKE 'server_id';
-- Should return a non-zero value:
-- +---------------+-------+
-- | Variable_name | Value |
-- +---------------+-------+
-- | server_id | 1 |
-- +---------------+-------+
-- Check binlog format
SHOW VARIABLES LIKE 'binlog_format';
-- Should return:
-- +---------------+-------+
-- | Variable_name | Value |
-- +---------------+-------+
-- | binlog_format | ROW |
-- +---------------+-------+
-- Check binlog row image
SHOW VARIABLES LIKE 'binlog_row_image';
-- Should return:
-- +------------------+-------+
-- | Variable_name | Value |
-- +------------------+-------+
-- | binlog_row_image | FULL |
-- +------------------+-------+
-- For MySQL 8.0: Check retention in seconds
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';
-- For MySQL 5.7: Check retention in days
SHOW VARIABLES LIKE 'expire_logs_days';
Рекомендации по хранению binlog
Минимальный период хранения binlog составляет один день (24 часа или 86400 секунд). Databricks рекомендует период хранения binlog в семь дней (168 часов или 604800 секунд). Если задать более низкое значение, лог-файлы могут быть удалены до обработки их шлюзом приема, что требует полного обновления всех таблиц.
Полное обновление также требуется, если шлюз не может непрерывно обрабатывать бинарные логи. Если шлюз остановлен на время больше, чем binlog_expire_logs_seconds, двоичные журналы могут быть удалены до возобновления обработки данных.
Отслеживайте использование дискового пространства сервера. Для двоичных журналов требуется больше времени хранения.
Поддержка реплики чтения
Соединитель MySQL поддерживает получение данных из реплик для чтения на EC2. Чтобы настроить читаемую реплику, выполните следующие действия.
- Настройте двоичное ведение журнала на основном сервере.
- Настройте репликацию MySQL для создания реплики для чтения.
- Убедитесь, что для реплики чтения включено двоичное ведение журнала.
- Используйте строку подключения реплики чтения при создании подключения Azure Databricks.
Замечание
Между основным сервером и репликой может возникнуть задержка репликации, которая может повлиять на свежесть данных.
Конфигурация сети
Убедитесь, что сервер MySQL доступен из Azure Databricks:
- Настройте правила брандмауэра, чтобы разрешить входящий трафик через порт 3306 (или настраиваемый порт MySQL).
- При использовании облачной инфраструктуры настройте группы безопасности или сетевые списки управления доступом.
- Для локальных баз данных убедитесь в правильном сетевом подключении через VPN, Direct Connect или ExpressRoute.
- Рекомендуется использовать подключения SSL/TLS для обеспечения безопасности.
Пример правила группы безопасности (EC2)
Добавьте правило входящего трафика в группу безопасности EC2:
- Тип: MySQL
- Протокол: TCP
- Диапазон портов: 3306
- Источник: диапазоны IP-адресов Azure Databricks
Дальнейшие шаги
Теперь администратор может:
- Используйте обозреватель каталогов для создания подключения, чтобы пользователи без прав администратора могли создавать конвейеры
- Создание подключения и конвейера с помощью пользовательского интерфейса приема данных