Menu Docs
Página inicial do Docs
/
MongoDB Kafka Connector
/

Começando com o conector do coletor MongoDB Kafka

Nesta página

  • Introdução ao conector do coletor MongoDB Kafka
  • Resumo
  • Saiba mais

Siga este tutorial para aprender como configurar um conector de coletor do MongoDB Kafka para ler dados de um tópico Apache Kafka e registrá-lo em uma collection MongoDB.

1
2

Crie uma sessão de shell interativa no tutorial Docker Container usando o seguinte comando:

docker exec -it mongo1 /bin/bash

Crie um arquivo de configuração de origem denominado simplesink.json com o seguinte comando:

nano simplesink.json

Cole as seguintes informações de configuração no arquivo e salve suas alterações:

{
"name": "mongo-tutorial-sink",
"config": {
"connector.class": "com.mongodb.kafka.connect.MongoSinkConnector",
"topics": "Tutorial2.pets",
"connection.uri": "mongodb://mongo1",
"key.converter": "org.apache.kafka.connect.storage.StringConverter",
"value.converter": "org.apache.kafka.connect.json.JsonConverter",
"value.converter.schemas.enable": false,
"database": "Tutorial2",
"collection": "pets"
}
}

Observação

As linhas realçadas nas propriedades de configuração especificam conversores que instruem o conector como converter os dados do Kafka.

Execute o seguinte comando no shell para iniciar o conector do coletor usando o arquivo de configuração criado:

cx simplesink.json

Observação

O comando cx é um roteiro personalizado incluído no ambiente de desenvolvimento do tutorial. Este roteiro executa a seguinte solicitação equivalente à API REST do Kafka Connect para criar um novo conector:

curl -X POST -H "Content-Type: application/json" -d @simplesink.json http://connect:8083/connectors -w "\n"

Execute o seguinte comando na shell para verificar o status dos conectores:

status

Se o conector do coletor tiver sido iniciado com sucesso, você verá a seguinte saída:

Kafka topics:
...
The status of the connectors:
sink | mongo-tutorial-sink | RUNNING | RUNNING | com.mongodb.kafka.connect.MongoSinkConnector
Currently configured connectors
[
"mongo-tutorial-sink"
]
...
3

Na mesma shell, crie um roteiro do Python para gravar dados em um tópico do Kafka.

nano kafkawrite.py

Cole o código abaixo no arquivo e salve as alterações:

from kafka import KafkaProducer
import json
from json import dumps
p = KafkaProducer(bootstrap_servers = ['broker:29092'], value_serializer = lambda x:dumps(x).encode('utf-8'))
data = {'name': 'roscoe'}
p.send('Tutorial2.pets', value = data)
p.flush()

Execute o roteiro do Python:

python3 kafkawrite.py
4

Na mesma shell, conecte ao MongoDB utilizando o mongosh, a shell MongoDB executando o seguinte comando:

mongosh "mongodb://mongo1"

Depois de se conectar com sucesso, você deverá ver o seguinte prompt do shell do MongoDB:

rs0 [direct: primary] test>

No prompt, digite os seguintes comandos para recuperar todos os documentos no namespace MongoDB do Tutorial2.pets:

use Tutorial2
db.pets.find()

O resultado deve ver o seguinte documento retornado:

{ _id: ObjectId("62659..."), name: 'roscoe' }

Saia da shell MongoDB inserindo o comando exit.

5

Depois de concluir este tutorial, libere recursos em seu computador interrompendo ou removendo os ativos do Docker. Você pode remover os containers e as imagens do Docker, ou somente os containers. Se você remover os containers e as imagens, será necessário baixá-los novamente para reiniciar seu ambiente de desenvolvimento do Conector Kafka MongoDB, que tem aproximadamente 2,4 GB. Se você remover somente os containers, poderá reutilizar as imagens sem precisar baixar a maioria dos arquivos grandes na pipeline de dados de amostra.

Dica

Mais tutoriais

Se você pretende concluir mais tutoriais do Conector Kafka MongoDB, considere remover apenas os containers. Se você não pretende concluir mais tutoriais do Conector Kafka MongoDB, considere remover containers e imagens.

Selecione a aba que corresponde à tarefa de remoção que deseja executar.

Execute o seguinte comando shell para remover os containers e as imagens do Docker para o ambiente de desenvolvimento:

docker-compose -p mongo-kafka down --rmi all

Execute o seguinte comando shell para remover os containers do Docker, mas mantenha as imagens para o ambiente de desenvolvimento:

docker-compose -p mongo-kafka down

Para reiniciar os containers, siga as mesmas etapas necessárias para iniciá-los na configuração do tutorial.

Neste tutorial, você configurou um conector de coletor para salvar dados de um tópico do Kafka em uma coleção em um cluster MongoDB.

Leia os seguintes recursos para saber mais sobre os conceitos mencionados neste tutorial:

  • Propriedades de configuração do conector do coletor

  • Introdução aos conversores do conector Kafka

  • API REST do Kafka Connect

Voltar

Começando com o conector de fonte MongoDB Kafka