Crie seu dataflow com apache NiFi

Odilio Noronha
RapaduraTech
Published in
3 min readAug 13, 2019

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.

--

--