Olá pessoal, tudo bem com vocês ???

E continuando nosso compromisso com a DSA de trazer alguns assuntos para a comunidade relacionados à Formação de Arquiteto de Dados, hoje vou falar sucintamente sobre a Arquitetura do Apache NiFi, que é uma plataforma de ingestão de dados em tempo real e de código aberto (open-source).

O Apache NiFi é um sistema fácil de usar, poderoso e confiável para processar e distribuir dados, pois além da ingestão de dados, é capaz de transferir e gerenciar a transferência de dados entre fontes e sistemas heterogêneos. Ele suporta uma grande variedade de formatos de dados, como logs, dados de geolocalização, feeds sociais, etc.

Ele foi construído para automatizar o fluxo de dados entre sistemas. Embora o termo “fluxo de dados” seja usado em vários contextos, nós o usamos aqui para significar o fluxo automatizado e gerenciado de informações entre sistemas.

Isso acontece sempre em empresas que tenham mais de um sistema, onde alguns criam dados e outros consomem dados.

Antes de descrever a sua arquitetura, vou citar algumas características do NiFi que fazem parte de seus recursos:

• Interface de usuário baseada na Web: experiência perfeita entre design, controle, feedback e monitoramento;
• Altamente configurável: tolerante a falhas, entrega garantida, baixa latência, alta produtividade, priorização dinâmica, fluxo pode ser modificado no tempo de execução;
• Proveniência de Dados: permite rastrear o fluxo de dados do início ao fim (conceito de linhagem dos dados);
• Projetado para extensão: permite a construção de processadores, desenvolvimento rápido e testes eficazes;
• Seguro: SSL, SSH, HTTPS, conteúdo criptografado etc, além de autenticação multiusuário e gerenciamento de autorização/política interna.

Agora, depois de abordar o poder que esta plataforma possui, vamos conhecer o perfil de sua infraestrutura.

De acordo com a imagem abaixo, o NiFi é executado dentro de uma JVM (Java Virtual Machine) em um sistema operacional/host.

apache_nifi

Os principais componentes do NiFi na JVM são os seguintes:

• Servidor Web: o objetivo do servidor web é hospedar a API de comando e controle baseada em HTTP do NiFi;
• Controlador de fluxo: o controlador de fluxo é o cérebro da operação. Ele fornece threads para as extensões serem executadas e gerencia o agendamento de quando as extensões recebem recursos para execução;
• Processador: é um módulo java responsável por buscar dados do sistema de origem ou armazená-los no sistema de destino;
• Extensões: existem vários tipos de extensões do NiFi descritas em outros documentos. O ponto principal aquié que as extensões operam e executam dentro da JVM;
• Repositório FlowFile (arquivo fluxo): é o uso básico do NiFi. É onde ele controla o estado conhecido de determinado FlowFile que está atualmente ativo no fluxo;
• Repositório de Conteúdo: é onde permanecem os bytes de conteúdo vigentes de determinado FlowFile;
• Repositório de Proveniência: é onde todos os dados de origem estão armazenados.

O Apache NiFi também pode operar dentro de um cluster. Neste caso, ele pode se beneficiar da interação com um servidor ZooKeeper, através do Apache ZooKeeper, que é um serviço centralizado para manter informações de configuração, nomear, fornecer sincronização distribuída e serviços de grupo, conforme é mostrado em um dos Labs do curso de Data Lake.

O objetivo desse texto é apenas para dar uma noção de uma das plataformas estudada na Formação Arquiteto de Dados, que tem seu core voltado diretamente para o fluxo de dados, mostrando que se trata de uma tarefa complexa e de suma importância, pois isso reflete na qualidade final dos dados a serem consumidos pelas pessoas, sistemas ou aplicações.

Até a próxima !

Bibliografia:

Apache NiFi
Apache NiFi – Visão Geral
Apache Zookeeper


Este artigo foi produzido por um dos alunos da DSA, o Carlos Helton Aguiar, e compartilhado na timeline da Comunidade DSA em nosso portal. O Carlos e outros alunos tiveram a iniciativa de produzir alguns resumos para ajudar aqueles que estão começando agora sua jornada e assim compartilhar conhecimento. Isso não é maravilhoso? Sim, nós da DSA também achamos. E por isso decidimos compartilhar em nosso Blog para ajudar também outras pessoas.

Parabéns Carlos.