- Data Hackers Newsletter
- Posts
- Guia prático: tutorial completo de Apache NiFi para iniciantes
Guia prático: tutorial completo de Apache NiFi para iniciantes
Um tutorial passo a passo sobre como começar a usar Apache NiFi, ideal para quem deseja aprender a gerenciar e processar fluxos de dados.
Se você está pronto para mergulhar no mundo do gerenciamento de fluxo de dados, o Apache NiFi é a ferramenta que tornará essa jornada mais acessível e intuitiva. Este tutorial prático é ideal para iniciantes que desejam aprender a gerenciar e processar fluxos de dados de forma eficiente, utilizando uma interface gráfica que simplifica até as tarefas mais complexas.
Neste guia, você encontrará um passo a passo sobre como instalar o NiFi, configurar e monitorar seus fluxos de dados, além de explorar seus principais processadores que permitem conectar, transformar e roteirizar informações de diversas fontes.
O que é Apache NiFi?
O Apache NiFi é uma poderosa ferramenta de gerenciamento de fluxo de dados que permite a automação do movimento de dados entre diferentes sistemas. Desenvolvido pela Apache Software Foundation, o NiFi é projetado para simplificar a integração de dados, fornecendo uma interface gráfica que facilita o design e a configuração de fluxos de dados.
Uma das principais características da ferramenta é sua abordagem baseada em programação orientada a fluxo. Isso significa que os usuários podem visualizar e gerenciar seus fluxos de dados através de uma interface intuitiva acessada via navegador, eliminando a necessidade de escrever código complexo.
O NiFi oferece suporte a uma variedade de processadores que realizam tarefas específicas dentro de um fluxo de dados. Esses processadores podem ser configurados para manipular dados de diversas fontes, transformando, enriquecendo ou roteando informações conforme necessário. Além disso, a estrutura do NiFi permite que os dados sejam tratados em tempo real, o que é crucial para aplicações que exigem alta disponibilidade e desempenho.

O ApacheNiFi é hoje uma das principais ferramentas para processar gerenciar fluxos de dados
Vantagens do Apache NiFi
Uma das vantagens do Apache NiFi é sua flexibilidade, permitindo que os usuários integrem dados de diferentes fontes e formatos, como bancos de dados, arquivos CSV, JSON, XML e sistemas de mensagens, como o Apache Kafka. Essa capacidade de captar e processar dados de várias origens torna o NiFi uma escolha popular em cenários de Big Data e análise de dados.
Em resumo, o Apache NiFi é uma solução abrangente para automação de fluxo de dados, oferecendo ferramentas e recursos que tornam a manipulação de dados mais acessível e eficiente.
Para que serve o Apache NiFi?
O Apache NiFi é uma plataforma de software de código aberto projetada para automatizar o fluxo de dados entre sistemas, oferecendo uma maneira intuitiva e eficaz de gerenciar grandes volumes de informações. Desenvolvido inicialmente pela National Security Agency (NSA) dos Estados Unidos, agora é mantido pela Apache Software Foundation.
Uma das principais funções do Apache NiFi é simplificar o fluxo de dados entre diferentes origens e destinos. Façendo isso através de uma interface gráfica, permite que os usuários arrastem e soltem componentes, tornando o processo acessível mesmo para aqueles com pouca experiência em programação.
Recursos do Apache NiFi
Os principais recursos do Apache NiFi incluem:
Processamento Flexível: Permite criar fluxos de dados altamente configuráveis, lidando com diversas fontes, como sistemas de arquivos, bancos de dados e APIs.
Rastreamento de Proveniência: Permite que os usuários visualizem a origem dos dados, suas transformações e os caminhos percorridos, o que é importante para auditorias e resolução de problemas.
Segurança Robusta: Inclui recursos avançados, como criptografia SSL/TLS, autenticação com Kerberos, e controle de acesso baseado em políticas.
Integração com Múltiplos Sistemas: Facilita a movimentação de dados entre diversas plataformas e serviços.
Essas características tornam o NiFi amplamente utilizado em diversos setores, como gestão de dados de negócios, automação de processos e cenários de big data, onde o gerenciamento eficiente é essencial.
Apache NiFi é uma ferramenta ETL?
O Apache NiFi é frequentemente classificado como uma poderosa ferramenta ETL (Extração, Transformação e Carga), destacando-se pela sua capacidade de facilitar a movimentação e o processamento de dados.
Características principais do Apache NiFi
Processamento em tempo real: Permite a realização de análises e respostas rápidas a eventos.
Interface gráfica intuitiva: A configuração de fluxos de dados é facilitada através de arrastar e soltar, permitindo a criação e o gerenciamento por usuários com pouca experiência técnica.
Flexibilidade: Oferece uma ampla gama de processadores, desde bancos de dados até APIs e arquivos.
Escalabilidade: Projetado para lidar com grandes volumes de dados, ajustando-se às crescentes demandas de processamento.
Rastreamento e monitoramento: Permite que os usuários visualizem como os dados estão sendo processados e identifiquem possíveis gargalos.
Comparação com outras ferramentas ETL
Enquanto muitas ferramentas ETL se concentram na extração e carga de dados, o Apache NiFi diferencia-se pelo seu enfoque em movimentação e transformação contínua. Isso o torna especialmente útil em cenários de análise de IoT (Internet das Coisas). As empresas que utilizam o NiFi frequentemente apreciam a capacidade de construir fluxos complexos sem extensa codificação, tornando-o uma solução abrangente para gerenciamento de fluxos de dados.
Diferença entre Apache NiFi e Kafka
Quando se trata de migração de dados, Apache NiFi e Apache Kafka são ferramentas populares, cada uma projetada para casos de uso diferentes.
Funcionalidade e Casos de Uso
Apache NiFi: É uma ferramenta de automação e gerenciamento de fluxo de dados que fornece uma interface para a criação e monitoramento de fluxos contínuos de dados.
Apache Kafka: É um sistema de mensagens distribuído focado em streaming em tempo real e event sourcing, ideal para transmissão de grandes volumes em tempo real.
Desempenho e Escalabilidade
O Kafka é ideal para sistemas que exigem alta taxa de transferência e baixa latência. Em contrapartida, o NiFi permite manusear prioridades de dados, roteamento e transformações de maneira mais fácil, embora possa não oferecer o mesmo nível de throughput que Kafka em sistemas altamente distribuídos.
Facilidade de Uso
Com uma interface gráfica amigável, o NiFi facilita a montagem e o gerenciamento de fluxos de dados. O Kafka, por sua vez, pode exigir uma curva de aprendizado mais acentuada para usuários não familiarizados com sistemas distribuídos.
Integração e Ecossistema
Apache NiFi se projeta para integrar uma variedade de fontes de dados, enquanto Kafka atua frequentemente como peça central em arquiteturas de streaming, utilizando outras ferramentas como Kafka Streams e Kafka Connect.
Ambientes de Dados Modernos
Ambas as ferramentas têm suas aplicações em ambientes de dados modernos. O NiFi é eficaz em governança de dados e rastreamento, enquanto o Kafka é essencial para plataformas de analíticas em tempo real.

