Todos os produtos
Search
Central de documentação

ApsaraMQ for Kafka:Criar um conector de origem MySQL

Última atualização: Jun 27, 2026

Um conector de origem MySQL sincroniza alterações no nível de linha de um banco de dados ApsaraDB RDS for MySQL para tópicos na sua instância do ApsaraMQ for Kafka. O conector usa o DataWorks para capturar eventos de captura de dados de alteração (CDC) — incluindo operações INSERT, UPDATE e DELETE — e os entrega aos tópicos do Kafka.

Como funciona

Ao criar um conector de origem MySQL pelo console do ApsaraMQ for Kafka, o sistema executa automaticamente as seguintes ações:

  1. Ativa o DataWorks Basic Edition (gratuito).

  2. Cria um workspace do DataWorks e um grupo de recursos exclusivo para integração de dados.

  3. Gera tópicos de destino na sua instância do Kafka — um tópico por tabela de origem.

O grupo de recursos exclusivo (4 vCPUs, 8 GB de memória) executa as tarefas de sincronização de dados. Esses grupos usam assinatura mensal e se renovam automaticamente ao expirar.

Importante

Grupos de recursos exclusivos para integração de dados são serviços pagos. Para detalhes sobre preços, consulte Visão geral do faturamento.

mysql_connector

Nomenclatura de tópicos e partições

O DataWorks gera um tópico de destino para cada tabela de origem seguindo este padrão de nomenclatura:

<topic-prefix>_<source-table-name>

O caractere sublinhado é adicionado automaticamente. Por exemplo, se o prefixo for mysql e as tabelas de origem forem table_1, table_2 e table_n, os tópicos gerados serão mysql_table_1, mysql_table_2 e mysql_table_n.

table_topic_match

A quantidade de partições varia conforme a existência de chave primária na tabela de origem:

Tipo de tabela de origem

Partições por tópico

Com chave primária

6

Sem chave primária

1

Certifique-se de que sua instância do Kafka tenha tópicos e partições disponíveis em quantidade suficiente. Se a instância esgotar qualquer um desses recursos, a criação do tópico falhará e não será possível implantar o conector.

Região e rede

Mesma região — Quando a instância do RDS MySQL e a instância do Kafka estão na mesma região, o sistema cria automaticamente uma interface de rede elástica (ENI) na virtual private cloud (VPC) correspondente e a associa à instância do Elastic Compute Service (ECS) do grupo de recursos exclusivo. Nenhuma configuração manual de rede é necessária.

Regiões diferentes — Quando as instâncias estão em regiões distintas, garanta que:

  • Existe uma instância da Cloud Enterprise Network (CEN) na mesma conta Alibaba Cloud.

  • As VPCs tanto da instância do RDS MySQL quanto da instância do Kafka estejam anexadas à instância da CEN.

  • A largura de banda entre regiões esteja configurada para a instância da CEN.

Sem a configuração adequada da CEN, o sistema pode criar uma instância da CEN automaticamente, mas com largura de banda mínima. Isso pode causar erros de conectividade durante a criação do conector ou em tempo de execução.

Limites do grupo de recursos exclusivo

Limite

Valor

Máximo de conectores por grupo de recursos

3

Máximo de associações de ENI de VPC por grupo de recursos

2

Se um grupo de recursos existente tiver menos de três conectores, o DataWorks o reutilizará para novos conectores. No entanto, caso haja sobreposição de blocos CIDR ou outras restrições técnicas que impeçam a reutilização, o DataWorks criará um novo grupo de recursos.

Pré-requisitos

Antes de começar, verifique se você tem:

Permissões da conta do banco de dados

A conta do banco de dados MySQL deve ter pelo menos as seguintes permissões:

Permissão

Finalidade

SELECT

Ler linhas das tabelas de origem

REPLICATION SLAVE

Conectar-se e ler o log binário do MySQL

REPLICATION CLIENT

Consultar o status do log binário

Conceda essas permissões com a seguinte instrução:

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '<your-username>'@'%';

Substitua <your-username> pelo nome de usuário real da conta do banco de dados.

Permissões de usuário RAM

Caso utilize um usuário do Resource Access Management (RAM) em vez de uma conta Alibaba Cloud, anexe estas políticas ao usuário RAM:

Política

Descrição

AliyunDataWorksFullAccess

Gerenciar todos os recursos do DataWorks na conta Alibaba Cloud

AliyunBSSOrderAccess

Adquirir serviços da Alibaba Cloud

Para instruções, consulte Conceder permissões a usuários RAM.

