Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 TABLESao usuário. Além disso, para dar suporte a operações deFLUSHdurante o instantâneo, talvez você também precise conceder privilégios deRELOADouFLUSH_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.
Porta: o valor padrão é 3306. Se a conexão de nuvem selecionada estiver configurada em Gerenciar conexões e gateways, certifique-se de que o número da porta corresponda ao configurado 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.
tabela: Selecione Todas as tabelas ou Insira os nomes da tabela. Se você selecionar o último, especifique tabelas usando uma lista separada por vírgulas de identificadores de tabela completos (
databaseName.tableName) ou expressões regulares válidas. Por exemplo:- Use
databaseName.test.*para selecionar todas as tabelas cujos nomes começam comdatabaseName.test. - Use
databaseName\.(test1|test2)para selecionardatabaseName.test1edatabaseName.test2.
Você pode misturar ambos os formatos usando vírgulas. O limite total de caracteres para toda a entrada é de 102.400 caracteres .
- Use
ID do Servidor: insira um valor exclusivo para cada servidor e cliente de duplicação no cluster MySQL. O valor padrão é 1000.
Observação
Defina uma ID do Servidor diferente para cada leitor. Cada cliente de banco de dados MySQL para leitura de binlog 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.
Você pode expandir as configurações avançadas para acessar mais opções de configuração para a origem CDC do Banco de Dados MySQL:
-
Modo de bloqueio de instantâneo: as opções são:
-
Minimal (default): mantém um bloqueio de leitura global somente durante a fase inicial para capturar o esquema e os metadados. O restante da captura instantânea 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 instantâneo, bloqueando todas as gravações. Use para obter consistência total se o bloqueio de gravação for aceitável. -
None: ignora a aquisição de bloqueios de tabela durante a captura do instantâneo. Seguro somente se nenhuma alteração de esquema ocorrer durante o processo.
-
-
Modo de tratamento decimal: especifica como o conector manipula
DECIMALeNUMERICvalores de coluna:-
Precise: representa valores usando tipos decimais exatos (por exemplo, JavaBigDecimal) para garantir a precisão total e a precisão na representação de dados. -
Double: converte valores em números de ponto flutuante de precisão dupla. Isso melhora a usabilidade e o desempenho, mas pode resultar em uma perda de precisão. -
String: codifica valores como cadeias de caracteres formatadas. Isso facilita o consumo em sistemas downstream, mas perde informações semânticas sobre o tipo numérico original.
-
-
Modo de instantâneo: especifique os critérios para executar um instantâneo quando o conector for iniciado:
-
Initial: O conector executa um instantâneo somente quando nenhum offset foi registrado para o nome do servidor lógico ou se ele detecta que um instantâneo anterior não foi concluído. Após a conclusão do instantâneo, o conector começa a transmitir registros de eventos para alterações subsequentes no banco de dados. -
InitialOnly: O conector executa um instantâneo apenas quando nenhum deslocamento foi registrado para o nome do servidor lógico. Depois que o instantâneo for concluído, o conector para. Ele não adota o modo de streaming para ler eventos de alteração do binlog. -
NoData: o conector executa um instantâneo que captura apenas o esquema, mas não qualquer dado de tabela. Defina essa opção se você não precisa de uma visão consistente dos dados, mas apenas das alterações ocorrendo desde a inicialização do conector.
-
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.
-
Modo de bloqueio de instantâneo: as opções são:
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.
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:
- Fluxos de dados do Amazon Kinesis
- 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