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
.
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 .
No campo property.name digitar o valor value.converter.schemas.enable
e clicar em Continue.
Na propriedade recém criada digitar o valor true
.
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 Dados | Classe |
---|---|
SQL Server | io.debezium.connector.sqlserver.SqlServerConnector |
Mongo DB | io.debezium.connector.mongodb.MongoDbConnector |
Postgress | io.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 .
Deverá aparecer a opção CarolSinkConnector conforme imagem abaixo.
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
.
O campo nome deve ser preenchido com o nome desejado para referenciar essa instância do CKC. No exemplo abaixo o nome é CarolSinkConnectorConnector.
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
.
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.
Requisitos
É necessário que as stages que representam os dados que estão sendo enviados já existam previamente na Carol.