Adición de un origen CDC de base de datos MySQL a una secuencia de eventos
Nota:
Este artículo contiene referencias al término SLAVE
, un término que Microsoft ya no usa. Cuando se elimine el término del software, se eliminará también de este artículo.
En este artículo se muestra cómo agregar un origen de captura de datos modificados de MySQL a una secuencia de eventos. Actualmente, mySQL Database CDC se admite desde los siguientes servicios en los que se puede acceder a las bases de datos públicamente:
- Azure Database for MySQL
- Amazon RDS for MySQL
- Amazon Aurora MySQL
- Google Cloud SQL for MySQL (GCP).
Esta guía usa Azure Database for MySQL CDC como ejemplo.
Una vez que se añade el origen CDC de la base de datos MySQL al flujo de eventos, captura los cambios en el nivel de filas de las tablas especificadas. Estos cambios se pueden procesar en tiempo real y enviarlos a diferentes destinos para su posterior análisis.
Nota:
Este origen no se admite en las siguientes regiones de su capacidad de área de trabajo: Oeste de EE. UU. 3, Oeste de Suiza.
Requisitos previos
- Acceso a un área de trabajo en el modo de licencia de capacidad de Fabric (o) el modo de licencia de prueba con los permisos Colaborador o superior.
- Acceso a una instancia de base de datos de MySQL, como una base de datos en Azure Database for MySQL - Flexible Server.
- La base de datos de MySQL debe ser de acceso público y no estar detrás de un firewall o protegida en una red virtual.
- Si no tiene un elemento Eventstream, créelo.
Instalación de MySQL DB
El conector usa el conector Dezium MySQL para capturar los cambios en la base de datos MySQL. Debe definir un usuario de MySQL con los privilegios adecuados en todas las bases de datos en las que el Conector de mensajería puede capturar los cambios. Puede usar directamente el usuario administrador de para conectarse a la base de datos que normalmente tiene los privilegios adecuados, o puede seguir estos pasos para crear un nuevo usuario:
Nota:
La nueva cuenta de usuario o administrador y la contraseña correspondiente se usarán para conectarse a la base de datos más adelante dentro de Eventstream.
En el símbolo del sistema
mysql
, cree el usuario de MySQL:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
Conceda los privilegios necesarios al usuario:
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
Nota:
Cuando un bloqueo de lectura global no está disponible, como en opciones hospedadas como Amazon RDS o Aurora, se usan bloqueos de nivel de tabla para crear la instantánea coherente. En este caso, debe conceder el permiso
LOCK TABLES
al usuario. Además, para admitirFLUSH
operaciones durante la instantánea, es posible que también tenga que conceder privilegiosRELOAD
oFLUSH_TABLES
.Finalice los permisos del usuario:
mysql> FLUSH PRIVILEGES;
Para confirmar si el usuario o el administrador tiene concedidos los privilegios necesarios, ejecute este comando y, a continuación, se deben mostrar los privilegios necesarios en el paso 2:
SHOW GRANTS FOR user;
Para obtener más información sobre cómo conceder los permisos necesarios al usuario, consulte Conector de Debezium para MySQL: Documentación de Debezium.
Habilitación del registro binario
Debe habilitar el registro binario para la replicación de MySQL. Los registros binarios registran las actualizaciones de transacciones de las herramientas de replicación para propagar los cambios. Esta sección usa Azure Database for MySQL CDC como ejemplo para mostrar los pasos de configuración.
En la página de Azure Portal para su cuenta de Azure Database for MySQL, seleccione Parámetros del servidor en Configuración en la navegación de la izquierda.
En la página Parámetros del servidor, configure las siguientes propiedades y, a continuación, seleccione Guardar.
Para binlog_row_image, seleccione completo.
Para binlog_expire_logs_seconds, establezca el número de segundos que espera el servicio antes de purgar el archivo de registro binario. Establezca el valor para que coincida con las necesidades de su entorno, por ejemplo 86400.
Adición de mySQL DB (CDC) como origen
Si aún no ha agregado ningún origen a Eventstream, seleccione el icono Usar origen externo.
Si va a agregar el origen a un elemento Eventstream ya publicado, cambie al modo Editar, seleccione Agregar origen en la cinta de opciones y, a continuación, seleccione Orígenes externos.
En la página Seleccionar un origen de datos, busque y seleccione Conectar en el icono MySQL DB (CDC).
Configuración y conexión a MySQL DB (CDC)
En la pantalla Conectar, en Conexión, seleccione Nueva conexión para crear una conexión en la nube.
Introduzca la siguiente Configuración de conexión y Credenciales de conexión para MySQL DB y, a continuación, seleccione Conectar.
Server: La dirección del servidor de la base de datos MySQL, por ejemplo, my-mysql-server.mysql.database.azure.com.
Base de datos: el nombre de la base de datos, por ejemplo my_database.
Nombre de conexión: generado automáticamente o puede escribir un nombre nuevo para esta conexión.
nombre de usuario y contraseña: escriba las credenciales de la base de datos MySQL. Asegúrese de escribir la cuenta de administrador del servidor o la cuenta de usuario creada con los privilegios necesarios concedidos.
Escriba la siguiente información para configurar el origen de datos CDC de MySQL DB y, después, seleccione Siguiente.
Tablas: escriba una lista de nombres de tabla separados por comas. Cada nombre de tabla debe seguir el formato
<database name>.<table name>
, por ejemplo my_database.users.Id. de servidor: escriba un valor único para cada servidor y cliente de replicación en el clúster de MySQL. El valor predeterminado es 1000.
Puerto: deje el valor predeterminado sin cambios.
También puede editar el nombre de origen mediante la selección del botón de lápiz en Nombre del origen en la sección Detalles de la secuencia a la derecha.
Nota:
Establezca un identificador de servidor diferente para cada lector. Cada cliente de base de datos MySQL para leer el registro binario debe tener un identificador único, denominado Id. de servidor. MySQL Server usa este identificador para mantener la conexión de red y la posición de registro binario. Los distintos trabajos que comparten el mismo identificador de servidor pueden dar lugar a la lectura desde la posición de registro binario incorrecta. Por lo tanto, se recomienda establecer un identificador de servidor diferente para cada lector.
En la página Revisar y conectar, después de revisar el resumen del origen CDC de MySQL DB, seleccione Agregar para completar la configuración.
Nota:
El número máximo de orígenes y destinos para una secuencia de eventos es 11.
Visualización de Eventstream actualizado
Puede ver el origen de MySQL DB (CDC) agregado al flujo de eventos en el modo Edición.
Seleccione Publicar para publicar los cambios y empezar a transmitir datos CDC de MySQL DB a la secuencia de eventos.
Contenido relacionado
Otros conectores:
- Flujos de datos de Amazon Kinesis
- Azure Cosmos DB
- Azure Event Hubs
- Azure IoT Hub
- Captura de datos modificados de la base de datos Azure SQL
- Confluent Kafka
- Punto de conexión personalizado
- Google Cloud Pub/Sub
- CDC de base de datos de PostgreSQL
- Datos de ejemplo
- Eventos de Azure Blob Storage
- Evento de área de trabajo de Fabric