Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Puerto: el valor predeterminado es 3306. Si la conexión en la nube seleccionada está configurada en Administrar conexiones y puertas de enlace, asegúrese de que el número de puerto coincide con el establecido allí. Si no coinciden, el número de puerto de la conexión en la nube en Administrar conexiones y puertas de enlace tiene prioridad.
table: seleccione Todas las tablas o Escriba los nombres de tabla. Si selecciona este último, especifique tablas con una lista separada por comas de identificadores de tabla completos (
databaseName.tableName
).Se pueden escribir hasta 100 tablas, con cada nombre de tabla (incluido el nombre de esquema) limitado a 128 caracteres si se usan identificadores de tabla completos directamente.
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.
Nota:
Establezca un identificador de servidor diferente para cada lector. Cada cliente de base de datos MySQL para leer binlog 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.
Puede expandir Configuración avanzada para acceder a opciones de configuración adicionales para el origen CDC de base de datos MySQL:
-
Modo de bloqueo de instantáneas: las opciones son:
- Mínimo (valor predeterminado): contiene un bloqueo de lectura global solo durante la fase inicial para capturar el esquema y los metadatos. El resto de la instantánea usa una transacción REPEATABLE READ, lo que permite las actualizaciones mientras se leen los datos.
- Extendido: Mantiene un bloqueo de lectura global durante toda la duración de la instantánea, bloqueando todas las operaciones de escritura. Use para mantener la coherencia completa si el bloqueo de escritura es aceptable.
- Ninguno: omite el uso de bloqueos de tablas durante la instantánea. Solo es seguro si no se producen cambios de esquema durante el proceso.
-
Modo de control decimal: especifica cómo controla
DECIMAL
el conector yNUMERIC
los valores de columna:-
Precise
: representa valores que usan tipos decimales exactos (por ejemplo, JavaBigDecimal
) para garantizar una precisión y precisión completas en la representación de datos. -
Double
: convierte valores en números de punto flotante de precisión doble. Esto mejora la facilidad de uso y el rendimiento, pero puede provocar una pérdida de precisión. -
String
: codifica los valores como cadenas con formato. Esto facilita que se consuman en sistemas posteriores, pero se pierde información semántica sobre el tipo numérico original.
-
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.
-
Modo de bloqueo de instantáneas: las opciones son:
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.
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