Olá pessoal, me chamo Ronaldo Lanielas e a gente vai falar aqui sobre o que é o Kafka Connect. Quando a gente fala de plataforma Kafka, não existe só o Kafka. Não existe só o broker de Kafka e o zookeeper, como vocês viram nas próximas aulas. Existem N ferramentas que fazem parte do que a gente chama de plataforma Kafka. Então, uma delas é o Kafka Connect. E o Kafka Connect vem para ajudar tanto na ingestão como na extração de dados do Kafka. O que acontece? Kafka. O que acontece? O Kafka Connect tem dois modos, o Source e o Sync. Quando a gente fala de modo Source é porque você está lendo de uma origem, então dê uma olhada aqui no desenho, você está lendo de uma origem e está gravando no Kafka. Então, percebe que a gente tem um passo 1 aqui que é o Read, lendo da origem, e Write, que é gravando no Kafka. Por outro lado, quando você está trabalhando com o modo Sync, você está lendo do Kafka, então a origem é o Kafka, e aí você está gravando no destino, fazendo write no destino. Então você vai ver que quando você estiver configurando o Kafka Connect, você pode fazer tanto o processo de source como o processo de sync. E isso tem que ficar muito claro para você antes de começar a realmente ver conectores, etc. Aí existem três grandes conceitos que você tem que ter em mente que são super importantes para você entender o que é o Kafka Connect. Que são conectores, as tasks e os plugins. Vamos começar com o plugin. Quando eu falei anteriormente que você pode ler de uma origem ou destino, essa origem pode ser uma base de dados, Oracle, SQL Server, MySQL, pode ser uma base não relacional, um Dynamo, um Cosmos da vida, um Cassandra, mas também pode não ser uma base, pode ser um arquivo, pode ser uma API, pode ser de RPC, enfim. Pode ser qualquer coisa. E aí você pode perguntar, mas como que pode ser qualquer coisa? Isso depende do plugin. Então, assim, o Kafka Connect, ele tem milhares de plugins disponíveis na internet que você pode utilizar para se conectar em várias origens ou em vários destinos. E aí, por exemplo, se tiver um plugin, uma origem que você não encontrou um plugin, você pode desenvolver também. Então, imagina que você quer um plugin que se conecte via SOAP. E vamos imaginar que SOAP não tem plugin para se conectar via SOAP. Nesse caso, você pode desenvolver um plugin que vai conseguir se conectar via SOAP. O ponto é, o plugin efetivamente vai dar implementação de conexão na origem e no destino realizada. Então, o Kafka Connecting em si não sabe como se conectar num Postgre da vida. Você tem que usar um plugin que vai fazer essa ponte entre o Kafka Connect e o Postgre. Bom, dito isso, a gente vai para os conectores de testes. Eles estão muito interligados. Então eu vou explicar para vocês olhando para esse desenho. Um conector mantém todas as configurações do que você vai precisar fazer. Então vamos pensar que é um conector source. Voltando aqui a gente pode ter um conector, lembrando, source ou sink. Sendo um conector source, você vai colocar aqui o nome dele, a quantidade de tasks que ele vai ter. Se for, por exemplo, um source de um Postgre, você vai colocar aqui a URL jdbc e finalmente qual é o plugin que você vai usar que fica aqui nessa propriedade chamada class. Bom, o conector mantém apenas as configurações, então ele faz o gerenciamento dessas configurações. Mas, além disso, ele também vai fazer a criação das tasks, que vão efetivamente realizar a tarefa de extração da base. Então, onde o processo roda não é no conector, é na task. A task é como se fosse a thread. E aí o conector você desprende que eu quero três tasks. Ele vai fazer a criação, vai explanar três tasks. E aí cada uma dessas tasks aqui vai se conectar, nesse caso, numa base, que é o Postgre, vai fazer o select, whatever que seja, e vai gravar no Kafka. E a mesma coisa aconteceria se fosse qualquer outro tipo de plugin. Você vai ter um conector, você configura o plugin que você vai usar, esse conector vai fazer, vai expandhar as tasks, vai criar as tasks, realizar a operação de fato, e aí vai gravar no Kafka. Então, só relembrando, o plugin é onde realmente tem a implementação de conexão com a origem e destino, o conector é a configuração e manipulação das tasks, e a task é onde realmente está acontecendo o trabalho, o trabalho pesado, vamos dizer assim. Então, se você tem um cluster de Kappa Connect com 4 nós, por exemplo, 5 nós, e você tem 5 tasks, cada task vai estar rodando em um nó, para executar aquela tarefa. Não necessariamente o conector também vai estar rodando isso com os nós. Ele pode estar em um nó só, apenas gerenciando as tasks que estão nos outros nós. Existem milhares de plugins disponíveis, então você pode dar uma olhada na Confluent Hub. Deixa eu abrir aqui para você dar uma olhada então aqui aqui na confluent hub você vai ver que tem tanto os plugins do tipo sync como do tipo source se você digitar aqui jdbc você você vai ver que tem um plugin que faz o source e o sync. Então ele tanto faz uma leitura da base de dados como faz uma escrita. Então é lendo da base gravando cápica, source, lendo do cápico e gravando na base com sync. Então não existe só esse, existem vários conectores aqui, tem 41 páginas de conector aqui, e se você não encontrar aqui você também pode dar uma procurada no GitHub, provavelmente deve ter lá, e no pior caso se você não encontrar nem no GitHub, você poderia criar o seu próprio conector também. É isso pessoal, espero que vocês tenham gostado e até a próxima.