Compartilhar via


Adicionar origem da CDA do Banco de Dados MySQL para um Eventstream

Observação

Este artigo contém referências ao termo SLAVE, um termo que a Microsoft não usa mais. Quando o termo for removido do software, também o removeremos deste artigo.

Este artigo mostra como adicionar uma fonte do MySQL Change Data Capture a um fluxo de eventos. Atualmente, o CDC do Banco de Dados MySQL tem suporte nos seguintes serviços em que 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 a CDC do Banco de Dados do Azure para MySQL como exemplo.

Depois que a origem CDC do Banco de Dados MySQL for adicionada ao fluxo de eventos, ela capturará alterações de linha nas tabelas especificadas. Essas alterações podem ser processadas em tempo real e enviadas para destinos diferentes para análise posterior.

Observação

Não há suporte para esta origem nas seguintes regiões de capacidade do espaço de trabalho: Oeste dos EUA 3 e Oeste da Suíça.

Pré-requisitos

  • Acesso a um espaço de trabalho no modo de licença de capacidade do Fabric (ou) no modo de licença de Avaliação com permissões de Colaborador ou superior.
  • 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 precisa ter acesso público e não estar protegido por firewall ou assegurado em uma rede virtual.
  • Caso não tenha um Eventstream, crie um Eventstream.

Configurar um BD MySQL

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

Observação

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 mysql, crie o 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'@'%';
    

    Observação

    Quando um bloqueio de leitura global não está disponível, como em opções hospedadas como o Amazon RDS ou o Aurora, bloqueios no nível da tabela são usados para criar o instantâneo consistente. Nesse caso, você precisa conceder permissão de LOCK TABLES ao usuário. Além disso, para dar suporte a operações de FLUSH durante o instantâneo, talvez você também precise 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 nº 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 o conector do Debezium para MySQL: documentação do Debezium.

Habilitar o log binário

Você deve habilitar o log binário para duplicação do MySQL. Os logs binários registram atualizações de transações para que as ferramentas de duplicação propaguem as alterações. Esta seção usa CDC do Banco de Dados do Azure para MySQL 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 propriedades apresentadas a seguir e, em seguida, selecione Salvar.

    • Para binlog_row_image, selecione completo.

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

    Uma captura de tela das configurações do log binário para duplicação em Parâmetros do servidor.

Adicionar o banco de dados MySQL (CDC) como fonte

Caso ainda não adicionou nenhuma fonte ao Eventstream, selecione o bloco Usar fonte externa.

Captura de tela que mostra a seleção do bloco Usar fonte externa.

Caso esteja adicionando a fonte a um Eventstream já publicado, alterne para o modo Editar, selecione Adicionar fonte na faixa de opções e selecione Fontes externas.

Captura de tela que mostra a seleção de Adicionar fonte para o menu Fontes externas.

Na página Selecionar uma fonte de dados, pesquise e selecione Conectar no bloco Banco de dados MySQL (CDA).

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

Configurar e conectar ao Banco de Dados MySQL (CDC)

  1. Na tela Conectar, em Conexão, selecione Nova conexão para criar uma conexão na nuvem.

    Captura de tela que mostra a página Conectar.

  2. Insira as seguintes configurações de conexão e credenciais de conexão para o banco de dados MySQL e selecione Conectar.

    • Servidor: 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 usuário e Senha: Insira as credenciais do 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 do BD MySQL do Azure (CDA).

  3. Insira as informações a seguir para configurar a fonte de dados CDC do Banco de Dados MySQL e selecione Próximo.

    • Tabelas: insira uma lista de nomes de tabelas separados por vírgulas. Cada nome da 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 duplicação no cluster MySQL. O valor padrão é 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 BD MySQL do Azure (CDA).

    Também é possível editar o nome de origem selecionando o botão Lápis para o Nome de origem na seção Detalhes do Fluxo à direita.

    Observação

    Defina uma ID do Servidor diferente para cada leitor. Todo cliente de banco de dados MySQL para leitura de log binário deve ter uma ID exclusiva, chamada ID do Servidor. O MySQL Server usa essa ID para manter a conexão de rede e a posição do log binário. Tarefas diferentes que compartilham a mesma ID do Servidor podem resultar na leitura da posição errada do log binário. Portanto, a recomendação é para definir uma ID do Servidor diferente para cada leitor.

  4. Na página Revisar + conectar, depois de examinar o resumo da origem da CDC do Banco de Dados MySQL, selecione Adicionar para concluir a configuração.

    Captura de tela que mostra a página Examinar e conectar com o botão Adicionar selecionado.

Observação

O número máximo de origens e destinos para um fluxo de eventos é 11.

Exibir o Eventstream atualizado

  1. Você verá a origem do Banco de Dados MySQL (CDC) adicionada ao eventstream no Modo de edição.

    Uma captura de tela da origem do BD MySQL do Azure (CDA) adicionada no Modo de edição com o botão Publicar em destaque.

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

    Uma captura de tela da origem da CDA do Banco de Dados MySQL do Azure adicionada no modo Dinâmico.

Outros conectores: