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 Fabric 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 usuário MySQL
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 ainda não adicionaste nenhuma fonte ao teu fluxo de eventos, seleciona Usar fonte 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 azulejo 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: Selecione Todas as tabelas ou Insira o(s) nome(s) da(s) tabela(s). Se você selecionar o último, especifique tabelas usando uma lista separada por vírgulas de identificadores de tabela completos (
schemaName.tableName
) ou expressões regulares válidas. Por exemplo:- Use
dbo.test.*
para selecionar todas as tabelas cujos nomes comecem comdbo.test
. - Use
dbo\.(test1|test2)
para selecionardbo.test1
edbo.test2
.
Você pode misturar ambos os formatos usando vírgulas. Até 100 tabelas podem ser inseridas, com cada nome de tabela (incluindo o nome do esquema) limitado a 128 caracteres se usar identificadores de tabela completos diretamente.
- Use
ID do servidor: insira um valor exclusivo para cada servidor e cliente de replicação no cluster MySQL. O valor predefinido é 1000.
Port: O valor padrão é 3306. Se a conexão de nuvem selecionada estiver configurada em Gerenciar conexões e gateways, verifique se o número da porta corresponde ao definido lá. Se eles não corresponderem, o número da porta na conexão de nuvem em Gerenciar conexões e gateways terá precedência.
Modo de bloqueio de instantâneo: Selecione as configurações avançadas para escolher o modo de bloqueio de instantâneo. As opções são:
Mínimo (padrão): Mantém um bloqueio de leitura global somente durante a fase inicial para capturar o esquema e os metadados. O restante do snapshot usa uma transação REPEATABLE READ, permitindo atualizações enquanto os dados estão sendo lidos.
Extended: Mantém um bloqueio de leitura global durante toda a duração do snapshot, bloqueando todas as gravações. Use para consistência total se o bloqueio de gravação for aceitável.
Nenhum: ignora a aquisição de bloqueios de tabela durante o snapshot. Seguro somente se nenhuma alteração de esquema ocorrer durante o processo.
Você também pode editar o nome da fonte selecionando o botão Lápis na secção detalhes de 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
- Azure Cosmos DB
- Azure Event Hubs
- Hub IoT do Azure
- Captura de Dados de Alteração do Banco de Dados SQL do Azure (CDC)
- Confluent Kafka
- Ponto de extremidade personalizado
- Google Cloud Pub/Sub
- Banco de Dados PostgreSQL CDC
- Dados de exemplo
- Eventos do Armazenamento de Blobs do Azure
- Evento de configuração de espaço de trabalho