So funktioniert Apache Nifi - surfen Sie in Ihrem Datenfluss, ertrinken Sie nicht darin

Einführung

Das ist ein verrückter Wasserfluss. Genau wie Ihre Anwendung mit einem verrückten Datenstrom umgeht. Das Weiterleiten von Daten von einem Speicher zu einem anderen, das Anwenden von Validierungsregeln und das Beantworten von Fragen der Datenverwaltung sowie die Zuverlässigkeit in einem Big Data-Ökosystem sind schwierig, wenn Sie alles selbst erledigen.

Gute Nachrichten, Sie müssen Ihre Datenflusslösung nicht von Grund auf neu erstellen - Apache NiFi hat Ihren Rücken!

Am Ende dieses Artikels sind Sie ein NiFi-Experte, der bereit ist, Ihre Datenpipeline aufzubauen.

Was ich in diesem Artikel behandeln werde:

  • Was ist Apache NiFi, in welcher Situation sollten Sie es verwenden und was sind die Schlüsselkonzepte, die Sie in NiFi verstehen sollten.

Was ich nicht behandeln werde:

  • Installation, Bereitstellung, Überwachung, Sicherheit und Verwaltung eines NiFi-Clusters.

Für Ihre Bequemlichkeit ist hier das Inhaltsverzeichnis. Sie können jederzeit direkt dorthin gehen, wo Ihre Neugier Sie hinführt. Wenn Sie ein NiFi-Anfänger sind, wird empfohlen, diesen Artikel in der angegebenen Reihenfolge durchzugehen.

Inhaltsverzeichnis

  • I - Was ist Apache NiFi?

    - NiFi definieren

    - Warum NiFi verwenden?

  • II - Apache Nifi unter dem Mikroskop

    - FlowFile

    - Prozessor

    - Prozessgruppe

    - Verbindung

    - Durchflussregler

  • Fazit und Aufruf zum Handeln

Was ist Apache NiFi?

Auf der Website des Apache Nifi-Projekts finden Sie die folgende Definition:

Ein einfach zu bedienendes, leistungsstarkes und zuverlässiges System zur Verarbeitung und Verteilung von Daten.

Lassen Sie uns dort die Schlüsselwörter analysieren.

NiFi definieren

Daten verarbeiten und verteilen

Das ist der Kern von Nifi. Es verschiebt Daten in Systemen und bietet Ihnen Tools zur Verarbeitung dieser Daten.

Nifi kann mit einer Vielzahl von Datenquellen und Formaten umgehen. Sie nehmen Daten aus einer Quelle auf, transformieren sie und übertragen sie in eine andere Datensenke.

Einfach zu verwenden

Prozessoren - die Boxen - durch Konnektoren verbunden - die Pfeile erzeugen einen Fluss . N iFi bietet ein flussbasiertes Programmiererlebnis.

Nifi ermöglicht es, auf einen Blick eine Reihe von Datenflussoperationen zu verstehen, deren Implementierung Hunderte von Zeilen Quellcode erfordern würde.

Betrachten Sie die folgende Pipeline:

Um den obigen Datenfluss in NiFi zu übersetzen, rufen Sie die grafische Benutzeroberfläche von NiFi auf, ziehen drei Komponenten per Drag & Drop in die Zeichenfläche und

Das ist es. Der Bau dauert zwei Minuten.

Wenn Sie nun Code schreiben, um dasselbe zu tun, ist es wahrscheinlich mehrere hundert Zeilen lang, um ein ähnliches Ergebnis zu erzielen.

Sie erfassen die Essenz der Pipeline nicht wie bei einem flussbasierten Ansatz durch Code. Nifi ist aussagekräftiger, um eine Datenpipeline zu erstellen. Es ist dafür ausgelegt .

Kraftvoll

NiFi bietet viele Prozessorenout of the box (293 in Nifi 1.9.2). Du bist auf den Schultern eines Riesen. Diese Standardprozessoren behandeln die überwiegende Mehrheit der Anwendungsfälle, auf die Sie möglicherweise stoßen.

NiFi ist sehr gleichzeitig, aber seine Interna kapseln die damit verbundene Komplexität. Prozessoren bieten Ihnen eine Abstraktion auf hoher Ebene, die die inhärente Komplexität der parallelen Programmierung verbirgt. Prozessoren werden gleichzeitig ausgeführt, und Sie können mehrere Threads eines Prozessors überspannen, um die Last zu bewältigen.

