Partilhar via


Adicionar fonte CDC do Banco de Dados MySQL a um fluxo de eventos

Nota

Este artigo contém referências ao termo SLAVE, um termo que a Microsoft já não utiliza. Quando o termo for removido do software, iremos removê-lo deste artigo.

Este artigo mostra como adicionar uma fonte do MySQL Change Data Capture a um fluxo de eventos. Atualmente, o MySQL Database CDC é suportado pelos seguintes serviços onde os bancos de dados podem ser acessados publicamente:

  • Banco de Dados do Azure para MySQL
  • Amazon RDS para MySQL
  • Amazon Aurora MySQL
  • Google Cloud SQL para MySQL (GCP).

Este guia usa Banco de Dados do Azure para MySQL CDC como exemplo.

Depois que a fonte CDC do Banco de Dados MySQL é adicionada ao fluxo de eventos, ela captura as alterações no nível da linha nas tabelas especificadas. Essas alterações podem ser processadas em tempo real e enviadas para diferentes destinos para análise posterior.

Nota

Esta origem não é suportada nas seguintes regiões da capacidade do seu espaço de trabalho: Oeste US3, Suíça Oeste.

Pré-requisitos

  • Acesso a um espaço de trabalho no modo de licença de capacidade de malha (ou) no modo de licença de avaliação com permissões de Colaborador ou superiores.
  • Acesso a uma instância do Banco de Dados MySQL, como: um banco de dados no Banco de Dados do Azure para MySQL - Servidor Flexível.
  • Seu banco de dados MySQL deve ser acessível publicamente e não estar protegido em um firewall ou protegido em uma rede virtual.
  • Se você não tiver um eventstream, crie um eventstream.

Configurar o banco de dados MySQL

O conector usa o conector Debezium MySQL para capturar alterações em seu banco de dados MySQL. Você deve definir um usuário MySQL com privilégios apropriados em todos os bancos de dados de onde o Messaging Connector pode capturar as alterações. Você pode usar diretamente o utilizador administrador para se conectar ao banco de dados que normalmente tem os privilégios apropriados, ou pode seguir estas etapas para criar um novo utilizador:

Nota

A nova conta de usuário ou administrador e a senha correspondente serão usadas para se conectar ao banco de dados posteriormente dentro do Eventstream.

  1. No prompt de comando, crie o mysql usuário MySQL:

    mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
    
  2. Conceda os privilégios necessários ao usuário:

    mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
    

    Nota

    Quando um bloqueio de leitura global não está disponível, como em opções hospedadas como Amazon RDS ou Aurora, os bloqueios no nível da tabela são usados para criar o snapshot consistente. Neste caso, precisas de conceder a permissão LOCK TABLES ao utilizador. Além disso, para dar suporte a operações de FLUSH durante o snapshot, você também pode precisar conceder privilégios de RELOAD ou FLUSH_TABLES.

  3. Finalize as permissões do usuário:

    mysql> FLUSH PRIVILEGES;
    

Para confirmar se o usuário ou administrador tem os privilégios necessários concedidos, execute este comando e, em seguida, os privilégios necessários na etapa #2 devem ser mostrados:

SHOW GRANTS FOR user;

Para obter mais informações sobre como conceder as permissões necessárias ao usuário, consulte Debezium connector for MySQL: Debezium Documentation.

Ativar o binlog

Você deve habilitar o log binário para replicação do MySQL. Os logs binários registram atualizações de transações para ferramentas de replicação para propagar alterações. Esta seção usa Banco de Dados do Azure para MySQL CDC como exemplo para mostrar as etapas de configuração.

  1. Na página do portal do Azure para sua conta do Banco de Dados do Azure para MySQL, selecione Parâmetros do servidor em Configurações na navegação à esquerda.

  2. Na página Parâmetros do servidor, configure as seguintes propriedades e selecione Salvar.

    • Para binlog_row_image, selecione completo.

    • Por binlog_expire_logs_seconds, defina o número de segundos que o serviço aguarda antes que o arquivo de log binário seja limpo. Defina o valor para corresponder às necessidades do seu ambiente, por exemplo 86400.

    Uma captura de tela das configurações de binlog para replicação em Parâmetros do servidor.

