SnapLogic Big Data-Verarbeitungsplattformen

ArchitekturEines unserer Ziele bei SnapLogic ist es, die Anforderungen an die Datenflussausführung mit einer geeigneten Ausführungsplattform abzustimmen. Verschiedene Datenplattformen haben unterschiedliche Vorteile. Ziel dieses Beitrags ist es, das Wesen von Datenfluss-Pipelines zu erläutern und zu zeigen, wie man die passende Datenintegrationsarchitektur auswählt. Neben der Kategorisierung von Pipelines werde ich unsere derzeit unterstützten Ausführungsziele und unsere geplante Unterstützung für Apache Spark erläutern.

Zunächst einige Vorbemerkungen. Alle von SnapLogic-Pipelines verarbeiteten Daten werden nativ in einem internen JSON-Format verarbeitet. Wir nennen dies dokumentenorientierte Verarbeitung. Selbst flache, datensatzorientierte Daten werden für die interne Verarbeitung in JSON konvertiert. So können wir sowohl flache als auch hierarchische Daten nahtlos verarbeiten. Pipelines sind aus Snaps aufgebaut. Jeder Snap kapselt eine bestimmte Anwendungs- oder Technologiefunktionalität. Die Snaps werden miteinander verbunden, um einen Datenflussprozess auszuführen. Pipelines werden mit unserem visuellen Designer erstellt. Einige Snaps bieten Konnektivität, z. B. die Verbindung zu Datenbanken oder Cloud-Anwendungen. Einige Snaps ermöglichen die Datenumwandlung, z. B. das Herausfiltern von Dokumenten, das Hinzufügen oder Entfernen von Feldern oder das Ändern von Feldern. Es gibt auch Snaps, die komplexere Operationen wie Sortieren, Verknüpfen und Aggregieren durchführen.

Angesichts dieses Aufbaus können wir Pipelines in zwei Typen einteilen: Streaming und Akkumulation. In einer Streaming-Pipeline können die Dokumente unabhängig voneinander fließen. Die Verarbeitung eines Dokuments ist nicht von der Verarbeitung eines anderen Dokuments abhängig, während es die Pipeline durchläuft. Solche Streaming-Pipelines haben einen geringen Speicherbedarf, da die Dokumente die Pipeline verlassen können, sobald sie den letzten Snap erreicht haben. Im Gegensatz dazu müssen bei einer akkumulierenden Pipeline alle Dokumente aus der Eingabequelle gesammelt werden, bevor Ergebnisdokumente aus einer Pipeline ausgegeben werden können. Pipelines mit Sortierung, Verknüpfung und Aggregation sind akkumulierende Pipelines. In einigen Fällen kann eine Pipeline teilweise akkumulierend sein. Solche akkumulierenden Pipelines können je nach der Anzahl der aus einer Eingabequelle eingehenden Dokumente einen hohen Speicherbedarf haben.

Wenden wir uns nun den Ausführungsplattformen zu. SnapLogic verfügt über eine interne Datenverarbeitungsplattform namens Snaplex. Stellen Sie sich einen Snaplex als eine Sammlung von Verarbeitungsknoten oder Containern vor, die SnapLogic-Pipelines ausführen können. Es gibt verschiedene Arten von Snaplexen:

  •  Ein Cloudplex ist ein Snaplex, den wir in der Cloud hosten und der bei steigender Pipeline-Last automatisch skalieren kann.
  • Ein Groundplex ist ein fester Satz von Knoten, die vor Ort oder in einer Kunden-VPC installiert werden. Mit einem Groundplex können Kunden ihre gesamte Datenverarbeitung hinter ihrer Firewall durchführen, sodass die Daten ihre Infrastruktur nicht verlassen.

Wir erweitern auch unsere Unterstützung für externe Datenplattformen. Wir haben kürzlich unsere Hadooplex-Technologie veröffentlicht, die es SnapLogic-Kunden ermöglicht, Hadoop als Ausführungsziel für SnapLogic-Pipelines zu nutzen. Ein Hadooplex nutzt YARN zur Planung von Snaplex-Containern auf Hadoop-Knoten, um Pipelines auszuführen. Auf diese Weise können wir innerhalb eines Hadoop-Clusters autoskalieren. Vor kurzem haben wir SnapReduce 2.0 eingeführt, das es einem Hadooplex ermöglicht, SnapLogic-Pipelines in MapReduce-Aufträge zu übersetzen. Ein Benutzer erstellt eine bestimmte SnapReduce-Pipeline und gibt HDFS-Dateien sowie Input und Output an. Diese Pipelines werden zu MapReduce-Jobs kompiliert, die auf sehr großen Datensätzen im HDFS ausgeführt werden (siehe die Demonstration in unserem jüngsten Webinar zu Cloud- und Big Data-Analysen).