Parallelität ist eine Computer-Pandora-Box, die Sie nicht öffnen möchten. NiFi schützt den Pipeline-Builder bequem vor der Komplexität der Parallelität.

Zuverlässig

Die Theorie, die NiFi unterstützt, ist nicht neu. es hat solide theoretische Anker. Es ähnelt Modellen wie SEDA.

Für ein Datenflusssystem ist Zuverlässigkeit eines der Hauptthemen. Sie möchten sicher sein, dass irgendwo gesendete Daten effektiv empfangen werden.

NiFi erreicht ein hohes Maß an Zuverlässigkeit durch mehrere Mechanismen, die den Zustand des Systems zu jedem Zeitpunkt verfolgen. Diese Mechanismen sind konfigurierbar, sodass Sie die für Ihre Anwendungen erforderlichen Kompromisse zwischen Latenz und Durchsatz eingehen können.

NiFi verfolgt den Verlauf jedes Datenelements mit seinen Herkunfts- und Herkunftsmerkmalen. Es macht es möglich zu wissen, welche Transformation bei jeder Information stattfindet.

Die von Apache Nifi vorgeschlagene Lösung für die Datenherkunft erweist sich als hervorragendes Werkzeug für die Prüfung einer Datenpipeline. Datenherkunftsmerkmale sind unerlässlich, um das Vertrauen in Big Data- und KI-Systeme in einem Kontext zu stärken, in dem transnationale Akteure wie die Europäische Union Leitlinien zur Unterstützung einer genauen Datenverarbeitung vorschlagen.

Warum Nifi benutzen?

Zunächst möchte ich klarstellen, dass ich nicht hier bin, um NiFi zu evangelisieren. Mein Ziel ist es, Ihnen genügend Elemente zur Verfügung zu stellen, damit Sie eine fundierte Entscheidung über den besten Weg zum Aufbau Ihrer Datenpipeline treffen können.

Es ist nützlich, bei der Dimensionierung Ihrer Lösung die vier Vs von Big Data zu berücksichtigen.

  • Lautstärke - In welchem ​​Maßstab arbeiten Sie? Sind Sie in der Größenordnung näher an einigen GigaBytes oder Hunderten von PetaBytes?
  • Vielfalt - Wie viele Datenquellen haben Sie? Sind Ihre Daten strukturiert? Wenn ja, variiert das Schema häufig?
  • Geschwindigkeit - Wie häufig werden die Ereignisse verarbeitet? Ist es Kreditkartenzahlung? Ist es ein täglicher Leistungsbericht, der von einem IoT-Gerät gesendet wird?
  • Wahrhaftigkeit - Können Sie den Daten vertrauen? Müssen Sie alternativ mehrere Reinigungsvorgänge durchführen, bevor Sie sie bearbeiten können?

NiFi nimmt Daten aus mehreren Datenquellen nahtlos auf und bietet Mechanismen zur Verarbeitung unterschiedlicher Schemata in den Daten. So scheint es , wenn es eine hohe Vielfalt in den Daten.

Nifi ist besonders wertvoll, wenn Daten von geringer Richtigkeit sind . Da es mehrere Prozessoren zum Bereinigen und Formatieren der Daten bietet.

Mit seinen Konfigurationsoptionen kann Nifi eine breite Palette von Volumen- / Geschwindigkeitssituationen abdecken.

Eine zunehmende Liste von Anwendungen für Datenrouting-Lösungen

Neue Vorschriften, der Aufstieg des Internet der Dinge und der von ihm erzeugte Datenfluss unterstreichen die Relevanz von Tools wie Apache NiFi.

  • Microservices liegen im Trend. Bei diesen lose gekoppelten Diensten sind die Daten der Vertrag zwischen den Diensten. Nifi ist eine robuste Methode zum Weiterleiten von Daten zwischen diesen Diensten.
  • Internet der Dingebringt eine Vielzahl von Daten in die Cloud. Das Aufnehmen und Validieren von Daten vom Rand bis zur Cloud stellt viele neue Herausforderungen dar, die NiFi effizient bewältigen kann (hauptsächlich durch MiniFi, NiFi-Projekt für Randgeräte).
  • Es werden neue Richtlinien und Vorschriften eingeführt, um die Big-Data-Wirtschaft neu auszurichten. In diesem Kontext der zunehmenden Überwachung ist es für Unternehmen von entscheidender Bedeutung, einen klaren Überblick über ihre Datenpipeline zu haben. Die NiFi-Datenherkunft kann beispielsweise hilfreich sein, um die Einhaltung von Vorschriften zu gewährleisten.

