Apache NiFi - Introdução
Apache NiFi é um sistema poderoso, fácil de usar e confiável para processar e distribuir dados entre sistemas diferentes. Ele é baseado na tecnologia Niagara Files desenvolvida pela NSA e, após 8 anos, doado à Fundação Apache Software. Ele é distribuído sob a Licença Apache Versão 2.0, janeiro de 2004. A versão mais recente do Apache NiFi é 1.7.1.
Apache NiFi é uma plataforma de ingestão de dados em tempo real, que pode transferir e gerenciar a transferência de dados entre diferentes fontes e sistemas de destino. Ele oferece suporte a uma ampla variedade de formatos de dados, como registros, dados de localização geográfica, feeds sociais, etc. Ele também oferece suporte a muitos protocolos como SFTP, HDFS e KAFKA, etc. Este suporte a uma grande variedade de fontes de dados e protocolos tornando esta plataforma popular muitas organizações de TI.
Apache NiFi- Recursos Gerais
As características gerais do Apache NiFi são as seguintes -
O Apache NiFi oferece uma interface de usuário baseada na web, que oferece uma experiência perfeita entre design, controle, feedback e monitoramento.
É altamente configurável. Isso ajuda os usuários com entrega garantida, baixa latência, alto rendimento, priorização dinâmica, contrapressão e modificação de fluxos em tempo de execução.
Também fornece módulo de proveniência de dados para rastrear e monitorar dados do início ao fim do fluxo.
Os desenvolvedores podem criar seus próprios processadores personalizados e tarefas de relatório de acordo com suas necessidades.
NiFi também oferece suporte a protocolos seguros como SSL, HTTPS, SSH e outras criptografias.
Ele também oferece suporte ao gerenciamento de usuários e funções e também pode ser configurado com LDAP para autorização.
Apache NiFi -Key Concepts
Os principais conceitos do Apache NiFi são os seguintes -
Process Group - É um grupo de fluxos NiFi, que auxilia o usuário a gerenciar e manter os fluxos de forma hierárquica.
Flow - É criado conectando diferentes processadores para transferir e modificar dados, se necessário, de uma fonte ou fontes de dados para outras fontes de dados de destino.
Processor- Um processador é um módulo java responsável por buscar dados do sistema de sourcing ou armazená-los no sistema de destino. Outros processadores também são usados para adicionar atributos ou alterar o conteúdo no arquivo de fluxo.
Flowfile- É o uso básico de NiFi, que representa o único objeto dos dados coletados do sistema de origem em NiFi. NiFiprocessormakes mudanças para flowfile enquanto se move do processador de origem para o destino. Diferentes eventos como CREATE, CLONE, RECEIVE, etc. são executados no arquivo de fluxo por diferentes processadores em um fluxo.
Event- Os eventos representam a mudança no arquivo de fluxo durante a passagem por um fluxo NiFi. Esses eventos são rastreados na proveniência dos dados.
Data provenance - É um repositório. Também possui uma IU, que permite aos usuários verificar as informações sobre um arquivo de fluxo e ajuda na solução de problemas se houver algum problema que surja durante o processamento de um arquivo de fluxo.
Vantagens Apache NiFi
O Apache NiFi permite a busca de dados de máquinas remotas usando SFTP e garante a linhagem dos dados.
Apache NiFi suporta clustering, portanto, pode funcionar em vários nós com o mesmo fluxo de processamento de dados diferentes, o que aumenta o desempenho do processamento de dados.
Ele também fornece políticas de segurança em nível de usuário, nível de grupo de processo e outros módulos também.
Sua IU também pode ser executada em HTTPS, o que torna a interação dos usuários com o NiFi segura.
NiFi suporta cerca de 188 processadores e um usuário também pode criar plug-ins personalizados para oferecer suporte a uma ampla variedade de sistemas de dados.
Desvantagens Apache NiFi
Quando o nó é desconectado do cluster NiFi enquanto um usuário está fazendo alguma alteração nele, o flow.xml se torna inválido. O anodo não pode se conectar de volta ao cluster, a menos que o administrador copie manualmente o flow.xml do nó conectado.
Apache NiFi tem problema de persistência de estado no caso de troca de nó primário, o que às vezes torna os processadores incapazes de buscar dados de sistemas de sourcing.