Migração de dados com KafkaConnect

 Salve meus amigos como estão vocês cês tão bão né?

Para migração e equalização de dados, viu-se a necessidade da criação de uma estrutura para sincromização do banco de dados legado, com o banco de dados da nova plataforma. Para esta solução, segue algumas possibilidades abaixo:

 


Kafka connect é uma estrutura para conectar o kafka com ecossistema externo, como sistemas de arquivos, bancos de dados usando o conector kafka. O cluster Kafka Connect oferece suporte à execução e dimensionamento de conectores.

Os conectores Kafka são componentes prontos para uso, que podem nos ajudar a importar dados de sistemas externos para tópicos Kafka e exportar dados de tópicos Kafka para sistemas externos. 

O que é o Kafka Connect?



O Kafka connect é usado para realizar a integração de fluxo 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. Facilita o fluxo de dados de diferentes fontes para o kafka e do kafka para os destinos.

Vários conectores estão disponíveis para conexão kafka como:

  • RDBMS (Oracle, SQL Server, DB2, Postgres, MySQL)

  • Armazenamentos de objetos em nuvem (Amazon S3, Azure Blob Storage, Google Cloud Storage)

  • Filas de mensagens (ActiveMQ, IBM MQ, RabbitMQ)

  • NoSQL e armazenamentos de documentos (Elasticsearch, MongoDB, Cassandra)

  • Armazéns de dados na nuvem (Snowflake, Google BigQuery, Amazon Redshift)

Recursos do Kafka Connect

  • Ele simplifica o desenvolvimento, implantação e gerenciamento de conectores conectando sistemas externos ao Kafka.

  • É um cluster distribuído e autônomo que nos ajuda a implantar grandes clusters, fornece configurações para desenvolvimento, teste.

  • Podemos gerenciar conectores usando uma API REST

  • O Kafka Connect nos ajuda a lidar com o processo de confirmação de deslocamento

  • Por padrão, o kafka Connect é distribuído e escalável.

Configuração do Kafka Connect

Vamos discutir o princípio do Kafka Connect, usando o conector de origem do arquivo e o conector do coletor de arquivos. Convenientemente, a Plataforma Confluent vem com esses dois conectores, bem como configurações de referência.

Configuração do conector de origem :

Para o conector de origem, a configuração está disponível em connect-file-source.properties:

1name=local-file-source 2connector.class=FileStreamSource 3tasks.max=1 4topic=connect-test 5file=test.txt

name é user como o nome especificado para o conector.
connector.class especifica o tipo de conector.
tasks.max especifica quantas instâncias de nosso conector de origem devem ser executadas em paralelo e
topic define o tópico no qual o conector envia a saída.

Configuração do conector do coletor

Para o conector do coletor, a configuração está disponível em connect-file-sink.properties:

1name=local-file-sink 2connector.class=FileStreamSink 3tasks.max=1 4file=test.sink.txt 5topics=connect-test 6
Configuração do trabalhador

Por fim, configure o worker, que integrará nossos dois conectores e fará o trabalho de leitura do conector de origem e gravação no conector do coletor. Para isso, usaremos connect-standalone.properties:

1bootstrap.servers=localhost:9092 2key.converter=org.apache.kafka.connect.json.JsonConverter 3value.converter=org.apache.kafka.connect.json.JsonConverter 4key.converter.schemas.enable=false 5value.converter.schemas.enable=false 6offset.storage.file.filename=/tmp/connect.offsets 7offset.flush.interval.ms=10000 8plugin.path=/share/java
  • bootstrap.servers  contém os endereços dos corretores Kafka

  • key.converter e value.converter  são classes conversoras, que serializam e desserializam os dados à medida que fluem da fonte para o Kafka e depois do Kafka para o coletor

  • key.converter.schemas.enable value.converter.schemas.enable  são configurações específicas do conversor

  • offset.storage.file.filename  ele define onde o Connect deve armazenar seus dados de deslocamento

  • offset.flush.interval.ms  define o intervalo no qual o trabalhador tenta confirmar deslocamentos para tarefas

Como funciona o Kafka Connect

O Kafka connect executa seu processo individual, separado dos corretores kafka. É distribuído, escalável, autônomo e tolerante a falhas. Não requer programação, pois é orientado pela configuração JSON, o que o torna disponível para uma ampla gama de usuários. O Kafka Connect também pode realizar transformações leves nos dados à medida que passam por eles.

Casos de uso do Kafka Connect

Quando queremos transmitir dados para o Kafka de outro sistema ou transmitir dados do Kafka para outro lugar, o Kafka Connect deve ser usado. Algumas maneiras de usar o Kafka Connect são:

Pipelines de dados de streaming




O Kafka Connect pode ser usado para ingerir fluxos de eventos em tempo real de uma fonte como banco de dados e transmiti-los para um sistema de destino para análise. Como o Kafka armazena dados em um intervalo de tempo configurável por entidade de dados (tópico), é possível transmitir os mesmos dados originais para vários destinos. Isso pode ser usar diferentes tecnologias para diferentes requisitos de negócios ou disponibilizar os mesmos dados para diferentes áreas de uma empresa que possui seus próprios sistemas para mantê-los.

Gravando em datastores de um aplicativo




No aplicativo, você pode criar dados que deseja gravar em um sistema de destino. Isso pode ser uma série de eventos de log para gravar em um armazenamento de documentos ou dados para persistir em um banco de dados relacional. Ao gravar os dados no Kafka e usar o Kafka Connect para assumir a responsabilidade de gravar esses dados no destino, você simplifica o footprint.

Para mais, você pode consultar:  Apache Kafka

Além disso, para um blog mais técnico, você pode consultar o blog knoldus:  Insights and perspectives to keep you updated.

Comentários

Postagens mais visitadas deste blog

E Esse Tal de Nano Service?

Executar Audio em Java Swing

Validando Email em Java Com e Sem expressão Regular