Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Guia de configuração da origem RDS MySQL

Este guia passo a passo mostra como configurar o Amazon RDS MySQL para replicar dados para o ClickHouse Cloud usando o ClickPipe do MySQL. Para perguntas frequentes sobre MySQL CDC, consulte a página de perguntas frequentes do MySQL.

Habilitar a retenção do log binário

O log binário consiste em um conjunto de arquivos de log que contém informações sobre modificações de dados feitas em uma instância de servidor MySQL, e os arquivos de log binário são necessários para a replicação. Para configurar a retenção do log binário no MySQL do RDS, você deve habilitar o log binário e aumentar o intervalo de retenção do binlog.

Habilitar o log binário com backup automatizado

O recurso de backups automatizados determina se o log binário está ativado ou desativado no MySQL. Os backups automatizados podem ser configurados para sua instância no Console do RDS acessando Modify > Additional configuration > Backup e selecionando a caixa de seleção Enable automated backups (caso ainda não esteja selecionada).

Habilitando backups automatizados no RDS

Recomendamos definir o Backup retention period como um valor razoavelmente longo, dependendo do caso de uso da replicação.

Aumente o intervalo de retenção do binlog

Por padrão, o Amazon RDS expurga o log binário o mais rápido possível (isto é, lazy purging). Recomendamos aumentar o intervalo de retenção do binlog para pelo menos 72 horas para garantir a disponibilidade dos arquivos de log binário para replicação em cenários de falha. Para definir um intervalo de retenção do log binário (binlog retention hours), use o procedimento mysql.rds_set_configuration:

mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);

Se essa configuração não estiver definida ou estiver ajustada com um intervalo muito baixo, isso pode causar lacunas nos logs binários, comprometendo a capacidade do ClickPipes de retomar a replicação.

Configure as configurações do binlog

Você pode encontrar o grupo de parâmetros clicando na instância MySQL no Console do RDS e, em seguida, acessando a aba Configuration.

Onde encontrar o grupo de parâmetros no RDS

Clique no link do grupo de parâmetros para acessar a página dedicada a ele. Você deverá ver um botão Edit no canto superior direito.

Editar grupo de parâmetros

Os parâmetros a seguir precisam ser definidos da seguinte forma:

  1. binlog_format como ROW.
Formato do binlog como ROW
  1. binlog_row_metadata como FULL
Metadados de linha do binlog como FULL
  1. binlog_row_image como FULL
Imagem de linha do binlog como FULL

Em seguida, clique em Save Changes no canto superior direito. Talvez seja necessário reiniciar a instância para que as alterações entrem em vigor — você saberá disso se Pending reboot aparecer ao lado do link do grupo de parâmetros na aba Configuration da instância do RDS.

Ative o modo GTID

Global Transaction Identifiers (GTIDs) são IDs exclusivos atribuídos a cada transação confirmada no MySQL. Eles simplificam a replicação do binlog e tornam a solução de problemas mais simples. Recomendamos ativar o modo GTID para que o ClickPipe do MySQL possa usar a replicação baseada em GTID.

A replicação baseada em GTID é compatível com o Amazon RDS for MySQL nas versões 5.7, 8.0 e 8.4. Para ativar o modo GTID na sua instância do Aurora MySQL, siga estas etapas:

  1. No Console do RDS, clique na sua instância do MySQL.
  2. Clique na guia Configuration.
  3. Clique no link do grupo de parâmetros.
  4. Clique no botão Edit no canto superior direito.
  5. Defina enforce_gtid_consistency como ON.
  6. Defina gtid-mode como ON.
  7. Clique em Save Changes no canto superior direito.
  8. Reinicie sua instância para que as alterações entrem em vigor.
GTID ativado

Configure um usuário de banco de dados

Conecte-se à sua instância do RDS MySQL como um usuário administrador e execute os seguintes comandos:

  1. Crie um usuário dedicado para o ClickPipes:

    CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
  2. Conceda permissões no schema. O exemplo a seguir mostra as permissões para o banco de dados mysql. Repita esses comandos para cada banco de dados e host que você quiser replicar:

    GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
  3. Conceda permissões de replicação ao usuário:

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

Usando autenticação 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.

Configure o acesso à rede

Controle de acesso por IP

Para restringir o tráfego até sua instância do Aurora MySQL, adicione os IPs NAT estáticos documentados às regras de entrada do seu Security Group do RDS.

Onde encontrar o Security Group no RDS MySQL?
Edite as regras de entrada do Security Group acima

Para se conectar à sua instância do RDS por uma rede privada, você pode usar o AWS PrivateLink. Siga o guia de configuração do AWS PrivateLink para ClickPipes para configurar a conexão.

Próximos passos

Agora que sua instância do MySQL no Amazon RDS está configurada para replicação por binlog e conectada com segurança ao ClickHouse Cloud, você pode criar seu primeiro ClickPipe do MySQL. Para perguntas comuns sobre MySQL CDC, consulte a página de FAQs do MySQL.

Navigation