Wie wir letzte Woche im Rahmen der Ankündigung von Cloudera zum Echtzeit-Streaming angekündigt haben, haben wir mit der Unterstützung von Spark als Big-Data-Plattform begonnen. Ein Sparkplex wird in der Lage sein, die umfangreiche Konnektivität von SnapLogic zu nutzen, um Daten in und aus Spark RDDs (Resilient Distributed Datasets) zu bringen. Darüber hinaus werden wir, ähnlich wie bei SnapReduce, Benutzern die Möglichkeit geben, SnapLogic-Pipelines in Spark-Codes zu kompilieren, so dass die Pipelines als Spark-Jobs ausgeführt werden können. Wir werden sowohl Streaming- als auch Batch-Spark-Jobs unterstützen. Durch die Aufnahme von Spark in unsere Datenplattformunterstützung bieten wir unseren Kunden eine umfassende Reihe von Optionen für die Pipeline-Ausführung.

Die Wahl der richtigen Big-Data-Plattform hängt von vielen Faktoren ab: Datengröße, Latenzanforderungen, Konnektivität und Pipeline-Typ (Streaming oder Akkumulation). Im Folgenden finden Sie einige Leitlinien für die Auswahl einer bestimmten Big-Data-Integrationsplattform:

Cloudplex

  • Cloud-to-Cloud-Datenfluss
  • Streaming unbegrenzter Dokumente
  • Akkumulierende Pipelines, bei denen die akkumulierten Daten in den Knotenspeicher passen

Groundplex

  • Boden-zu-Boden-, Boden-zu-Cloud- und Cloud-zu-Boden-Datenfluss
  • Streaming unbegrenzter Dokumente
  • Akkumulierende Pipelines, bei denen die akkumulierten Daten in den Knotenspeicher passen

Hadooplex

  • Boden-zu-Boden-, Boden-zu-Cloud- und Cloud-zu-Boden-Datenfluss
  • Streaming unbegrenzter Dokumente
  • Akkumulierende Pipelines können über MapReduce mit beliebigen Datengrößen arbeiten

Sparkplex

  • Boden-zu-Boden-, Boden-zu-Cloud- und Cloud-zu-Boden-Datenfluss
  • Ermöglicht Spark-Konnektivität zu allen SnapLogic-Konten
  • Streaming unbegrenzter Dokumente
  • Akkumulierende Pipelines können mit Datengrößen arbeiten, die in den Speicher des Spark-Clusters passen

Einsteigen in Big DataBeachten Sie, dass die jüngste Arbeit in der Spark-Community die Unterstützung für Berechnungen außerhalb des Kerns, wie z. B. das Sortieren, verbessert hat. Dies bedeutet, dass akkumulierende Pipelines, die derzeit nur für die MapReduce-Ausführung geeignet sind, in Spark unterstützt werden können, wenn die Out-of-Core-Unterstützung von Spark allgemeiner wird. Hadooplex und Sparkplex haben zuverlässige Ausführungsvorteile hinzugefügt, so dass die Fertigstellung langlaufender Pipelines garantiert ist.

Unser Ziel bei SnapLogic ist es, Kunden die Möglichkeit zu geben, beliebige Datenfluss-Pipelines auf der am besten geeigneten Datenplattform zu erstellen und auszuführen. Darüber hinaus bieten wir eine einfache und konsistente grafische Benutzeroberfläche für die Entwicklung von Pipelines, die dann auf jeder unterstützten Plattform ausgeführt werden können. Unser plattformunabhängiger Ansatz entkoppelt die Spezifikation der Datenverarbeitung von der Ausführung der Datenverarbeitung. Wenn Ihr Datenvolumen wächst oder sich die Latenzanforderungen ändern, kann dieselbe Pipeline auf größeren Daten und mit einer schnelleren Rate ausgeführt werden, indem einfach die Zieldatenplattform geändert wird. Letztendlich können Sie sich mit SnapLogic an Ihre Datenanforderungen anpassen und sind nicht auf eine bestimmte Big Data-Plattform festgelegt.

Wir stellen ein!

Entdecken Sie Ihre nächste große Karrierechance.