Apache NiFi - Introduzione
Apache NiFi è un sistema potente, facile da usare e affidabile per elaborare e distribuire dati tra sistemi disparati. Si basa sulla tecnologia Niagara Files sviluppata dalla NSA e poi donata dopo 8 anni alla fondazione Apache Software. È distribuito con la licenza Apache versione 2.0, gennaio 2004. L'ultima versione di Apache NiFi è la 1.7.1.
Apache NiFi è una piattaforma di acquisizione dati in tempo reale, in grado di trasferire e gestire il trasferimento di dati tra diverse origini e sistemi di destinazione. Supporta un'ampia varietà di formati di dati come log, dati di geolocalizzazione, feed social, ecc. Supporta anche molti protocolli come SFTP, HDFS e KAFKA, ecc. Questo supporto a un'ampia varietà di origini dati e protocolli che rendono questa piattaforma popolare in molte organizzazioni IT.
Apache NiFi - Caratteristiche generali
Le caratteristiche generali di Apache NiFi sono le seguenti:
Apache NiFi fornisce un'interfaccia utente basata sul Web, che fornisce un'esperienza senza interruzioni tra progettazione, controllo, feedback e monitoraggio.
È altamente configurabile. Questo aiuta gli utenti con consegna garantita, bassa latenza, throughput elevato, prioritizzazione dinamica, contropressione e modifica dei flussi in fase di esecuzione.
Fornisce inoltre un modulo di provenienza dei dati per tracciare e monitorare i dati dall'inizio alla fine del flusso.
Gli sviluppatori possono creare i propri processori personalizzati e attività di reporting in base alle proprie esigenze.
NiFi fornisce anche supporto per protocolli sicuri come SSL, HTTPS, SSH e altre crittografie.
Supporta anche la gestione degli utenti e dei ruoli e può anche essere configurato con LDAP per l'autorizzazione.
Apache NiFi - Concetti chiave
I concetti chiave di Apache NiFi sono i seguenti:
Process Group - È un gruppo di flussi NiFi, che aiuta un utente a gestire e mantenere i flussi in modo gerarchico.
Flow - Viene creato collegando diversi processori per trasferire e modificare i dati, se necessario, da una o più origini dati a un'altra origine dati di destinazione.
Processor- Un processore è un modulo java responsabile del recupero dei dati dal sistema di origine o dell'archiviazione nel sistema di destinazione. Altri processori vengono utilizzati anche per aggiungere attributi o modificare il contenuto nel file di flusso.
Flowfile- È l'utilizzo di base del NiFi, che rappresenta il singolo oggetto dei dati raccolti dal sistema sorgente in NiFi. NiFiprocessormapporta le modifiche al file di flusso mentre si sposta dal processore di origine alla destinazione. Eventi diversi come CREATE, CLONE, RECEIVE, ecc. Vengono eseguiti sul file di flusso da diversi processori in un flusso.
Event- Gli eventi rappresentano il cambiamento nel file di flusso durante l'attraversamento di un flusso NiFi. Questi eventi vengono tracciati in base alla provenienza dei dati.
Data provenance - È un repository e dispone anche di un'interfaccia utente, che consente agli utenti di controllare le informazioni su un file di flusso e aiuta nella risoluzione dei problemi se si verificano problemi durante l'elaborazione di un file di flusso.
Vantaggi di Apache NiFi
Apache NiFi consente il recupero dei dati da macchine remote utilizzando SFTP e garantisce la derivazione dei dati.
Apache NiFi supporta il clustering, quindi può funzionare su più nodi con lo stesso flusso di elaborazione di dati diversi, il che aumenta le prestazioni dell'elaborazione dei dati.
Fornisce inoltre politiche di sicurezza a livello di utente, a livello di gruppo di processi e anche altri moduli.
La sua interfaccia utente può anche essere eseguita su HTTPS, il che rende sicura l'interazione degli utenti con NiFi.
NiFi supporta circa 188 processori e un utente può anche creare plug-in personalizzati per supportare un'ampia varietà di sistemi di dati.
Svantaggi di Apache NiFi
Quando il nodo viene disconnesso dal cluster NiFi mentre un utente sta apportando modifiche, il file flow.xml diventa non valido e non può riconnettersi al cluster a meno che l'amministratore non copi manualmente flow.xml dal nodo connesso.
Apache NiFi presenta problemi di persistenza dello stato in caso di cambio del nodo primario, che a volte impedisce ai processori di recuperare i dati dai sistemi di approvvigionamento.