Manipulador de captura de dados de alteração
Nesta página
Visão geral
Saiba como replicar seus eventos de alterar captura de dados (CDC) com um conector de pia MongoDB Kafka. CDC é uma arquitetura de software que converte alterações em um armazenamento de dados em um fluxo de eventos CDC. Um evento CDC é uma mensagem que contém uma representação reproduzível de uma alteração realizada em um datastore. A replicação de dados é o processo de aplicar as alterações contidas em eventos CDC de um armazenamento de dados em um armazenamento de dados diferente para que as alterações ocorram em ambos os armazenamentos de dados.
Use um manipulador CDC para replicar eventos CDC armazenados em um tópico do Apache Kafka no MongoDB. Um manipulador CDC é um programa que converte eventos CDC de um produtor de eventos CDC específico em operações de gravação do MongoDB.
Um produtor de eventos CDC é um aplicativo que gera eventos CDC. Os produtores de eventos CDC podem ser armazenamentos de dados ou aplicativos que observam armazenamentos de dados e geram eventos CDC correspondentes a alterações nos armazenamentos de dados.
Observação
Os fluxos de alterações do MongoDB são um exemplo de arquitetura de CDC. Para saber mais sobre fluxos de alterações, consulte o guia do MongoDB Kafka Connector para Change Streams.
Se você quiser ver um tutorial que demonstre como replicar dados, consulte o tutorial Replicar dados com um manipulador de captura de dados de alteração.
Importante
CDC e pós-processadores
Não é possível aplicar um pós-processador aos dados de eventos do CDC. Se você tentar especificar ambos, o conector registrará um aviso.
Especificar um controlador de CDC
Você pode especificar um manipulador CDC no conector da pia com a seguinte opção de configuração:
change.data.capture.handler=<cdc handler class>
Para saber mais, consulte alterar opções de configuração de captura de dados.
Manipuladores de CDC disponíveis
O conector de pia fornece manipuladores CDC para os seguintes produtores de eventos CDC:
MongoDB
Clique nas seguintes abas para saber como configurar os manipuladores de CDC para os produtores de eventos anteriores:
O arquivo de propriedades a seguir configura um conector de pia para replicar os documentos do evento de alteração do MongoDB:
connector.class=com.mongodb.kafka.connect.MongoSinkConnector connection.uri=<your connection uri> database=<your database> collection=<your collection> topics=<topic containing mongodb change event documents> change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.mongodb.ChangeStreamHandler
Para visualizar o código-fonte do manipulador de CDC MongoDB, consulte o código-fonte do conector MongoDB Kafka.
Seu conector de coletor pode replicar eventos Debezium CDC originados nestes datastores:
MongoDB
Postgres
MySQL
Clique nas seguintes abas para ver como configurar o manipulador Debezium CDC para replicar eventos CDC de cada um dos armazenamentos de dados anteriores:
O arquivo de propriedades a seguir configura um conector de coletor para replicar eventos CDC do Debezium correspondentes a alterações em uma instância do MongoDB:
connector.class=com.mongodb.kafka.connect.sink.MongoSinkConnector connection.uri=<your connection uri> database=<your mongodb database> collection=<your mongodb collection> topics=<topic containing debezium cdc events> change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.debezium.mongodb.ChangeStreamHandler
Observação
Se você estiver usando uma versão do Debezium CDC anterior a 2.0, defina o valor da propriedade change.data.capture.handler
como com.mongodb.kafka.connect.sink.cdc.debezium.mongodb.MongoDbHandler
.
Para visualizar o código-fonte do manipulador Debezium CDC, consulte o código-fonte do MongoDB Kafka Connector.
O arquivo de propriedades a seguir configura um conector de coletor para replicar eventos CDC do Debezium correspondentes a alterações em uma instância do Postgres:
connector.class=com.mongodb.kafka.connect.sink.MongoSinkConnector connection.uri=<your connection uri> database=<your mongodb database> collection=<your mongodb collection> topics=<topic containing debezium cdc events> change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.debezium.rdbms.postgres.PostgresHandler
Para visualizar o código-fonte do manipulador Debezium CDC, consulte o código-fonte do MongoDB Kafka Connector.
O arquivo de propriedades a seguir configura um conector de destino para replicação de eventos de Change Data Capture (CDC) do Debezium, refletindo as alterações ocorridas em uma instância do MySQL:
connector.class=com.mongodb.kafka.connect.sink.MongoSinkConnector connection.uri=<your connection uri> database=<your mongodb database> collection=<your mongodb collection> topics=<topic containing debezium cdc events> change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.debezium.rdbms.mysql.MysqlHandler
Para visualizar o código-fonte do manipulador Debezium CDC, consulte o código-fonte do MongoDB Kafka Connector.
Observação
Personalize o manipulador de CDC do Debezium
Se o manipulador Debezium CDC não conseguir replicar eventos CDC do seu armazenamento de dados, você poderá personalizar o manipulador estendendo a classe DebeziumCdcHandler. Para obter mais informações sobre manipuladores de CDC personalizados, consulte a seção Criar seu próprio manipulador de CDC deste guia.
Seu conector de coletor pode replicar eventos Qlik Replicate CDC originados nestes datastores:
OracleDB
MySQL
Postgres
O arquivo de propriedades a seguir configura um conector de coletor para replicar eventos CDC do Qlik Replicate:
connector.class=com.mongodb.kafka.connect.MongoSinkConnector connection.uri=<your connection uri> database=<your database> collection=<your collection> topics=<topic containing qlik replicate cdc events> change.data.capture.handler=com.mongodb.kafka.connect.sink.cdc.qlik.rdbms.RdbmsHandler
Para visualizar o código-fonte do manipulador de CDC Qlik Replicate, consulte o código-fonte do conector MongoDB Kafka.
Observação
Personalize o manipulador de CDC do Qlik Replicate
Se o manipulador do Qlik Replicate CDC não puder replicar eventos de CDC do seu armazenamento de dados, você poderá personalizar o manipulador estendendo a classe QlikCdcHandler. Para obter mais informações sobre manipuladores de CDC personalizados, consulte a seção Criar seu próprio manipulador de CDC deste guia.
Crie seu próprio manipulador de CDC
Se nenhum dos manipuladores CDC pré-construídos se adequar ao seu caso de uso, você poderá criar o seu próprio. Seu manipulador CDC personalizado é uma classe Java que implementa a interface CdcHandler
.
Para saber mais, consulte o código-fonte para a interface do CdcHandler.
Para exibir exemplos de implementações de manipuladores CDC, consulte o código-fonte dos manipuladores CDC precriados.
Como usar seu manipulador de CDC
Para configurar o conector do coletor para usar o manipulador CDC personalizado, você deve executar as seguintes ações:
Compile sua classe do manipulador CDC customizada em um arquivo JAR.
Adicione o JAR compilado ao caminho de classe/plugin para seus trabalhadores do Kafka. Para obter mais informações sobre caminhos de plugin, consulte a documentação confluente.
Observação
O Kafka Connect carrega plugins isoladamente. Quando você implanta uma estratégia de gravação personalizada, o JAR do conector e o JAR do manipulador CDC devem estar no mesmo caminho. Seus caminhos devem ser semelhantes ao seguinte:
<plugin.path>/mongo-kafka-connect/mongo-kafka-connect-all.jar
<plugin.path>/mongo-kafka-connect/custom-CDC-handler.jar
Para saber mais sobre plug-ins do Kafka Connect, consulte este guia do Confluent.
Especifique sua classe personalizada na definição de configuração do
change.data.capture.handler
.
Para saber como compilar uma classe em um arquivo JAR, consulte este guia da Oracle .