Criar e implantar o conector

  1. Faça login no console do ApsaraMQ for Kafka.

  2. Na seção Resource Distribution da página Overview, selecione a região da sua instância.

  3. No painel de navegação à esquerda, clique em Connectors.

  4. Na página Connectors, selecione sua instância na lista suspensa Select Instance e clique em Create Connector.

  5. Conclua o assistente de três etapas: Clique em Next. Step 2: Configure source service Selecione ApsaraDB RDS for MySQL como serviço de origem e configure os parâmetros a seguir: Clique em Next. Step 3: Configure destination service Confirme a instância do Kafka de destino e clique em Create.

    Step 1: Configure basic information

    Parâmetro

    Descrição

    Exemplo

    Name

    Nome exclusivo do conector dentro da instância. De 1 a 48 caracteres; permite dígitos, letras minúsculas e hifens (-). Não pode começar com hífen. O sistema cria automaticamente um consumer group chamado connect-<connector-name>.

    kafka-source-mysql

    Instance

    Exibe o nome e o ID da instância do Kafka selecionada.

    demo alikafka_post-cn-st21p8vj****

    Parâmetro

    Descrição

    Exemplo

    Region of ApsaraDB RDS for MySQL Instance

    Região da instância do RDS MySQL de origem.

    China (Shenzhen)

    ApsaraDB RDS for MySQL Instance ID

    ID da instância do banco de dados de origem.

    rm-wz91w3vk6owmz****

    Database Name

    Nome do banco de dados a ser sincronizado.

    mysql-to-kafka

    Database Account

    Nome de usuário para a conexão com o banco de dados.

    mysql_to_kafka

    Password of Database Account

    Senha para a conexão com o banco de dados.

    --

    Database Table

    Um ou mais nomes de tabelas, separados por vírgulas (,). Cada tabela corresponde a um tópico.

    mysql_tbl

    Tables to Automatically Add

    Expressão regular para detectar e sincronizar novas tabelas automaticamente. Use .* para todas as tabelas.

    .*

    Topic Prefix

    Prefixo para nomes de tópicos gerados automaticamente. Deve ser globalmente único.

    mysql

  6. Na página Connectors, localize o conector e clique em Deploy na coluna Actions. Quando a coluna Status exibir Running, o conector estará ativo e sincronizando dados.

Nota

Se a implantação do conector falhar, verifique se todos os pré-requisitos foram atendidos. Para modificar as configurações do conector após a implantação, clique em

Task Configurations

na coluna

Actions

para abrir o console do DataWorks.

Verificar a sincronização de dados

  1. Insira uma linha de teste em uma tabela de origem: Para mais exemplos de SQL, consulte Instruções SQL comuns para MySQL.

       INSERT INTO mysql_tbl
           (mysql_title, mysql_author, submission_date)
           VALUES
           ("mysql2kafka", "tester", NOW());
  2. Use o recurso de consulta de mensagens no ApsaraMQ for Kafka para confirmar que os dados chegaram ao tópico correspondente. Para instruções, consulte Consultar mensagens. Um evento INSERT sincronizado com sucesso tem a seguinte aparência:

       {
           "schema": {
               "dataColumn": [
                   {
                       "name": "mysql_id",
                       "type": "LONG"
                   },
                   {
                       "name": "mysql_title",
                       "type": "STRING"
                   },
                   {
                       "name": "mysql_author",
                       "type": "STRING"
                   },
                   {
                       "name": "submission_date",
                       "type": "DATE"
                   }
               ],
               "primaryKey": [
                   "mysql_id"
               ],
               "source": {
                   "dbType": "MySQL",
                   "dbName": "mysql_to_kafka",
                   "tableName": "mysql_tbl"
               }
           },
           "payload": {
               "before": null,
               "after": {
                   "dataColumn": {
                       "mysql_title": "mysql2kafka",
                       "mysql_author": "tester",
                       "submission_date": 1614700800000
                   }
               },
               "sequenceId": "1614748790461000000",
               "timestamp": {
                   "eventTime": 1614748870000,
                   "systemTime": 1614748870925,
                   "checkpointTime": 1614748870000
               },
               "op": "INSERT",
               "ddl": null
           },
           "version": "0.0.1"
       }

Campos da mensagem

Campo

Descrição

schema.dataColumn

Nomes de colunas e tipos de dados da tabela de origem

schema.primaryKey

Colunas de chave primária da tabela de origem

schema.source

Tipo do banco de dados de origem, nome do banco de dados e nome da tabela

payload.before

Estado da linha antes da alteração (null para operações INSERT)

payload.after

Estado da linha após a alteração (null para operações DELETE)

payload.op

Tipo de operação: INSERT, UPDATE ou DELETE

payload.timestamp

Timestamps de evento, sistema e checkpoint

Para a especificação completa do formato de mensagem, consulte Formatos de mensagem.

Próximos passos