Pipeline design
Edge- und Mesh-Pipelines ermöglichen den Datenfluss zwischen der Edge- und der Mesh-Umgebung (Cloud). Die Edge-Pipelines sind für die Vorverarbeitung der Daten verantwortlich, bevor diese an die Mesh-Pipelines gesendet werden. Die Mesh-Pipelines sind für die Verarbeitung der Daten in der Cloud-Umgebung verantwortlich.
Jede Pipeline besteht aus einer Abfolge von Nodes. Jeder Node ist für eine bestimmte Aufgabe verantwortlich, etwa das Filtern, Transformieren oder Aggregieren von Daten. Die Nodes sind in einem gerichteten azyklischen Graphen (DAG) verbunden, in dem die Kanten den Datenfluss zwischen den Nodes darstellen.
Das folgende Diagramm veranschaulicht die Ausführungsrollen von Edge- und Mesh-Adaptern im ETL-Prozess:
Jeder Node in der Pipeline hat eine bestimmte Konfiguration, die sein Verhalten definiert. Die Konfiguration umfasst den Typ des Nodes, das Eingabe- und Ausgabeschema sowie alle weiteren Parameter, die der Node benötigt, um korrekt zu funktionieren.
Das folgende Beispiel zeigt die Konfiguration eines Project-Nodes, der bestimmte Felder aus dem Eingabedatenstrom auswählt und an den Ausgabestrom weitergibt:
- type: Project@1
fields:
- path: "$.Sinus"
inclusion: false
- path: "$.Constant_6"
inclusion: false
Jeder Node empfängt ein Eingabeobjekt, das verändert und an den nächsten Node in der Pipeline weitergegeben werden kann. Das Eingabeobjekt ist ein JSON-Objekt, das den Datenstrom an dieser Stelle in der Pipeline darstellt. Das Ausgabeobjekt ist das veränderte Eingabeobjekt, das an den nächsten Node in der Pipeline weitergegeben wird.
Pipeline-Definitionen
Wir nennen die Liste der auszuführenden Nodes Pipeline Definition, das typische Format ist YAML. Das folgende Beispiel zeigt eine einfache Pipeline-Definition mit zwei Nodes:
triggers:
- type: FromHttpRequest@1
path: /demo
method: POST
transformations:
- type: PrintDebug@1
Diese Pipeline-Definition besteht aus zwei Teilen: dem Abschnitt triggers und dem Abschnitt transformations. Der Abschnitt triggers definiert das Ereignis, das die Pipeline-Ausführung auslöst, während der Abschnitt transformations die Abfolge der Nodes definiert, die ausgeführt werden, wenn die Pipeline ausgelöst wird.
Node-Typen
Wir unterscheiden verschiedene Node-Typen anhand ihrer Funktionalität. Einige Nodes sind adapterspezifisch, während andere Allzweck-Nodes sind, die in jeder Pipeline verwendet werden können.
Die folgende Liste gibt einen Überblick über die verschiedenen Node-Typen:
Trigger-Nodes
Trigger-Nodes werden verwendet, um die Ausführung einer Pipeline auf Basis eines Ereignisses zu starten. Das Ereignis kann eine Nachricht von einem Message Broker, ein Polling-Ereignis oder ein Webhook sein.
Im Unterabschnitt „Nodes" der Dokumentation finden Sie detaillierte Informationen zu den verschiedenen Trigger-Nodes.
Control-Nodes
Control-Nodes werden verwendet, um den Ablauf der Pipeline zu steuern. Sie können verwendet werden, um über ein Array zu iterieren, eine Sub-Pipeline für jedes Element auszuführen oder eine Sub-Pipeline auf Basis einer Bedingung auszuführen.
Im Unterabschnitt „Nodes" der Dokumentation finden Sie detaillierte Informationen zu den verschiedenen Control-Nodes.
Transformation-Nodes
Transformation-Nodes werden verwendet, um die Daten in der Pipeline zu transformieren. Sie können verwendet werden, um die Daten zu filtern, zu aggregieren oder anzureichern.
Im Unterabschnitt „Nodes" der Dokumentation finden Sie detaillierte Informationen zu den verschiedenen Transformation-Nodes.
Extract-Nodes
Extract-Nodes werden verwendet, um Daten aus einer Quelle zu extrahieren. Sie können verwendet werden, um Daten aus einer Datenbank, einer Datei oder einem Message Broker zu extrahieren. Meistens werden Trigger-Nodes verwendet, um Daten aus einer Quelle zu extrahieren.
Im Unterabschnitt „Nodes" der Dokumentation finden Sie detaillierte Informationen zu den verschiedenen Extract-Nodes.
Load-Nodes
Load-Nodes werden verwendet, um Daten in ein Ziel zu laden. Sie können verwendet werden, um Daten in eine Datenbank, eine Datei oder einen Message Broker zu laden.
Im Unterabschnitt „Nodes" der Dokumentation finden Sie detaillierte Informationen zu den verschiedenen Load-Nodes.