Crie seu dataflow com apache NiFi
O que é o Apache NiFi?
O Apache NiFi é um software de código aberto para automatizar e gerenciar o fluxo de dados entre sistemas. É um sistema poderoso e confiável para processar e distribuir dados. Ele fornece uma interface para criar, monitorar e controlar os fluxos de dados.
Por que usar o Apache NIfi?
- Permite que você extraia dados para o NiFi, de várias fontes de dados e crie arquivos de fluxo
- Oferece controle em tempo real que ajuda você a gerenciar o fluxo de dados entre qualquer origem e destino
- Visualize o DataFlow a nível corporativo
- Permite aproveitar bibliotecas existentes e funcionalidades do ecossistema Java
- NiFi é projetado para escalar em clusters que oferecem entrega garantida de dados
- Visualize e monitore o desempenho
Download e Instalação
Primeiro faça o download da ultima versão do apache nifi no site https://nifi.apache.org/download.html atualmente está na versão 1.9.2. Descompacte o zip e vá para a pasta bin, dê um duplo clique em - run-nifi.bat, o processo de inicialização deve demorar cerca de 1 minuto, após o termino basta ir para o browser e digitar localhost:8080/nifi, você deverá ver uma tela similar a essa.
Vamos dar uma olhada em seus componentes.
Começando pelo nosso Components Toolbar na ordem de icones, da esquerda para direita:
Processor — Um processor é um módulo java responsável por buscar dados ddeterminada fonte, seja ela um cvs, uma api etc, ou armazená-los, seja em um banco de dados, por meio de um put ou um arquivo no sistema. Outros processors também são usados para adicionar atributos ou alterar o conteúdo no flowfile.
Input e Output ports — Define as portas de entrada e saída para um Processor ou Process Group.
Process Group — É um flow que agrupa todos os outros elementos, dentro do seu fluxo você pode criar vários Process Groups para simplificar a visualização dos processos
Remote Process Group — Permitem tratar de outra instancia do NiFi ou outro cluster como se fosse apenas outro process group.
Funnel — Permite juntar varias queues dentro de uma única queue, funciona literalmente como um funil.
Template — Modelos pre criados que podem ser importados para dentro da instância do Nifi.
Label — Um card com texto explicativo, serve para orientações.
Demonstrando o Uso
Arraste um processor para o centro da UI do seu Nifi, uma tela para selecionar o tipo do processor irá aparecer, selecione o GenerateFlowFile, clique em add, dê dois cliques nele vá na aba properties e na propriedade custom text, digite o value “Temporize o nifi” clique em apply.
Arraste outro processor para a tela, selecione PutFile e clique em add, clique no primeiro processor e arraste uma seta para o novo processor, uma fila irá ser criada automaticamente com o name success, dê dois cliques no processor PutFile, na primeira aba marque failure e sucess em Automatically Terminate Relationships, para não ter que definir situações de falhar e sucesso e na aba properties digite diretorioSaida na propriedade Directory.
Agora sua tela deverá estar como esta abaixo.
Agora testar nosso flow, clique em generateflowfile, vá na guia Operate e clique no sinal de play, faça o mesmo com o PutFile, você deverá ver o valor da fila aumentando bastante, pare os dois processors e dentro da pasta do nifi procure pelo diretório que você nomeou, centenas de arquivos com a frase “Temporize o nifi” devem ter sido criados no diretório, isso ocorre porque não definimos um tempo para cada execução do GenerateFlowFile, para corrigir isso dê um duplo clique nele, vão na aba scheduling, e em run schedule mude o valor de 0 sec para 1 sec, agora cada execução irá durar um 1 segundo.
E assim criamos nosso primeiro flow, no próximo post sobre o Apache Nifi iremos utilizar templates para e outros recursos para potencializar nossa capacidade de automação do dataflow.