Adicionar MySQL DB (CDC) como fonte

Se você ainda não adicionou nenhuma fonte ao seu fluxo de eventos, selecione Usar bloco de origem externa.

Captura de ecrã que mostra a seleção de Utilizar mosaico de origem externa.

Se estiver a adicionar a origem a um fluxo de eventos já publicado, mude para o modo de edição , selecione Adicionar origem no friso e, em seguida, selecione Fontes externas.

Captura de tela que mostra a seleção do menu Adicionar fonte a fontes externas.

Na página Selecione uma fonte de dados, procure e selecione Conectar no bloco MySQL DB (CDC).

Captura de tela que mostra a seleção do MySQL DB (CDC) como o tipo de origem no assistente Obter eventos.

Configurar e conectar-se ao MySQL DB (CDC)

  1. No ecrã Ligar, em Ligação, selecione Nova ligação para criar uma ligação à nuvem.

    Captura de ecrã que mostra a página Ligar.

  2. Insira as seguintes definições de ligação e credenciais de ligação para o seu banco de dados MySQL, e, em seguida, selecione Conectar.

    • Server: O endereço do servidor do seu banco de dados MySQL, por exemplo, my-mysql-server.mysql.database.azure.com.

    • Banco de dados: O nome do banco de dados, por exemplo , my_database.

    • Nome da conexão: gerado automaticamente ou você pode inserir um novo nome para essa conexão.

    • Nome de utilizador e Senha: Insira as credenciais para o seu banco de dados MySQL. Certifique-se de inserir a conta de administrador do servidor ou a conta de usuário criada com os privilégios necessários concedidos.

      Uma captura de tela das configurações de conexão para o Azure MySQL DB (CDC).

  3. Insira as seguintes informações para configurar a fonte de dados MySQL DB CDC e selecione Avançar.

    • Tabela(s): insira uma lista de nomes de tabelas separados por vírgulas. Cada nome de tabela deve seguir o formato <database name>.<table name>, por exemplo , my_database.users.

    • ID do servidor: insira um valor exclusivo para cada servidor e cliente de replicação no cluster MySQL. O valor predefinido é 1000.

    • Porta: Deixe o valor padrão inalterado.

      Uma captura de tela da seleção de Tabelas, ID do Servidor e Porta para a conexão do Azure MySQL DB (CDC).

    Você também pode editar o nome da fonte selecionando o botão Lápis para Nome da fonte na seção Detalhes do fluxo à direita.

    Nota

    Defina um ID de servidor diferente para cada leitor. Cada cliente de banco de dados MySQL para leitura binlog deve ter um id exclusivo, chamado Server ID. O MySQL Server usa esse ID para manter a conexão de rede e a posição do binlog. Trabalhos diferentes compartilhando a mesma ID do servidor podem resultar na leitura da posição errada do binlog. Portanto, é recomendável definir um ID de servidor diferente para cada leitor.

  4. Na página Review + connect, depois de analisar o resumo da fonte de dados MySQL DB CDC, selecione Adicionar para concluir a configuração.

    Captura de ecrã que mostra a página Rever + ligar com o botão Adicionar selecionado.

Nota

O número máximo de fontes e destinos para um eventstream é 11.

Ver fluxo de eventos atualizado

  1. Você vê a fonte MySQL DB (CDC) adicionada ao seu fluxo de eventos no modo de edição .

    Uma captura de tela da fonte de CDC do Azure MySQL DB adicionada no modo de edição com o botão Publicar realçado.

  2. Selecione Publicar para publicar as alterações e começar a transmitir dados do MySQL DB CDC para o fluxo de eventos.

    Uma captura de tela da fonte de CDC do Banco de Dados MySQL do Azure adicionada no modo Live.

Outros conectores: