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.
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 TABLESal usuario. Además, para admitirFLUSHoperaciones durante la instantánea, es posible que también tenga que conceder privilegiosRELOADoFLUSH_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 la secuencia de eventos, seleccione el icono Usar origen externo .
Si estás agregando el origen a una secuencia de eventos ya publicada, cambia al modo Edición. En la cinta de opciones, seleccione Agregar origen>Fuentes externas.
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) o expresiones regulares válidas. Por ejemplo:- Use
databaseName.test.*para seleccionar todas las tablas cuyos nombres empiecen pordatabaseName.test. - Use
databaseName\.(test1|test2)para seleccionardatabaseName.test1ydatabaseName.test2.
Puede mezclar ambos formatos mediante comas. El límite total de caracteres para toda la entrada es de 102 400 caracteres.
- Use
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 más opciones de configuración para el origen CDC de base de datos MySQL:
-
Modo de bloqueo de instantáneas: las opciones son:
-
Minimal (default): 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. -
Extended: mantiene un bloqueo global de lectura durante toda la duración de la instantánea, lo que bloquea todas las escrituras. Use para mantener la coherencia completa si el bloqueo de escritura es aceptable. -
None: omite la adquisición de bloqueos de tabla 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
DECIMALel conector yNUMERIClos 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.
-
-
Modo de instantánea: especifique los criterios para realizar una instantánea cuando se inicie el conector:
-
Initial: el conector ejecuta una instantánea solo cuando no se han registrado desplazamientos para el nombre del servidor lógico o si detecta que no se pudo completar una instantánea anterior. Una vez completada la instantánea, el conector comienza a transmitir registros de eventos para los cambios posteriores de la base de datos. -
InitialOnly: El conector ejecuta una instantánea solo cuando no se han registrado offsets para el nombre del servidor lógico. Una vez completada la instantánea, el conector se detiene. No realiza la transición al streaming para leer los eventos de cambio del binlog. -
NoData: el conector ejecuta una instantánea que captura solo el esquema, pero no ningún dato de tabla. Establezca esta opción si no necesita una instantánea coherente de los datos, pero solo necesita los cambios que se producen desde que se inicia el conector.
-
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