Überbrücken Sie die Lücke zwischen Big-Data-Experten und den anderen

Wie Sie an der Benutzeroberfläche sehen können, eignet sich ein in NiFi ausgedrückter Datenfluss hervorragend für die Kommunikation über Ihre Datenpipeline. Dies kann Mitgliedern Ihrer Organisation helfen, mehr über die Vorgänge in der Datenpipeline zu erfahren.

  • Ein Analyst bittet um Erkenntnisse darüber, warum diese Daten hier so ankommen. Setz dich zusammen und geh durch den Fluss. In fünf Minuten vermitteln Sie jemandem ein umfassendes Verständnis der Pipeline Extract Transform and Load -ETL- .
  • Sie möchten Feedback von Ihren Kollegen zu einem neuen Fehlerbehandlungsablauf, den Sie erstellt haben? NiFi macht es zu einer Entwurfsentscheidung, Fehlerpfade als ebenso wahrscheinlich wie gültige Ergebnisse zu betrachten. Erwarten Sie, dass die Flussüberprüfung kürzer ist als eine herkömmliche Codeüberprüfung.

Solltest du es benutzen? Ja Nein Vielleicht?

NiFi-Marken selbst als einfach zu bedienen. Dennoch ist es eine Unternehmensdatenflussplattform. Es bietet einen vollständigen Satz von Funktionen, für die Sie möglicherweise nur eine reduzierte Teilmenge benötigen. Das Hinzufügen eines neuen Werkzeugs zum Stapel ist nicht harmlos.

Wenn Sie bei Null anfangen und einige Daten aus vertrauenswürdigen Datenquellen verwalten, ist es möglicherweise besser, Ihre ETL- Pipeline " Extract Transform and Load - ETL" einzurichten . Möglicherweise benötigen Sie lediglich eine Änderungsdatenerfassung aus einer Datenbank und einige Datenvorbereitungsskripte.

Wenn Sie jedoch in einer Umgebung arbeiten, in der vorhandene Big-Data-Lösungen verwendet werden (sei es zum Speichern, Verarbeiten oder Versenden von Nachrichten), lässt sich NiFi gut in diese integrieren und ist mit größerer Wahrscheinlichkeit ein schneller Gewinn. Sie können die sofort einsatzbereiten Konnektoren für diese anderen Big Data-Lösungen nutzen.

Es ist einfach, sich von neuen Lösungen begeistern zu lassen. Listen Sie Ihre Anforderungen auf und wählen Sie die Lösung, die Ihren Anforderungen so einfach wie möglich entspricht .

Nachdem wir das sehr hohe Bild von Apache NiFi gesehen haben, werfen wir einen Blick auf seine Schlüsselkonzepte und sezieren seine Interna.

Apache Nifi unter dem Mikroskop

"NiFi ist Boxen und Pfeilprogrammierung" kann in Ordnung sein, um das Gesamtbild zu kommunizieren. Wenn Sie jedoch mit NiFi arbeiten müssen, möchten Sie möglicherweise etwas mehr über die Funktionsweise erfahren.

In diesem zweiten Teil erkläre ich die kritischen Konzepte von Apache NiFi anhand von Schemata. Dieses Black-Box-Modell wird für Sie danach keine Black-Box mehr sein.

Unboxing Apache NiFi

Wenn Sie NiFi starten, landen Sie auf der Weboberfläche. Die Web-Benutzeroberfläche ist die Blaupause, auf der Sie Ihre Datenpipeline entwerfen und steuern.

In Nifi stellen Sie Prozessoren zusammen, die durch Verbindungen miteinander verbunden sind . In dem zuvor eingeführten Beispieldatenfluss gibt es drei Prozessoren.

