Pular para o conteúdo

Replicando dados com Kafka e Oracle CDC – Parte III (Conectores)

Replicando dados com Kafka e Oracle CDC – Parte III

Olá pessoal !

No primeiro artigo expliquei sobre quais os requisitos necessários para implementarmos a replicação de dados utilizando Kafka. No segundo artigo foi explicado como instalar o Confluent Platform.

Agora é a vez de instalarmos os conectores !

Kafka Connect

O Kafka Connect é um componente do Apache Kafka usado para realizar a integração de streaming entre o Kafka e outros sistemas, como bancos de dados, serviços em nuvem, índices de pesquisa, sistemas de arquivos e armazenamentos de valores-chave.

O Kafka Connect facilita o fluxo de dados de várias fontes para o Kafka e o fluxo de dados do Kafka para vários destinos.

É nele onde iremos instalar os nossos conectores, que são:

Oracle CDC

Abaixo a explicação traduzida do site da Confluent:

O Confluent Oracle CDC Source Connector é um conector Premium Confluent e requer uma assinatura adicional, especificamente para este conector. O Oracle CDC Source Connector captura as alterações em um banco de dados Oracle e grava as alterações como registros de eventos de alteração nos tópicos do Kafka.

O conector usa o Oracle LogMiner para ler o log de redo do banco de dados e requer log complementar com colunas “ALL”. O conector suporta Oracle 11g, 12c, 18c e 19c.

Ele oferece suporte a bancos de dados de contêiner e bancos de dados que não são de contêiner e oferece suporte a bancos de dados executados no local ou na nuvem. O conector pode ser configurado para capturar um subconjunto das tabelas em um único banco de dados Oracle.

As tabelas capturadas são todas as tabelas acessíveis pelo usuário que correspondem a um padrão “incluir” e não correspondem a um padrão “excluir” separado. Opcionalmente, o conector pode começar tirando um instantâneo de cada uma das tabelas, para capturar todas as linhas em seu estado atual antes que as alterações sejam registradas.

O conector continua capturando as alterações individuais em nível de linha confirmadas pelos usuários do banco de dados. Ele grava esses eventos de alteração em tópicos do Kafka usando mapeamento flexível de tabela para tópico.

Por padrão, todos os eventos de alteração de cada tabela são gravados em um tópico Kafka separado.


Fonte: Confluent Kafka Connect

O conector Oracle CDC será a nossa SOURCE. Após a leitura dos redologs, ele irá inserir os dados em um novo tópico que ficará a espera do SINK.

Clique aqui fazer o download do Oracle CDC connector.

JDBC Connector

Abaixo a explicação traduzida do site da Confluent:

Os conectores JDBC de origem e coletor permitem a troca de dados entre bancos de dados relacionais e Kafka. O conector de origem JDBC permite importar dados de qualquer banco de dados relacional com um driver JDBC para tópicos do Kafka.

Ao usar o JDBC, esse conector pode oferecer suporte a uma ampla variedade de bancos de dados sem exigir código personalizado para cada um. Os dados são carregados executando periodicamente uma consulta SQL e criando um registro de saída para cada linha no conjunto de resultados.
Por padrão, todas as tabelas em um banco de dados são copiadas, cada uma para seu próprio tópico de saída. O banco de dados é monitorado para tabelas novas ou excluídas e se adapta automaticamente.

Ao copiar dados de uma tabela, o conector pode carregar apenas linhas novas ou modificadas especificando quais colunas devem ser usadas para detectar dados novos ou modificados. O conector de coletor JDBC permite exportar dados de tópicos Kafka para qualquer banco de dados relacional com um driver JDBC.

Ao usar o JDBC, esse conector pode suportar uma ampla variedade de bancos de dados sem exigir um conector dedicado para cada um. O conector pesquisa os dados do Kafka para gravar no banco de dados com base na assinatura dos tópicos.
É possível obter gravações idempotentes com upserts. A criação automática de tabelas e a evolução automática limitada também são suportadas.

Fonte: Confluent Kafka Connect

O JDBC Connector será o nosso SINK. Ele ficará responsável por ler o tópico e fazer a replicação no banco de dados.

Clique aqui para fazer o download do JDBC Connector.

Instalando os conectores

  • Faça o download dos conectores nos links descritos acima
  • Copie para o diretório /home/<seu usuario>

Vamos listar os containers que estão executando:

docker compose ps
image 27

O que nos interessa é o CONNECT. Vamos copiar os arquivos de instalação do conector para dentro desse container e fazer a instalação. Para isso utilizaremos o comando docker cp.

docker cp confluentinc-kafka-connect-oracle-cdc-2.2.1.zip connect:/home/appuser
docker cp confluentinc-kafka-connect-jdbc-10.6.0.zip connect:/home/appuser

Com os arquivos copiados, vamos acessar o container e verificar se está tudo ok lá.

docker exec -it -u 0 connect /bin/bash

Você agora está conectado como root no container connect. Vamos listar os arquivos e ver se está tudo lá.

ls
image 28

Ótimo ! Os arquivos foram copiados com sucesso !

Agora vamos para a instalação propriamente dita. Comecemos com o Oracle CDC utilizando o confluent hub.

confluent-hub install confluentinc-kafka-connect-oracle-cdc-2.2.1.zip
image 29

Escolha a opção 1

image 30

Escolha a opção y

image 31

Escolha a opção y

image 32

Escolha a opção y

image 33

Oracle CDC connector instalado com sucesso !

Repita a mesma operação para o JDBC Connector.

confluent-hub install confluentinc-kafka-connect-oracle-cdc-2.2.1.zip
image 34

Hora de sair do container.

exit

Agora que vem o pulo do gato ! Precisaremos parar todos os containers e iniciá-los novamente para que os conectores apareçam.

docker compose stop
image 35
docker compose up -d
image 36

Vamos acessar o Confluent Platform e verificar se os conectores foram instalados.

image 37

Ambos os conectores instalados com sucesso !

No próximo artigo, iremos configurar o banco de dados para que o conector Oracle CDC possa fazer o seu trabalho.

Para isso precisaremos:

  • 2 containers com Oracle 19c instalado (ou uma com 2 PDBs)
  • SQL Developer instalado

No primeiro artigo você encontrará as instruções para fazer essas instalações.

Referências

Sergio Willians

Sergio Willians

Sergio Willians é o fundador do GPO (Grupo de Profissionais Oracle) e possui quase 30 anos de experiência em tecnologias Oracle, sendo especialista em desenvolvimento Forms/Reports, PL/SQL e EBS (E-Business Suite) nos módulos Receivables, Payables e General Ledger. Atualmente trabalha na Scania Latin America, onde se dedica à área de integração de dados com Confluent Kafka. Sua paixão é compartilhar conhecimento com a comunidade Oracle, contribuindo para o crescimento e a excelência da plataforma.

Comentário(s) da Comunidade

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress