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.
No prompt de comando, crie o
mysql
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'@'%';
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 deFLUSH
durante o snapshot, você também pode precisar 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 #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.
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 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.
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.
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.
Na página Selecione uma fonte de dados, procure e selecione Conectar no bloco MySQL DB (CDC).
Configurar e conectar-se ao MySQL DB (CDC)
No ecrã Ligar, em Ligação, selecione Nova ligação para criar uma ligação à nuvem.
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.
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.
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.
Na página Review + connect, depois de analisar o resumo da fonte de dados MySQL DB CDC, selecione Adicionar para concluir a configuração.
Nota
O número máximo de fontes e destinos para um eventstream é 11.
Ver fluxo de eventos atualizado
Você vê a fonte MySQL DB (CDC) adicionada ao seu fluxo de eventos no modo de edição .
Selecione Publicar para publicar as alterações e começar a transmitir dados do MySQL DB CDC para o fluxo de eventos.
Conteúdos relacionados
Outros conectores:
- Amazon Kinesis Data Streams
- BD do Cosmos para o Azure
- Azure Event Hubs
- Hub IoT do Azure
- Captura de Dados de Alteração do Banco de Dados SQL do Azure (CDC)
- Kafka confluente
- Ponto de extremidade personalizado
- Google Cloud Pub/Sub
- Banco de Dados PostgreSQL CDC
- Dados de exemplo
- Eventos do Armazenamento de Blobs do Azure
- Evento do espaço de trabalho de malha