Apache Nifi

Una piattaforma di logistica integrata di dati in tempo reale e di elaborazione degli eventi.

Apache NiFi automatizza il movimento dei dati tra diverse origini e sistemi di dati, rendendo l'acquisizione dei dati veloce, semplice e sicura.

Cosa fa Apache NiFi

Apache NiFi è una piattaforma integrata di logistica dei dati per l'automazione dello spostamento dei dati tra sistemi diversi. Assicura il controllo in tempo reale che semplifica la gestione dello spostamento dei dati tra qualsiasi origine e qualsiasi destinazione. È indipendente dall'origine dei dati, supporta fonti disparate e distribuite di diversi formati, schemi, protocolli, velocità e dimensioni come macchine, dispositivi di geolocalizzazione, flussi di clic, file, social feed, file di registro e video e altro ancora. È un impianto configurabile per lo spostamento dei dati, simile al modo in cui Fedex, UPS o altri servizi di consegna con corriere movimentano i pacchi. E proprio come quei servizi, Apache NiFi consente di monitorare i propri dati in tempo reale, così come si può monitorare una consegna.

Apache NiFi si basa sulla tecnologia precedentemente chiamata "Niagara Files" sviluppata e utilizzata su larga scala all'interno della NSA negli ultimi otto anni e resa disponibile alla Apache Software Foundation attraverso il NSA Technology Transfer Program. Per questo motivo, tale tecnologia è stata progettata fin dall'inizio per essere utilizzata sul campo: è flessibile, estensibile e adatta a una vasta gamma di dispositivi, da un dispositivo periferico di rete di piccole dimensioni come un Raspberry Pi ai cluster di dati aziendali e al cloud. Apache NiFi è inoltre in grado di adattarsi dinamicamente alla fluttuante connettività di rete che potrebbe influire sulle comunicazioni e quindi sulla consegna dei dati.

Panoramica di Nifi

Sebbene il termine dataflow venga utilizzato in diversi contesti, qui viene utilizzato per indicare il flusso automatizzato e gestito di informazioni tra i sistemi. I problemi legati a tale flusso esistono da quando le aziende hanno cominciato ad avere più di un sistema in un ambiente in cui alcuni sistemi creavano i dati e altri li utilizzavano. I problemi e i pattern per la loro soluzione che sono stati via via elaborati sono stati presentati e descritti da molti autori. Una descrizione completa e agevole su questo tema è il testo Enterprise Integration Patterns [eip]. Alcune delle difficoltà di livello più elevato del dataflow sono i seguenti:

Guasto dei sistemi

Le reti subiscono guasti, i dischi riscontrano errori, il software si arresta in modo anomalo e le persone commettono errori.

L'accesso ai dati supera la capacità di consumo

Talvolta un'origine dati può lasciare indietro una parte dell'elaborazione o della catena di consegna: basta un solo anello debole perché si verifichi un problema.

Le condizioni di confine sono semplici suggerimenti

Otterrai invariabilmente dati di dimensioni troppo grandi o troppo piccole, che sono troppo veloci, troppo lenti, danneggiati, errati o nel formato sbagliato.

Ciò che è rumore oggi diventa segnale domani

Le priorità di un'organizzazione cambiano, e rapidamente. Abilitare nuovi flussi e cambiare quelli esistenti deve avvenire velocemente.

I sistemi si evolvono a velocità diverse

I protocolli e i formati utilizzati da un determinato sistema possono cambiare in qualsiasi momento e spesso indipendentemente dai sistemi che li circondano. I dataflow esistono per collegare tra loro i componenti di un sistema a elevata distribuzione spesso non progettati per lavorare in modo integrato.

Conformità e sicurezza

Leggi, regolamenti e politiche cambiano. Gli accordi tra le imprese si modificano. Le interazioni da sistema a sistema e da sistema a utente devono essere sicure, affidabili e responsabili.

La produzione è soggetta a miglioramento continuo

Spesso non è nemmeno possibile avvicinarsi alla replica degli ambienti di produzione in laboratorio.

Nel corso degli anni, il flusso di dati è stato un male necessario nell'architettura. Ora, tuttavia, esiste una serie di movimenti attivi e in rapida evoluzione che rendono il flusso di dati molto più interessante e molto più vitale per il successo di una data impresa. Essi includono, ad esempio: l'architettura orientata ai servizi [soa], l'ascesa dell'API [api][api2], l'Internet of Things [iot] e i big data [bigdata]. Inoltre, il livello di rigore necessario per conformità, privacy e sicurezza è in costante aumento. Anche con l'emergere di tutti questi nuovi concetti, i modelli e le esigenze del flusso di dati sono sostanzialmente gli stessi. Le differenze principali sono quindi la portata della complessità, la velocità del cambiamento necessario per l'adattamento e il fatto che su larga scala il caso limite diventi un evento comune. NiFi è progettato per consentire di affrontare queste moderne sfide del dataflow.

Concetti principali

I concetti fondamentali della progettazione di NiFi sono strettamente correlati alle idee principali del Flow Based Programming [FBP]. Di seguito vengono riportati alcuni dei concetti principali di NiFi e viene descritta la loro relazione con l'FBP:

NiFi Term FBP Term Description
FlowFile Information Packet  A FlowFile represents each object moving through the system and for each one, NiFi keeps track of a map of key/value pair attribute strings and its associated content of zero or more bytes.
FlowFile Processor Black Box  Processors actually perform the work. In [eip] terms a processor is doing some combination of data Routing, Transformation, or Mediation between systems. Processors have access to attributes of a given FlowFile and its content stream. Processors can operate on zero or more FlowFiles in a given unit of work and either commit that work or rollback.
Connection Bounded Buffer Connections provide the actual linkage between processors. These act as queues and allow various processes to interact at differing rates. These queues then can be prioritized dynamically and can have upper bounds on load, which enable back pressure.
Flow Controller Scheduler  The Flow Controller maintains the knowledge of how processes actually connect and manages the threads and allocations thereof which all processes use. The Flow Controller acts as the broker facilitating the exchange of FlowFiles between processors.
Process Group Subnet  A Process Group is a specific set of processes and their connections, which can receive data via input ports and send data out via output ports. In this manner process groups allow creation of entirely new components simply by composition of other components.

Your form submission has failed.

This may have been caused by one of the following:

  • Your request timed out
  • A plugin/browser extension blocked the submission. If you have an ad blocking plugin please disable it and close this message to reload the page.