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.
No prompt de comando
mysql
, crie o usuário MySQL:mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
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 deFLUSH
durante o instantâneo, talvez você também precise conceder privilégios deRELOAD
ouFLUSH_TABLES
.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.
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.
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.
Adicionar o banco de dados MySQL (CDC) como fonte
Caso ainda não adicionou nenhuma fonte ao Eventstream, selecione o 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.
Na página Selecionar uma fonte de dados, pesquise e selecione Conectar no bloco Banco de dados MySQL (CDA).
Configurar e conectar ao Banco de Dados MySQL (CDC)
Na tela Conectar, em Conexão, selecione Nova conexão para criar uma conexão na nuvem.
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.
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.
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.
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.
Observação
O número máximo de origens e destinos para um fluxo de eventos é 11.
Exibir o Eventstream atualizado
Você verá a origem do Banco de Dados MySQL (CDC) adicionada ao eventstream no Modo de edição.
Selecione Publicar para publicar as alterações e começar a transmitir dados CDC do MySQL DB para o fluxo de eventos.
Conteúdo relacionado
Outros conectores:
- Amazon Kinesis Data Streams
- Azure Cosmos DB
- Hubs de eventos do Azure
- Hub IoT do Azure
- Captura de dados de alterações (CDA) com o Banco de Dados SQL do Azure
- Kafka para Confluent
- Ponto de extremidade personalizado
- Pub/Sub do Google Cloud
- CDA do Banco de dados PostgreSQL
- Dados de amostra
- Eventos de Armazenamento de Blobs do Azure
- Evento de espaço de trabalho do Fabric