Unser Newsletter rund um technische Themen,
das Unternehmen und eine Karriere bei uns.

5 Minuten Lesezeit (919 Worte)

Aufbruch in eine neue Ära: Entdecken Sie NiFi 2.0

Ist noch alles im Fluss?

Mit dem bevorstehenden Release von NiFi 2.0 erwartet uns nach langer Zeit endlich wieder ein bedeutendes Update, das eine Fülle von neuen Funktionen mit sich bringt. Im Folgenden möchte ich die wichtigsten Informationen zur neuen Version kurz präsentieren.

Zahlen, Daten, Fakten

Die wichtigste Frage zuerst: Wann kommt NiFi 2.0?

Ein festes Veröffentlichungsdatum steht bisher noch nicht fest, aber es deutet alles darauf hin, dass wir voraussichtlich noch im ersten Quartal 2024 mit dem NiFi 2.0 Update rechnen können. Bereits im November 2023 wurde der erste Meilenstein (M1) von NiFi 2.0 eingeführt, der sämtliche wesentlichen neuen Funktionen enthielt.

In diesem Update wurden über 950 Issues bearbeitet. Detaillierte Informationen sowie die Release Notes finden Sie auf der Apache NiFi Jira-Seite. Für die offizielle 2.0 Veröffentlichung existiert bereits ein Plan, der den aktuellen Status widerspiegelt.

Neues bedeutet auch stets Abschied nehmen

Mit dem neuen Release werden nicht nur neue Funktionen eingeführt. Die Codebase wurde aufgeräumt und einige alte, bereits abgekündigte („deprecated“) markierte Funktionen wurden entfernt.

Die beiden wahrscheinlich auf den ersten Blick auffälligsten Änderungen sind der Wegfall von Templates und Variablen.

Variablen waren bereits sehr lange Zeit als nicht mehr empfohlen („deprecated“) deklariert und ihre Funktionalität wurde durch die Parameter-Funktion ersetzt. In unserem Blogartikel, Variablen? Parameter? Was denn nun? Wie ein Dataflow in Apache NiFi parametrisiert wird, haben wir bereits beschrieben, wie Sie in Ihren Dataflows Parameter verwenden können.

Die Template-Funktion wurde mit den letzten Releases sukzessive durch die NiFi Registry und die Möglichkeit einen Dataflow als JSON-Datei zu exportieren und importieren ersetzt. Einer der Hauptgründe für die Entfernung der Template-Funktion ist, dass die Templates beim Start von NiFi mit in den Arbeitsspeicher geladen werden. Gerade bei großen Dataflow-Umgebungen führte dies immer wieder zu Performance-Problemen.

Auch der Wechsel von XML- zu JSON-Dateien war ein Grund für den Wegfall von Templates. So werden langsam, aber sicher alle XML-Dateien in NiFi durch JSON-Dateien ersetzt. In den vergangenen Releases gab es noch beide Varianten der flow.xml.gz Datei. In NiFi 2.0 wird jetzt nur noch die flow.json.gz Datei verwendet.

Natürlich sind auch einige Prozessoren, die bereits veraltet waren, entfernt worden. Dazu zählen unter anderem der GetHTTP- und der GetTwitter-Prozessor. Für beide sind mit dem InvokeHTTP- bzw. dem ConsumeTwitter-Prozessor Alternativen vorhanden. Eine vollständige Liste aller entfernten und „deprecated“ Komponenten finden Sie immer im NiFi Confluence. Seit NiFi 1.18 finden Sie die, als veraltet markierten Komponenten auch immer in der deprecated.log-Datei im NiFi Log-Verzeichnis.

Auf welche Neuerungen können wir uns freuen?

Es wurden nicht nur alte Komponenten entfernt, sondern es sind auch eine Menge neue Features hinzugekommen, die ich hier gar nicht alle aufzählen kann. Die wichtigsten möchte ich zumindest kurz präsentieren. 

Endlich Regeln!