Die NiFi-Canvas-Benutzeroberfläche ist das Framework, in dem sich der Pipeline Builder weiterentwickelt.

Die Nifi-Terminologie verstehen

Um Ihren Datenfluss in Nifi auszudrücken, müssen Sie zuerst seine Sprache beherrschen. Keine Sorge, ein paar Begriffe reichen aus, um das Konzept dahinter zu verstehen.

Die Black Boxes werden als Prozessoren bezeichnet und tauschen Informationsblöcke mit dem Namen FlowFiles über Warteschlangen aus, die als Verbindungen bezeichnet werden . Schließlich ist der FlowFile-Controller für die Verwaltung der Ressourcen zwischen diesen Komponenten verantwortlich.

Schauen wir uns an, wie das unter der Haube funktioniert.

FlowFile

In NiFi das FlowFileist das Informationspaket, das sich durch die Prozessoren der Pipeline bewegt.

Ein FlowFile besteht aus zwei Teilen:

  • Attribute , die Schlüssel / Wert-Paare sind. Beispielsweise sind der Dateiname, der Dateipfad und eine eindeutige Kennung Standardattribute.
  • Inhalt , ein Verweis auf den Bytestrom, bildet den FlowFile-Inhalt.

Die FlowFile enthält nicht die Daten selbst. Dies würde den Durchsatz der Pipeline stark einschränken.

Stattdessen enthält eine FlowFile einen Zeiger, der auf Daten verweist, die an einer bestimmten Stelle im lokalen Speicher gespeichert sind. Dieser Ort wird als Content Repository bezeichnet .

Um auf den Inhalt zuzugreifen, beansprucht die FlowFile die Ressource aus dem Inhaltsrepository. Letztere verfolgen den genauen Plattenversatz von der Position des Inhalts und streamen ihn zurück in die FlowFile.

Nicht alle Prozessoren müssen auf den Inhalt der FlowFile zugreifen , um ihre Vorgänge auszuführen. Wenn Sie beispielsweise den Inhalt von zwei FlowFiles aggregieren möchten, müssen Sie den Inhalt nicht in den Speicher laden.

Wenn ein Prozessor den Inhalt einer FlowFile ändert, bleiben die vorherigen Daten erhalten. NiFi kopiert beim Schreiben und ändert den Inhalt, während er an einen neuen Speicherort kopiert wird. Die ursprünglichen Informationen bleiben im Content Repository erhalten.

Beispiel

Stellen Sie sich einen Prozessor vor, der den Inhalt einer FlowFile komprimiert. Der ursprüngliche Inhalt verbleibt im Inhaltsrepository, und für den komprimierten Inhalt wird ein neuer Eintrag erstellt.

Das Content Repository gibt schließlich den Verweis auf den komprimierten Inhalt zurück. Die FlowFile wird aktualisiert, um auf die komprimierten Daten zu verweisen.

Die folgende Zeichnung fasst das Beispiel mit einem Prozessor zusammen, der den Inhalt von FlowFiles komprimiert.

Verlässlichkeit

NiFi behauptet zuverlässig zu sein, wie ist es in der Praxis?Die Attribute aller derzeit verwendeten FlowFiles sowie der Verweis auf deren Inhalt werden im FlowFile-Repository gespeichert.

Bei jedem Schritt der Pipeline wird eine Änderung an einer Flowfile zuerst im FlowFile-Repository in einem Write-Ahead-Protokoll aufgezeichnet, bevor sie durchgeführt wird.

Für jede FlowFile, die derzeit im System vorhanden ist, speichert das FlowFile-Repository:

  • Die FlowFile-Attribute
  • Ein Zeiger auf den Inhalt der FlowFile im FlowFile-Repository
  • Der Status der FlowFile. Beispiel: Zu welcher Warteschlange gehört die Flowfile zu diesem Zeitpunkt?

Das FlowFile-Repository gibt uns den aktuellsten Status des Flusses an. Somit ist es ein leistungsstarkes Tool, um sich von einem Ausfall zu erholen.

NiFi bietet ein weiteres Tool zum Verfolgen des vollständigen Verlaufs aller FlowFiles im Flow: das Provenance Repository.

Provenienz-Repository

