Skip to main content

1. O que é Apache NiFi?

NiFi  é  uma  estrutura  de  fluxo de  dados  de  código aberto. Funciona  como um transportador de dados entre o produtor e o consumidor de dados. Produtor significa o sistema que gera dados e consumidor significa o outro sistema que consome dados.

No site do projeto Apache Nifi, você encontra a seguinte definição:

“An easy to use, powerful, and reliable system to process and distribute data.”

O que abordarei neste artigo:

O que é Apache NiFi e quais são os principais conceitos dessa ferramenta.

O que eu não cobrirei:

Instalação, implantação, monitoramento, segurança e administração de um cluster NiFi.

2. Por que utilizar Apache NiFi?

Em primeiro lugar, quero deixar claro que não estou aqui para evangelizar o NiFi. Meu objetivo é apresentar  a  ferramenta  e fornecer informações suficientes  para  que  você  possa  tomar  uma decisão.

Os principais usos de NiFi incluem ingestão de dados. Em qualquer projeto de Big Data, o maior desafio  é  trazer  diferentes  tipos  de  dados  de  diferentes  fontes  para  um  data  lake  centralizado. Apache NiFi vem com mais de 280 processadores integrados que são capazes de transportar dados entre sistemas.

No  entanto,  o  NiFi  não  se  limita  apenas  à  ingestão  de  dados. Ele pode  também realizar proveniência   de   dados,   limpeza   de   dados,   evolução   de   esquema,   agregação   de   dados, transformação, agendamento de tarefas, além de muitos outros recursos.

NiFi é uma ferramenta fácil de usar para quem prefere configuração à codificação.

apache nifi

3. Adentrando no Apache Nifi

Simplificando, a sua lógica consiste em dois pontos:

Configurar:

Realizar a configuração dos processors para captura de dados, realização de conversões e outras transformações de dados.

o que é apache nifi

Interligar:

Interligar  os processors realizando connections entre  eles  para  desenhar  o  pipeline  de dados.

interligar apache nifi

dicas apache nifi

4. Entendendo a terminologia Nifi

Os processors trocam  pedaços  de  informações  chamados Flow Filespor  meio  de  filas  que  são chamadas de connections.

•FlowFile

O FlowFile é o pacote de informações que se move pelos processors do pipeline.Esse pacote é dividido entre duas partes: conteúdo e atributo.

O conteúdo mantém as informações reais do fluxo de dados que podem ser lidas usando GetFile, GetHTTPetc.,  enquanto o  atributo  está  na  forma  de  par  de  valores-chave  e  contém  todas  as informações básicas sobre o conteúdo.

É importante entender que o FlowFile não contém os dados em si pois limitaria severamente a taxa de transferência.

•Processor

Um processor é  uma  caixa preta  que  executa  uma  operação.  Os processors têm  acesso  aos atributos e ao conteúdo do FlowFile para realizar todos os tipos de ações.

Eles permitem que você execute  muitas  operações nos dados,  tarefas  de  transformação, validação  de  dados  e  salvando esses dados em vários sistemas. Também podemos construir processors personalizados no NiFi de acordo com nossos requisitos.

•Connections

A que ue mantém os dados processados de um processor depois que são processados.Como os processors consomem  e  produzem  dados  em  taxas  diferentes,  dependendo  das  operações  que executam, as connections atuam como buffers de FlowFiles.

5. Alguns dos recursos do NiFi

•Entrega garantida

NiFi  garante  a  entrega  de  dados.  Isso  é  obtido  por  meio  do  uso  eficaz  de  um  repositório  de conteúdo e log de write-ahead persistente desenvolvido para esse fim.

•Buffer de dados / liberação de pressão

Nifi pode armazenar dados em buffer quando uma determinada fonte de dados ultrapassa alguma parte da cadeia de processamento ou entrega. NiFi também suporta a capacidade de excluir dados enfileirados após um determinado período.

•Enfileiramento priorizado

NiFi  permite  a  configuração  de  um  ou  mais  esquemas  de  priorização  de  como  os  dados  são recuperados de uma fila. O padrão é o mais antigo primeiro, mas há momentos em que os dados devem  ser  obtidos  os  mais  recentes  primeiro,  os  maiores  primeiro  ou  algum  outro  esquema personalizado.

•Qualidade de serviço

Há  momentos  em  que  os  dados  devem  ser  processados  e  entregues  em  segundos  para  terem qualquer  valor.  NiFi  permite  que  o  administrador  priorize  a  latência  sobre  o  rendimento  ou tolerância a perdas etc.

o que é apache nifi

6. Conclusão

Depois de saber todos esses conceitos, sugiro que você pratique bastante, afinal, a melhor forma de aprender é fazendo. Simplifique, faça funcionar primeiro.

Uma ótima maneira de aprender e verificar projetos prontos, no https://github.com/deniswoliveira/meetup-eng-dados-apache-nifi temos  uma  demonstração de como utilizar o Apache NiFi para ler a API da Marvel e salvar o resultando em um banco de dados.

Obrigado por ler meu post e espero que gostem. Sinta-se à vontade para entrar em contato comigo se tiver alguma dúvida.

Leave a Reply