In NiFi war es für den Admin seit jeher schwierig zu kontrollieren, welche Prozessoren die Entwickler einsetzen. Es gab zwar schon immer sogenannte „restricted components“, für die es extra Berechtigungen benötigte, aber wenn der Entwickler diese besaß, konnte er die Prozessoren überall nutzen.

Mit den neuen „Flow Analysis Rules“ können Admins nun genau festlegen, welche Prozessoren nicht genutzt werden dürfen. So können potenziell gefährliche Prozessoren, wie „ExecuteProzess“ verboten oder es können „deprecated“ Prozessoren, markiert werden.

Parameter 2.0

Ein Vorteil von Variablen im Vergleich zu Parametern bestand darin, dass Variablen in den Prozessgruppen nach unten vererbt werden können. Mit NiFi 2.0 wurde aber auch dieses Feature hinzugefügt und Sie können nun den „Parameter Context“ automatisch den untergeordneten Prozessgruppen zuweisen, was eine manuelle Zuweisung überflüssig macht. 

Herzlich willkommen Python!

Es war schon immer möglich eigene Controller Services und Prozessoren zu entwickeln, jedoch nur in Java. Da NiFi immer mehr im Data Science-Bereich eingesetzt wird und dort extrem viel mit Python gearbeitet wird, war es nur eine Frage der Zeit, bis auch Python als Programmiersprache für die Entwicklung von eigenen Komponenten unterstützt wird. Mit NiFi 2.0 ist es jetzt endlich so weit.

Es lassen sich eigene Prozessoren in Python entwickeln!

Das hebt die Möglichkeiten von NiFi noch einmal auf ein ganz neues Level. Python-Prozessoren verhalten sie hundertprozentig wie native Java-Prozessoren, können jedoch die kompletten Möglichkeiten von Python nutzen. Es wird auch kein Jython verwendet, sondern es kann auf das System-Python, also CPython, zugegriffen werden. Viel wichtiger: Es können auch alle auf PyPi verfügbaren Bibliotheken verwendet werden.

Damit sind den Use Cases in NiFi praktisch keine Grenzen mehr gesetzt. Out-of-the-Box kommt bspw. der neue PromptChatGPT-Prozessor, mit dem Anfragen an die API von OpenAI gesendet werden können.

Und vieles mehr …

Die vorgestellten Features sind natürlich nicht alle neuen Änderungen, sondern eine – persönliche – Auswahl der Neuerungen.

Zu den erweiterten Highlights zählen unter anderem:

  • Die NiFi Registry jetzt auch OAuth-fähig
  • NiFi kann Kubernetes als Clustermanager nutzen, anstelle des ZooKeepers
  • Die Flow Configuration History wird nicht mehr in einer H2-Datenbank, sondern im Xodus Format gespeichert.
  • YAML wird nativ als neues Record-Format unterstützt

Eine vollständige Liste kann natürlich in den Release Notes eingesehen werden.

Also, lohnt sich das Update?

Die Antwort lautet ganz klar: Ja!

Spätestens mit der Python-Unterstützung ist NiFi 2.0 ein absolutes Must-Have. Aber auch die anderen Neuerungen sind sehr interessant und machen das Leben von NiFi-Entwicklern und Administratoren noch einfacher.

Wenn Sie weitere Fragen zu NiFi 2.0 haben oder Hilfe bei der Migration benötigen, sprechen Sie uns an. Wir helfen Ihnen gerne weiter.

In eigener Sache

Am 07.02.2024 findet das nächste Meetup der „Apache NiFi Germany“ User Group statt. Das Meetup wird wieder online stattfinden und wir würden uns freuen, wenn Sie dabei sind. Weitere Informationen folgen in Kürze. 

Seminarempfehlungen

Senior Consultant bei ORDIX

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Donnerstag, 26. Dezember 2024

Sicherheitscode (Captcha)

×
Informiert bleiben!

Bei Updates im Blog, informieren wir per E-Mail.