Jedes Mal, wenn eine FlowFile geändert wird, erstellt NiFi zu diesem Zeitpunkt eine Momentaufnahme der FlowFile und ihres Kontexts. Der Name für diesen Schnappschuss in NiFi ist ein Provenienzereignis . Das Provenienz-Repository zeichnet Provenienzereignisse auf.

Die Provenienz ermöglicht es uns, die Herkunft der Daten nachzuvollziehen und die vollständige Aufbewahrungskette für jede in NiFi verarbeitete Information aufzubauen.

Das Provenance Repository bietet nicht nur die vollständige Herkunft der Daten, sondern auch die Wiedergabe der Daten zu jedem Zeitpunkt.

Warten Sie, was ist der Unterschied zwischen dem FlowFile-Repository und dem Provenance-Repository?

Die Idee hinter dem FlowFile-Repository und dem Provenance-Repository ist ziemlich ähnlich, aber sie behandeln nicht dasselbe Problem.

  • Das FlowFile-Repository ist ein Protokoll, das nur den neuesten Status der im System verwendeten FlowFiles enthält. Es ist das aktuellste Bild des Flusses und ermöglicht eine schnelle Wiederherstellung nach einem Ausfall.
  • Das Provenienz-Repository ist dagegen umfassender, da es den gesamten Lebenszyklus jeder im Fluss befindlichen FlowFile verfolgt.

Wenn Sie nur das aktuellste Bild des Systems mit dem FlowFile-Repository haben, bietet Ihnen das Provenance Repository eine Sammlung von Fotos - ein Video . Sie können zu jedem Zeitpunkt in der Vergangenheit zurückspulen, die Daten untersuchen und Vorgänge ab einem bestimmten Zeitpunkt wiedergeben. Es bietet eine vollständige Abstammung der Daten.

FlowFile-Prozessor

Ein Prozessor ist eine Black Box, die eine Operation ausführt. Prozessoren haben Zugriff auf die Attribute und den Inhalt der FlowFile, um alle Arten von Aktionen auszuführen. Mit ihnen können Sie viele Vorgänge beim Dateneingang, bei Standardaufgaben zur Datentransformation / -validierung und zum Speichern dieser Daten in verschiedenen Datensenken ausführen.

NiFi wird bei der Installation mit vielen Prozessoren geliefert. Wenn Sie nicht den perfekten für Ihren Anwendungsfall finden, können Sie trotzdem Ihren eigenen Prozessor bauen. Das Schreiben von benutzerdefinierten Prozessoren fällt nicht in den Geltungsbereich dieses Blogposts.

Prozessoren sind Abstraktionen auf hoher Ebene, die eine Aufgabe erfüllen. Diese Abstraktion ist sehr praktisch, da sie den Pipeline-Builder vor den inhärenten Schwierigkeiten der gleichzeitigen Programmierung und der Implementierung von Fehlerbehandlungsmechanismen schützt.

Prozessoren stellen eine Schnittstelle mit mehreren Konfigurationseinstellungen zur Verfügung, um ihr Verhalten zu optimieren.

Die Eigenschaften dieser Prozessoren sind das letzte Bindeglied zwischen NiFi und der geschäftlichen Realität Ihrer Anwendungsanforderungen.

Der Teufel steckt im Detail, und Pipeline-Entwickler verbringen die meiste Zeit damit, diese Eigenschaften so zu optimieren, dass sie dem erwarteten Verhalten entsprechen.

Skalierung

Für jeden Prozessor können Sie die Anzahl der gleichzeitigen Aufgaben angeben, die gleichzeitig ausgeführt werden sollen. Auf diese Weise weist der Flow Controller diesem Prozessor mehr Ressourcen zu und erhöht so seinen Durchsatz. Prozessoren teilen Threads. Wenn ein Prozessor mehr Threads anfordert, stehen anderen Prozessoren weniger Threads zur Ausführung zur Verfügung. Details dazu, wie der Flow Controller Threads zuweist, finden Sie hier.

Horizontale Skalierung. Eine andere Möglichkeit zur Skalierung besteht darin, die Anzahl der Knoten in Ihrem NiFi-Cluster zu erhöhen. Clustering-Server ermöglichen es, Ihre Verarbeitungskapazität mithilfe von Standardhardware zu erhöhen.

Prozessgruppe

Dieser ist jetzt, da wir gesehen haben, was Prozessoren sind, unkompliziert.

