Esta guía paso a paso le muestra cómo configurar Amazon RDS MySQL para replicar datos en ClickHouse Cloud mediante ClickPipe para MySQL. Para consultas frecuentes sobre MySQL CDC, consulte la página de preguntas frecuentes de MySQL.
Habilitar la retención del binlog
El binlog es un conjunto de archivos de registro que contienen información sobre las modificaciones de datos realizadas en una instancia de servidor MySQL, y estos archivos son necesarios para la replicación. Para configurar la retención del binlog en RDS MySQL, debe habilitar el registro binario y aumentar el intervalo de retención del binlog.
La función de copias de seguridad automatizadas determina si el registro binario está activado o desactivado en MySQL. Puede configurar las copias de seguridad automatizadas de su instancia en la RDS Console; para ello, vaya a Modify > Additional configuration > Backup y seleccione la casilla Enable automated backups (si aún no está seleccionada).
Recomendamos establecer el Período de retención de copias de seguridad en un valor lo suficientemente largo, según el caso de uso de la replicación.
2. Aumente el intervalo de retención del binlog
Si ClickPipes intenta reanudar la replicación y los archivos de binlog necesarios se han eliminado debido al valor de retención del binlog configurado, el ClickPipe entrará en un estado de error y será necesaria una resincronización.
De forma predeterminada, Amazon RDS purga el binlog lo antes posible (es decir, purgado diferido). Recomendamos aumentar el intervalo de retención del binlog a al menos 72 horas para garantizar la disponibilidad de los archivos de binlog para la replicación en escenarios de fallo. Para establecer un intervalo de retención del binlog (binlog retention hours), use el procedimiento mysql.rds_set_configuration:
mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);
Si esta configuración no está definida o se establece con un intervalo demasiado bajo, puede provocar huecos en los logs binarios y comprometer la capacidad de ClickPipes para reanudar la replicación.
Configurar los ajustes de binlog
Puedes encontrar el grupo de parámetros haciendo clic en tu instancia de MySQL en la RDS Console y, a continuación, navegando a la pestaña Configuration.
Si tienes un cluster de MySQL, los parámetros indicados a continuación pueden encontrarse en el grupo de parámetros del DB cluster en lugar del grupo de la DB instance.
Haz clic en el enlace del grupo de parámetros, que te llevará a su página específica. Deberías ver un botón Edit en la esquina superior derecha.
Los siguientes parámetros deben configurarse de la siguiente manera:
binlog_format en ROW.
binlog_row_metadata en FULL
binlog_row_image en FULL
Luego, haz clic en Save Changes en la esquina superior derecha. Puede que necesites reiniciar la instancia para que los cambios surtan efecto; una forma de comprobarlo es si ves Pending reboot junto al enlace del grupo de parámetros en la pestaña Configuration de la instancia de RDS.
El ClickPipe para MySQL también admite la replicación sin el modo GTID. Sin embargo, se recomienda habilitar el modo GTID para obtener un mejor rendimiento y facilitar la resolución de problemas.
Los Global Transaction Identifiers (GTIDs) son identificadores únicos asignados a cada transacción confirmada en MySQL. Simplifican la replicación del binlog y facilitan la resolución de problemas. Recomendamos habilitar el modo GTID para que el ClickPipe para MySQL pueda usar replicación basada en GTID.
La replicación basada en GTID es compatible con Amazon RDS para MySQL versiones 5.7, 8.0 y 8.4. Para habilitar el modo GTID en tu instancia de Aurora MySQL, sigue estos pasos:
- En la RDS Console, haz clic en tu instancia de MySQL.
- Haz clic en la pestaña Configuration.
- Haz clic en el enlace del grupo de parámetros.
- Haz clic en el botón Edit en la esquina superior derecha.
- Establece
enforce_gtid_consistency en ON.
- Establece
gtid-mode en ON.
- Haz clic en Save Changes en la esquina superior derecha.
- Reinicia tu instancia para que los cambios surtan efecto.
El ClickPipe para MySQL también admite la replicación sin el modo GTID. Sin embargo, se recomienda habilitar el modo GTID para obtener un mejor rendimiento y facilitar la resolución de problemas.
Conéctese a su instancia de MySQL de RDS como usuario administrador y ejecute los siguientes comandos:
-
Cree un usuario específico para ClickPipes:
CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
-
Otorgue permisos sobre el esquema. El siguiente ejemplo muestra los permisos para la base de datos
mysql. Repita estos comandos para cada base de datos y host que desee replicar:
GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
-
Otorgue permisos de replicación al usuario:
GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
Control de acceso basado en IP
Para restringir el tráfico hacia su instancia de Aurora MySQL, agregue las IP NAT estáticas documentadas a las reglas de entrada del grupo de seguridad de RDS.
Acceso privado a través de AWS PrivateLink
Para conectarse a su instancia de RDS a través de una red privada, puede usar AWS PrivateLink. Siga la guía de configuración de AWS PrivateLink para ClickPipes para establecer la conexión.
Ahora que su instancia de Amazon RDS MySQL está configurada para la replicación de binlog y se conecta de forma segura a ClickHouse Cloud, puede crear su primer ClickPipe para MySQL. Si tiene preguntas frecuentes sobre MySQL CDC, consulte la página de preguntas frecuentes de MySQL.