Apache NiFi ist eine Open-Source-Plattform zur Automatisierung von Datenflüssen. Sie entstand beim US-Geheimdienst NSA unter dem Namen NiagaraFiles (Entwicklung ab 2006) und wurde 2014 als Open Source an die Apache Software Foundation übergeben. NiFi ist bewusst kein klassisches ETL-Werkzeug, sondern eine Datenfluss- und Ingest-Plattform für kontinuierliche Datenströme.
Grundkonzepte
NiFi basiert auf dem Flow-Based Programming: Daten und Verarbeitungsschritte werden als gerichteter Graph auf einer Browser-Oberfläche (Canvas) zusammengesteckt – per Drag-and-drop, ohne Code. Die zentralen Bausteine:
- FlowFile: ein Datenpaket (0 oder mehr Bytes) mit Attributen als Schlüssel-Wert-Metadaten – die Arbeitseinheit, die durch den Graphen fließt.
- Processor: ein Verarbeitungsschritt (lesen, transformieren, routen, schreiben); es gibt hunderte fertige Prozessoren.
- Connection: verbindet Prozessoren und bildet zugleich eine Warteschlange mit Backpressure (Gegenstau), wenn ein nachgelagerter Schritt nicht mehr aufnimmt.
- Process Group: bündelt Teilgraphen zu wiederverwendbaren Einheiten.
Provenance: Jeder Datenfluss nachvollziehbar
Ein Alleinstellungsmerkmal ist die Daten-Herkunft (Provenance): Für jedes FlowFile wird protokolliert, woher es kam, welche Prozessoren es wie verändert haben und wohin es geliefert wurde. Das macht NiFi besonders für Umgebungen attraktiv, in denen Compliance und Nachvollziehbarkeit wichtig sind – genau der Grund, warum die NSA das System für ihre eigenen Datenströme entwickelte.
Einsatz und Einordnung
NiFi eignet sich für Log- und Sensordaten, IoT-Datenströme oder das kontinuierliche Einspeisen in Data Lakes. Es kann Daten in vielen Formaten und Protokollen empfangen, anreichern und an Data Warehouses oder Message-Systeme weiterreichen.
Für planbare Batch-Jobs und komplexe Transformationen sind dagegen Talend oder Informatica PowerCenter die bessere Wahl; für zeitgesteuerte Orchestrierung ganzer Pipelines sorgt Apache Airflow.
Verwandte Grundlagen: Data Pipeline, Datenbank-Migration, Datenintegration.