Interface do Apache NiFi
Como instalar Apache NiFi?
Instalar o Apache NiFi é um processo relativamente simples. Abaixo, vamos explorar passo a passo como realizar essa instalação.
Pré-requisitos
Antes de começar, certifique-se de ter o Java Development Kit (JDK) instalado, pois o NiFi é executado em Java. Você pode verificar se o JDK está instalado executando:
java -version
Se não estiver instalado, você pode baixá-lo do site da Oracle ou usar um gerenciador de pacotes como o Homebrew no macOS.
Passo 1: Download do NiFi
Acesse a página de downloads do Apache NiFi e escolha a versão que você deseja. Existem duas opções de pacotes disponíveis:
Um tarball (tar.gz) ideal para usuários de Linux.
Um arquivo zip que é mais aplicável para usuários de Windows.
Para instalar no macOS via Homebrew, use:
brew install nifi
Após o download, extraia o arquivo em um diretório de sua escolha.
Passo 2: Configuração
Após extrair os arquivos, configure o NiFi editando o arquivo nifi.properties
, localizado na pasta conf
. Este arquivo contém várias configurações essenciais.
Passo 3: Iniciando o NiFi
Agora, você está pronto para iniciar o NiFi.
Para usuários do Windows:
Navegue até a pasta onde o NiFi foi instalado.
Entre na subpasta
bin
e clique duas vezes no arquivorun-nifi.bat
.
Para encerrar, pressione Ctrl + C no terminal em execução.
Para usuários de Linux/macOS:
Abra um terminal e navegue até o diretório de instalação do NiFi.
Para iniciar em primeiro plano, execute:
bin/nifi.sh run
Para executar em segundo plano, use:
bin/nifi.sh start
Para verificar o status, utilize:
bin/nifi.sh status
E para parar a execução:
bin/nifi.sh stop
Passo 4: Instalando como um serviço (Opcional)
Caso deseje instalar o NiFi como um serviço (disponível apenas para Linux e macOS), utilize:
bin/nifi.sh install
Em sistemas Unix, você pode iniciar e parar o serviço usando:
sudo service nifi start
sudo service nifi stop
Acessando a Interface do Usuário
Após a instalação e configuração, você pode acessar a interface do usuário do NiFi em um navegador, usando o seguinte endereço:
http://localhost:8080/nifi
Na primeira vez que acessar, serão geradas credenciais no log da aplicação, localizando-se em logs/nifi-app.log
. É recomendável anotar essas informações para o login inicial.
Como configurar um fluxo de dados no Apache NiFi?
Configurar um fluxo de dados no Apache NiFi é essencial para manipular e gerenciar dados de maneira eficiente. A seguir, apresentamos um guia passo a passo.
1. Acesse a interface do Apache NiFi
Após a instalação, abra a interface web. Clique no menu à esquerda, selecione Quick Links e clique em NiFi UI para acessar a interface gráfica.
2. Criando seu primeiro Data Flow
Inicie criando um novo DataFlow arrastando e soltando os componentes principais na tela central. Por exemplo, para coletar registros de um arquivo de log, utilize o componente TailFile.
3. Adicionando e configurando o Processor “TailFile”
Passo 1: Arraste o ícone do Processor e uma janela de configuração aparecerá.
Passo 2: No campo de pesquisa, digite TailFile, selecione e clique em ADD.
Passo 3: Clique com o botão direito no Processor e escolha Configure. Na aba de Scheduling, agende a execução para a cada 10 segundos.
Passo 4: Na aba Properties, insira o caminho do arquivo de log que deseja monitorar, como
/var/log/nifi/nifi-app.log
, e clique em Apply.
4. Adicionando e conectando o Processor “SplitText”
Para dividir os registros em várias partes, use o Processor SplitText.
Passo 1: Arraste o SplitText para a área de montagem.
Passo 2: Clique com o botão direito sobre ele e selecione Configure. Defina o Line Split Count como, por exemplo, 15.
Passo 3: Na aba de Settings, marque as checkboxes Failure e Original, e clique em Apply.
Passo 4: Conecte o Processor TailFile ao SplitText arrastando da flecha verde até o segundo componente e clique em ADD.
5. Conectando outros Processors
Continue adicionando mais Processors conforme necessário, como CompressContent ou UpdateAttribute.
Quais são os principais processadores do Apache NiFi?
O Apache NiFi possui uma vasta gama de processadores, cada um desempenhando funções específicas no gerenciamento e transformação de dados. Aqui estão alguns dos principais processadores disponíveis:
GenerateFlowFile: Cria arquivos de fluxo (FlowFiles) com dados fictícios para testes.
GetFile: Lê arquivos do sistema de arquivos local.
PutFile: Armazena dados processados em um diretório no sistema.
FetchFile: Recupera o conteúdo de um arquivo existente.
QueryDatabaseTable: Consulta tabelas de bancos de dados SQL.
Join: Combina dados de diferentes origens com base em uma chave comum.
EvaluateJsonPath: Extrai dados específicos de arquivos JSON.
RouteOnAttribute: Roteia FlowFiles para diferentes caminhos com base em atributos.
ExecuteScript: Executa código personalizado para manipulação de dados.
Delete: Remove FlowFiles não necessários, mantendo os fluxos de dados limpos.
Os processadores do Apache NiFi podem ser ajustados conforme as necessidades de cada projeto, tornando a ferramenta extremamente versátil. Além desses, existem mais de 280 processadores integrados, abrangendo uma variedade de formatos de dados e protocolos de comunicação.
Como monitorar fluxos de dados no Apache NiFi?
O monitoramento de fluxos de dados no Apache NiFi é essencial para garantir eficiência e segurança no processamento. A ferramenta oferece funcionalidades integradas para visualização e análise do desempenho dos fluxos em tempo real.
Principais recursos de monitoramento
Interface gráfica intuitiva: Permite monitorar facilmente os fluxos, visualizando componentes, conexões e controladores.
Status dos componentes: Verifica se processadores estão em execução, parados ou falharam.
Métricas de desempenho: Fornece dados como tempo de processamento e volume de dados transferidos.
Alertas e notificações: Configura alertas para eventos críticos e garante respostas rápidas a problemas.
Proveniência de dados: Permite rastrear a origem e o destino de cada dado que passa pelo sistema.
Ferramentas de análise: Diagnostica o desempenho dos fluxos e identifica gargalos.
Relatórios e exportação de dados: Gera relatórios sobre o desempenho dos fluxos para análises adicionais.
O monitoramento eficaz no Apache NiFi maximiza a eficiência e confiabilidade das operações de dados, permitindo que os usuários respondam rapidamente a qualquer problema durante o processamento.
Vale a pena usar o Apache NiFi?
Ao longo deste guia, você aprendeu a importância do Apache NiFi como uma solução eficaz para gerenciamento de fluxo de dados, abordando desde a instalação até a configuração e monitoramento de fluxos. Com sua interface intuitiva e variedades de processadores, o NiFi se destaca por facilitar a manipulação de grandes volumes de dados, tornando-o uma escolha valiosa para qualquer profissional que busca otimizar suas operações de dados.
Além disso, a flexibilidade matemática do NiFi o torna ideal para cenários que exigem integração de dados de diversas fontes e formatos. Se você almeja construir soluções robustas e escaláveis em seu ambiente de trabalho, o Apache NiFi pode ser o aliado que você precisa para trilhar esse caminho de forma eficaz.