Olá pessoal, eu sou o Ronaldo Lanielas e eu queria nessa aula falar para vocês sobre o Cacica UDB o que é o Cacica UDB? Primeiro ele é uma ferramenta que faz parte da plataforma Kafka, então se vocês lembrarem de aulas passadas que eu falei de Kafka Connect, etc, o Kafka ele possui só ele é um broker de mensageria, mas ele também possui uma plataforma que tem várias ferramentas, como o Cacico, o Kafka Connect, o Schema REST, o REST Proxy, etc. O Cacico, assim como o Kafka Connect, ele é uma ferramenta que é instalada apartada do cluster de Kafka. Então, você tem pode colocar até em servidores separados, etc. Fazendo um resumo bem simples aqui, ele é uma ferramenta que permite agregação, filtro e transformação de dados em real-time. Eu vou já mostrar para vocês aqui alguns exemplos. E ele funciona muito similar com uma linguagem... Na verdade, ele usa a sintaxe SQL. Quando eu coloco aqui SQL, eu estou querendo mais fazer uma analogia a banco de dados relacionais. Então, com certeza, você já deve ter trabalhado com algum banco de dados relacionais, como Oracle, SQL Server, MySQL, Postgre, e ele usa uma sintaxe muito similar a esses bancos de dados, porque esses bancos de dados também usam SQL, assim como o CACICL. Não é à toa que o nome da ferramenta é KSQL. A gente chama gente chama de K-Cycle, mas é a mesma coisa, tá? Bom, só pra exemplificar aqui, alguma das características do K-Cycle, ele consegue fazer filtro de dados muito bem. Então, por exemplo, se você tem um tópico que tá recebendo uma lista de clientes, né? Por exemplo, você pode colocar o K-CyICO para consumir esse tópico e aplicar um filtro onde você só quer pegar os clientes com o nome Ronaldo. Então ele vai fazer esse filtro nesse tópico, vai aplicar esse filtro onde só os clientes com o nome Ronaldo vão ser filtrados e vai jogar para o novo tópico. Então aqui é um exemplo, mas existem milhares de filtros que você pode aplicar assim como você aplicaria se fosse no banco de dados relacional. Você vai fazer o error, etc. Igual como você faz no banco de dados relacional. Você também pode agregar. Então imagina que para esse mesmo case onde eu tenho um tópico com vários clientes eu quero agora agrupar todo mundo que tem o nome Ronaldo para fazer um count, por exemplo e aí eu consigo jogar num tópico de destino para dizer quantas vezes o Ronaldo por exemplo, chegou o Mike e etc então eu poderia aqui simplesmente fazer um case onde dado quantas vendas o Ronaldo efetuou, por exemplo, se a gente estiver falando de um cliente, quantas vezes o Ronaldo fez uma compra na loja. E aí eu consigo fazer um group buy pelo nome, num tópico de venda, por exemplo, e aí eu consigo saber quantas vezes o Ronaldo efetou uma compra naquela loja certo? Então estou aqui divagando em algumas use cases, mas agregação assim como vocês fazem no banco de dados relacional aqui é a mesma coisa, tá? Você pode pegar um group buy,., pegar o máximo, o mínimo, fazer um sum e tudo mais. É o mesmo conceito. Transformação. Coloquei aqui também mais um exemplo bem simples, onde eu quero pegar esse cliente aqui, quero aplicar o pre-keyz, então esse cliente aqui, Ronaldo, que está com o lower keyz, eu vou aplicar o pre-keyz e aí ele vai ficar com caixa alta em todos os caracteres. De novo, é só um exemplo bem simples para mostrar o que o Cacico consegue fazer, mas eu vou mostrar para vocês já já uma doc que tem bastante transformações e funções que vocês podem usar. Bom, a primeira que eu quero mostrar para Vou só abrir aqui. Se a gente olhar a parte escalar, você vai ver aqui do lado direito que existem muitas funções que você pode aplicar no seu CACICL. E a gente vai falar depois em outras aulas sobre o que é uma table, o que é um streaming, mas por enquanto só entenda que você pode aplicar qualquer uma dessas funções. Por exemplo, você pode concatenar string. Então, imagine aqui que você tem um campo lá na sua tabela, que é o first name e o last name. E aí você quer gravar num tópico que agora tem os dois nomes juntos. Você pode concatenar aqui o first name com o last name. Por exemplo, você pode pegar o tamanho da sua string. Se tiver mais de 100, eu quero mandar um push notification para o cliente dizendo que o nome dele é muito grande. A gente tem também funções aritméticas, como por exemplo, valor absoluto. Por exemplo, valor absoluto. Eu tenho aqui o... Cadê? Cadê? Cosseno, né? O log, o pi. Então, assim vai, tá? Eu tenho aqui arredondamento. O seno, também tem o seno a gente quer ser entre trigonometria raiz quadrada e assim vai além disso eu tenho funções de agregação então quando a gente olha para as funções de agregação eu posso fazer similar a como eu faço em uma base relacional média, eu posso por exemplo aplicar um count para saber a quantidade, o máximo, o mínimo, tem o histograma, então bem legal se você quiser por exemplo ver latência, usar um histograma para ver latência, e assim vai. Bom pessoal era isso, espero que vocês tenham gostado e até a próxima.