Skip to main content

Carol-Kafka-Connect

O plugin Carol-Kafka-Connect (CKC) é um conector de destino (sink connector) desenvolvido para integrar dados que estão no Kafka Connect com a Carol. Para isso, é necessário que os plugins de entrada (source connector) tenham a configuração abaixo quando os dados estiverem sendo enviados da origem para o Kafka-Connect.

Configurações no Source Connector

Nos campos Key converter class e Value converter class de configuração do plugin de entrada devem possuir o valor org.apache.kafka.connect.json.JsonConverter.

Converter

Outra configuração necessária é propriedade adicional value.converter.schemas.enable, essa propriedade deve possuir o valor igual a true. Essa propriedade deve ser adicionada utilizando a opção Add a property .

Add

No campo property.name digitar o valor value.converter.schemas.enable e clicar em Continue.

Property

Na propriedade recém criada digitar o valor true.

Value

Com isso, as configurações específicas para o conector de entrada homologado estão finalizadas.

Conectores de entrada homologados

O CKC já foi homologado com os seguintes bancos de dados com suas respectivas classes:

Bando de DadosClasse
SQL Serverio.debezium.connector.sqlserver.SqlServerConnector
Mongo DBio.debezium.connector.mongodb.MongoDbConnector
Postgressio.debezium.connector.postgresql.PostgresConnector

Configuração no Carol Kafka Connector

Para iniciar a configuração é necessário copiar o pacote kafka-connect-carol-%VERSAO%-SNAPSHOT-jar-with-dependencies.jar no diretório de plugins configurado, ex: %CONFLUENT_HOME%/share/confluent-hub-components, antes de inicializar o confluent. Onde %VERSAO% é a versão do CKC e %CONFLUENT_HOME% é o diretório de instalação do confluent.

Para receber o pacote CKC é necessário abrir uma issue para a equipe de Data Engineer no Jira (Projeto DLABSCAPL). Após inicializar o confluent conforme a documentação a seguir https://docs.carol.ai/docs/category/kafka-connect, deve clicar no menu esquerdo na opção Connect e em seguida na botão +Add connector .

Value

Deverá aparecer a opção CarolSinkConnector conforme imagem abaixo.

CKC

Após clicar nessa opção, no campo topics devem ser selecionados os tópicos que devem ter seus dados enviados para a Carol. Um tópico representa um conjunto de dados que foi enviado para o Kafka Conector. No exemplo abaixo foi selecionado o tópico mongo.bd.agente.

Topic-ckc

O campo nome deve ser preenchido com o nome desejado para referenciar essa instância do CKC. No exemplo abaixo o nome é CarolSinkConnectorConnector.

Name

Assim como no conector source, os campos Key converter class e Value converter class de configuração do plugin de entrada devem possuir o valor org.apache.kafka.connect.json.JsonConverter.

Converter

O valor do campo carol.url deve ser preenchido com https://api.carol.ai/api. O valore do campo carol.connector.id deve ser preenchidos com connector_id e carol.connector.token com o token gerado conforme a documentação https://docs.carol.ai/docs/general/authentication#connector-token-api-key.

Após o preenchimento dessas informações deve-se clicar no botão Next e irá exibir a configuração do plugin em formato Json semelhante ao exemplo abaixo.

{
"name": "CarolSinkConnectorConnector_0",
"config": {
"value.converter.schemas.enable": "false",
"name": "CarolSinkConnectorConnector_0",
"connector.class": "com.totvs.carol.CarolSinkConnector",
"key.converter": "org.apache.kafka.connect.json.JsonConverter",
"value.converter": "org.apache.kafka.connect.json.JsonConverter",
"topics": "mongodb.bd.agente",
"carol.url": "https://api.carol.ai/api",
"carol.connector.id": "1c22b09017154d168d25e3114e312345",
"carol.connector.token": "07756cb136344b37aa052f1e67b12345"
}
}

Após clicar em Launch o conector deverá inicializar o processo de leitura no tópico e escrita na Carol. Na UI do confluent o conector deverá ficar com o status Running.

Status

Requisitos

É necessário que as stages que representam os dados que estão sendo enviados já existam previamente na Carol.