Eine Reihe von Prozessoren, die mit ihren Verbindungen zusammengestellt wurden, können eine Prozessgruppe bilden. Sie fügen einen Eingabeport und einen Ausgabeport hinzu, damit Daten empfangen und gesendet werden können.

Prozessorgruppen sind eine einfache Möglichkeit, neue Prozessoren basierend auf vorhandenen zu erstellen.

Verbindungen

Verbindungen sind die Warteschlangen zwischen Prozessoren. Diese Warteschlangen ermöglichen es Prozessoren, mit unterschiedlichen Raten zu interagieren. Anschlüsse können unterschiedliche Kapazitäten haben, da es unterschiedliche Größen von Wasserleitungen gibt.

Da Prozessoren Daten abhängig von den von ihnen ausgeführten Vorgängen mit unterschiedlichen Raten verbrauchen und produzieren, fungieren Verbindungen als Puffer für FlowFiles.

Die Anzahl der Daten in der Verbindung ist begrenzt. Wenn Ihre Wasserleitung voll ist, können Sie kein Wasser mehr hinzufügen oder es läuft über.

In NiFi können Sie die Anzahl der FlowFiles und die Größe ihres aggregierten Inhalts, der über die Verbindungen übertragen wird, begrenzen.

Was passiert, wenn Sie mehr Daten senden, als die Verbindung verarbeiten kann?

Wenn die Anzahl der FlowFiles oder die Datenmenge den definierten Schwellenwert überschreitet, wird Gegendruck angewendet. Der Flow Controller plant nicht, dass der vorherige Prozessor erneut ausgeführt wird, bis in der Warteschlange Platz ist.

Angenommen, Sie haben ein Limit von 10 000 FlowFiles zwischen zwei Prozessoren. Irgendwann enthält die Verbindung 7 000 Elemente. Es ist in Ordnung, da das Limit 10 000 beträgt. P1 kann weiterhin Daten über die Verbindung an P2 senden .

Nehmen wir nun an, der Prozessor 1 sendet 4 000 neue FlowFiles an die Verbindung.

7 0000 + 4 000 = 11 000 → Wir überschreiten die Verbindungsschwelle von 10 000 FlowFiles.

Die Grenzwerte sind weiche Grenzwerte, dh sie können überschritten werden. Sobald dies jedoch der vorherige Prozessor ist, wird P1 erst geplant, wenn der Connector seinen Schwellenwert - 10 000 FlowFiles - wieder unterschreitet.

Dieses vereinfachte Beispiel gibt einen Überblick über die Funktionsweise des Gegendrucks.

Sie möchten Verbindungsschwellenwerte einrichten, die dem Volumen und der Geschwindigkeit der zu verarbeitenden Daten entsprechen. Halten Sie die vier Vs im Auge .

Die Idee, ein Limit zu überschreiten, mag seltsam klingen. Wenn die Anzahl der FlowFiles oder der zugehörigen Daten den Schwellenwert überschreitet, wird ein Swap-Mechanismus ausgelöst.

Für ein weiteres Beispiel zum Gegendruck kann dieser Mail-Thread helfen.

Priorisieren von FlowFiles

Die Anschlüsse in NiFi sind hochgradig konfigurierbar. Sie können festlegen, wie Sie FlowFiles in der Warteschlange priorisieren möchten, um zu entscheiden, welche Datei als Nächstes verarbeitet werden soll.

Unter den verfügbaren Möglichkeiten gibt es zum Beispiel die First In First Out-Reihenfolge - FIFO. Allerdings können Sie auch ein Attribut Ihrer Wahl aus dem Flowfile verwenden , um eingehende Pakete zu priorisieren.

Durchflussregler

Der Flow Controller ist der Klebstoff, der alles zusammenbringt. Es weist Threads für Prozessoren zu und verwaltet sie. Es ist das, was den Datenfluss ausführt.

Der Flow Controller ermöglicht auch das Hinzufügen von Controller Services.

Diese Dienste erleichtern die Verwaltung gemeinsam genutzter Ressourcen wie Datenbankverbindungen oder Anmeldeinformationen von Cloud-Dienstanbietern. Controller-Dienste sind Dämonen. Sie werden im Hintergrund ausgeführt und bieten Konfiguration, Ressourcen und Parameter, die von den Prozessoren ausgeführt werden können.

