Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guía de configuración de la fuente de RDS MySQL

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 log que contienen información sobre las modificaciones de datos realizadas en una instancia de servidor MySQL, y los archivos de binlog son necesarios para la replicación. Para configurar la retención del binlog en RDS MySQL, debe habilitar el logging binario y aumentar el intervalo de retención del binlog.

Habilitar el logging binario mediante copias de seguridad automatizadas

La función de copias de seguridad automatizadas determina si el logging binario está activado o desactivado para MySQL. Las copias de seguridad automatizadas pueden configurarse para su instancia en la RDS Console yendo a Modify > Additional configuration > Backup y seleccionando la casilla Enable automated backups (si aún no está seleccionada).

Habilitación de copias de seguridad automatizadas en RDS

Recomendamos establecer el Backup retention period en un valor razonablemente alto, según el caso de uso de la replicación.

Aumentar el intervalo de retención del binlog

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.

Dónde encontrar el grupo de parámetros en RDS

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.

Botón Edit del grupo de parámetros

Los siguientes parámetros deben configurarse de la siguiente manera:

  1. binlog_format en ROW.
Binlog format en ROW
  1. binlog_row_metadata en FULL
Metadatos de fila del binlog en FULL
  1. binlog_row_image en FULL
Imagen de fila del binlog 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.

Habilitar el modo GTID

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:

  1. En la RDS Console, haz clic en tu instancia de MySQL.
  2. Haz clic en la pestaña Configuration.
  3. Haz clic en el enlace del grupo de parámetros.
  4. Haz clic en el botón Edit en la esquina superior derecha.
  5. Establece enforce_gtid_consistency en ON.
  6. Establece gtid-mode en ON.
  7. Haz clic en Save Changes en la esquina superior derecha.
  8. Reinicia tu instancia para que los cambios surtan efecto.
GTID habilitado

Configurar un usuario de base de datos

Conéctese a su instancia de MySQL de RDS como usuario administrador y ejecute los siguientes comandos:

  1. Cree un usuario específico para ClickPipes:

    CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
  2. 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';
  3. Otorgue permisos de replicación al usuario:

    GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
    GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';

Uso de la autenticación con IAM (opcional)

Instead of a password, you can authenticate the ClickPipes user with an AWS IAM role. This lets ClickPipes connect to your Amazon RDS instance without storing database credentials.

Enable IAM authentication

  1. Log in to your AWS account and go to the RDS instance you want to configure.
  2. Click Modify.
  3. Scroll to the Database authentication section.
  4. Select Password and IAM database authentication.
  5. Click Continue.
  6. Review the changes and select Apply immediately.

Create the ClickPipes user

Create the ClickPipes user with IAM authentication enabled, then grant it the same schema and replication privileges shown above:

CREATE USER 'clickpipes_iam_user' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';

Obtain the ClickHouse service IAM role ARN

  1. Log in to your ClickHouse Cloud account.
  2. Select the ClickHouse service you want to connect.
  3. Select the Settings tab.
  4. Scroll to the Network security information section at the bottom of the page.
  5. Copy the service's Service role ID (IAM) value, shown below.
Service role ID (IAM) value in the Network security information section

This value is your {ClickHouse_IAM_ARN} — the role ClickPipes uses to access your RDS instance.

Obtain the resource ID

  1. Log in to your AWS account and go to the RDS instance you want to configure.
  2. Select the Configuration tab.
  3. Note the Resource ID value — it looks like db-xxxxxxxxxxxxxx. This is your {RDS_RESOURCE_ID}, which you reference in the permissions policy.

Create the IAM role

  1. Log in to your AWS account with an IAM user that has permission to create and manage IAM roles.
  2. Open the IAM console.
  3. Create a new IAM role with the following trust and permissions policies.

    Trust policy (replace {ClickHouse_IAM_ARN} with the IAM role ARN of your ClickHouse instance):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "{ClickHouse_IAM_ARN}"
          },
          "Action": [
            "sts:AssumeRole",
            "sts:TagSession"
          ]
        }
      ]
    }

    Permissions policy (replace {RDS_RESOURCE_ID} with the resource ID of your RDS instance, {RDS_REGION} with its region, and {AWS_ACCOUNT} with your AWS account ID):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "rds-db:connect"
          ],
          "Resource": [
            "arn:aws:rds-db:{RDS_REGION}:{AWS_ACCOUNT}:dbuser:{RDS_RESOURCE_ID}/clickpipes_iam_user"
          ]
        }
      ]
    }
  4. Once the role is created, copy its ARN. This is your {RDS_ACCESS_IAM_ROLE_ARN}.

You can now use this IAM role to authenticate with your RDS instance from ClickPipes.

Configurar el acceso a la red

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.

¿Dónde encontrar el grupo de seguridad en RDS MySQL?
Editar las reglas de entrada del grupo de seguridad anterior

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.

Próximos pasos

Ahora que su instancia de Amazon RDS MySQL está configurada para la replicación mediante binlog y se conecta de forma segura a ClickHouse Cloud, puede crear su primer ClickPipe para MySQL. Para preguntas frecuentes sobre MySQL CDC, consulte la página de preguntas frecuentes de MySQL.

Navigation