Beispielsweise können Sie einen AWS-Dienst für Anmeldeinformationsanbieter verwenden, um Ihren Diensten die Interaktion mit S3-Buckets zu ermöglichen, ohne sich um die Anmeldeinformationen auf Prozessorebene kümmern zu müssen.

Genau wie bei Prozessoren ist eine Vielzahl von Controller-Diensten sofort verfügbar.

In diesem Artikel finden Sie weitere Inhalte zu den Controller-Diensten.

Fazit und Aufruf zum Handeln

Im Verlauf dieses Artikels haben wir NiFi, eine Unternehmensdatenflusslösung, erörtert. Sie haben jetzt ein umfassendes Verständnis dafür, was NiFi tut und wie Sie seine Datenroutingfunktionen für Ihre Anwendungen nutzen können.

Wenn Sie dies lesen, herzlichen Glückwunsch! Sie wissen jetzt mehr über NiFi als 99,99% der Weltbevölkerung.

Übung macht den Meister. Sie beherrschen alle Konzepte, die für den Aufbau Ihrer eigenen Pipeline erforderlich sind. Mach es einfach; lass es zuerst funktionieren.

Hier ist eine Liste spannender Ressourcen, die ich zusätzlich zu meiner Arbeitserfahrung zusammengestellt habe, um diesen Artikel zu schreiben.

Ressourcen?

Das größere Bild

Da das Entwerfen von Datenpipelines in einem komplexen Ökosystem Kenntnisse in mehreren Bereichen erfordert, empfehle ich das Buch Entwerfen datenintensiver Anwendungenvon Martin Kleppmann. Es behandelt die Grundlagen.

  • Ein Spickzettel mit allen in Martins Buch zitierten Referenzen ist auf seinem Github-Repo verfügbar.

Dieser Spickzettel ist ein guter Ausgangspunkt, wenn Sie bereits wissen, welche Art von Thema Sie vertiefen möchten und hochwertige Materialien finden möchten.

Alternativen zu Apache Nifi

Es gibt andere Datenflusslösungen.

Open Source:

  • Streamsets ähnelt NiFi. Einen guten Vergleich finden Sie in diesem Blog

Die meisten bestehenden Cloud-Anbieter bieten Datenflusslösungen an. Diese Lösungen lassen sich problemlos in andere Produkte integrieren, die Sie von diesem Cloud-Anbieter verwenden. Gleichzeitig bindet es Sie fest an einen bestimmten Anbieter.

  • Azure Data Factory, eine Microsoft-Lösung
  • IBM hat seine InfoSphere DataStage
  • Amazon schlägt ein Tool namens Data Pipeline vor
  • Google bietet seinen Datenfluss an
  • In der Alibaba Cloud wird ein Dienst DataWorks mit ähnlichen Funktionen eingeführt

NiFi-bezogene Ressourcen

  • Die offizielle Nifi-Dokumentation und insbesondere der Nifi-Tiefenabschnitt sind Goldminen.
  • Die Registrierung in der Mailingliste der Nifi-Benutzer ist auch eine gute Möglichkeit, informiert zu werden. In diesem Gespräch wird beispielsweise der Gegendruck erläutert.
  • Hortonworks, eine große Datenlösungen, hat eine Community - Website voll eingreifenden Ressourcen und How-To für Apache Nifi.

    - Dieser Artikel befasst sich ausführlich mit Steckverbindern, Heap-Nutzung und Gegendruck.

    - In diesem Fall werden bewährte Methoden zur Dimensionierung bei der Bereitstellung eines NiFi-Clusters erläutert.

  • Der NiFi-Blog bietet viele Einblicke in die Nutzungsmuster von NiFi sowie Tipps zum Bau von Pipelines.
  • Claim Check-Muster erklärt
  • Die Theorie hinter Apache Nifi ist nicht neu, Seda, auf die in Nifi Doc verwiesen wird, ist äußerst relevant

    - Matt Welsh. Berkeley. SEDA: Eine Architektur für gut konditionierte, skalierbare Internetdienste [online]. Abgerufen: 21. April 2019 von //www.mdw.la/papers/seda-sosp01.pdf