Wer braucht schon SAP Vora?!

Wer braucht schon SAP Vora?!

Für was benötige ich überhaupt SAP Vora?

SAP Vora bietet die Möglichkeit, strukturierte und semi-strukturierte Daten innerhalb eines existierenden Hadoop-Clusters über eine moderne Oberfläche auszuwerten und diese untereinander sowie mit Daten aus SAP HANA zu kombinieren.

Es handelt sich hierbei technisch gesehen um eine Erweiterung des Apache Spark Execution Framework, das sich schon seit Längerem in der Hadoop-Welt etabliert hat.

SAP Vora realisiert somit eine verteilte In-Memory Abfrage-Engine für strukturierte und semi-strukturierte Daten in einem Hadoop-Cluster.

Wie kann ich SAP Vora nutzen?

Es gibt mehrere Optionen, wie ihr SAP Vora einsetzen könnt; natürlich empfiehlt SAP bevorzugt die Nutzung in der Cloud – entsprechend der eigenen Cloud-Strategie:

On-Premise:

Cloud-basiert:

  • Nutzung der für SAP Partner kostenfreien Developer Edition über Amazon Web Services (AWS) oder SAP Cloud Appliance Library (SAP CAL)
  • Nutzung der kostenpflichtigen Production Edition über AWS
  • Als Service über SAP Big Data Services
  • Über das Bring Your Own License (BYOL) -Modell (SAP Cloud Platform, AWS)

Die SAP Vora Developer Edition über AWS verfügt über die volle Funktionalität und mit ein paar wenigen Klicks wird die Umgebung entsprechend den vorher für die eigenen Bedürfnisse ermittelten Parametern konfiguriert.

Der zugrundeliegende vorhandene Hadoop-Cluster ist eine Hortonworks-Distribution (HDP) mit den entsprechenden Tools/Software wie Spark, Ambari, Zeppelin, usw. und verfügt über maximal 4 Knoten.

Die von SAP über die SAP Cloud Appliance Library (CAL) angebotene Variante kommt in Form einer vorkonfigurierten Appliance daher mit sehr ähnlicher Funktionalität wie die bei der AWS. Sie macht vor allem dann Sinn, wenn man bereits SAP CAL nutzt.

Die produktive Edition unterscheidet sich nur in der nach oben möglichen Skalierbarkeit des Clusters und natürlich durch die Kosten.

Wie funktioniert SAP Vora?

Nach der Entscheidung für ein Deployment-Modell (On-Premise oder Cloud) geht es – je nach Wahl – an die Installation und Konfiguration.

Die Installation erfolgt in drei Schritten:

  1. Festlegung der benötigten Anzahl Knoten für Vora im Hadoop-Cluster in Abhängigkeit von
    • Anforderungen an die Verfügbarkeit
    • Anforderungen an das Sizing (CPU, Disk vs. RAM, Control Nodes vs. Compute Nodes, unterschiedliches Sizing für jede spezifische Spark-Engine, usw.)
    • Erwartetes Datenwachstum
  2. Deployment des SAP Vora Manager Services auf den benötigten Cluster-Knoten
  3. Konfigurieren und Starten der SAP Vora Services auf den Cluster-Knoten mit Hilfe des SAP Vora Manager User Interfaces

Nach erfolgreicher Installation und Konfiguration in einem Hadoop-Cluster (Distributionen HDP, Cloudera und MapR werden unterstützt) könnt ihr SAP Vora nutzen. Neben dem bereits oben erwähnten SAP Vora Manager für eher administrative Aufgaben, stehen die sogenannten SAP Vora Tools als die zentrale GUI für den Endanwender zur Verfügung.

Folgende Tools werden in der GUI angeboten:

  • Data Browser: Inhalte von Tabellen und Views anschauen
  • SQL Editor: SQL-Statements erstellen und ausführen
  • Modeler: Tabellen und Views erstellen und ändern
  • User Management: Anwender-Konten und Zugriffe auf die SAP Vora Tools managen

Mit Hilfe der SAP Vora Tools kann der Endanwender die im Hadoop-Cluster befindlichen Daten, die sich in Struktur und Datentyp unterscheiden, auswerten. Nachfolgend sind die Auswertungsmöglichkeiten detaillierter beschrieben.

Was kann ich mit SAP Vora auswerten?

Mit Vora habt ihr die Möglichkeit JSON-Dokumente auszuwerten, Zeitreihen- und Graphen-Analysen durchzuführen sowie via SQL auch klassisch relational strukturierte Daten zu analysieren.

Dabei nutzt Vora für jede Art der unterschiedlichen Analysen eine spezifische Spark-Engine mit entsprechender Optimierung in der Verarbeitung.

Der „Doc Store“ – NoSQL-Analysen von semi-strukturierten JSON-Dokumenten

Mit der Version 1.3 hat SAP den sogenannten „Doc Store“ eingeführt, mit dem veränderte Dokumente als schemalose Tabellen gespeichert werden können und somit eine horizontale Skalierung (scale-out) und eine flexible Handhabung bei den Dokument-Feldern (Löschen, Hinzufügen) ermöglicht wird.

Nachdem ihr in Vora einen Document Store (=Collection) auf Basis von im Cluster existierenden JSON-Dokumenten erstellt habt, wird darauf basierend ein View erstellt, den man auch mit den bekannten JSON-Expressions erweitern kann. Dieser wird dann im Vora-eigenen Doc Store gespeichert und kann im Tabellen- als auch JSON-Format bearbeitet werden.

Zeitreihenanalyse – Ausnutzung effizienter Kompression und Daten-Verteilung

Die Spark-Engine, die für die Zeitreihenanalyse zur Verfügung steht, kann ihre Stärken vor allem dann ausspielen, wenn die zugrundeliegenden Daten über möglichst viele Cluster-Knoten verteilt sind und effizient komprimiert werden können.

Auf Basis von im Cluster vorliegenden Zeitreihen-Daten wird innerhalb Vora eine „Zeitreihen-Tabelle“ erstellt, für die es eine eindeutige Spalte mit Zeitperioden (=Range Type) geben muss. Neben weiteren Optionen können Eigenschaften zur Äquidistanz und zusätzliche Komprimierungs-Parameter eingeben werden.

Um Zeitreihendaten auswerten zu können, müsst ihr noch eine View erstellen, den man mit spezifischen Table Functions (z.B. Cross/Auto Correlation) erweitern kann.

Es lassen sich dann für Zeitreihen entsprechende Analysen wie Regression, Binning, Sampling, Similarity, usw. durchführen.

Real-time Graphen-Analyse – Auswertung sehr großer Graphen

Vora verfügt über eine eigene In-Memory Graphen-Datenbank, die insbesondere die Analyse großer Graphen in real-time unterstützt. Die Modellierung der Graphen im grafischen Metadaten-Viewer wird entsprechend durch einen Pfad-Expression-Editor unterstützt.

Die Abfragen auf die Graphen dürfen durchaus – aufgrund der In-Memory-Engine – sehr komplex werden und die Visualisierung der Graphen zeigt sich State-of-the-Art.

Die Engine für die Graphen-Analyse bietet sich insbesondere im Bereich des Supply Chain Managements an oder zur Darstellung von umfangreichen Organisations- oder Projekt-Hierarchien oder Geschäfts-Netzwerken.

Relational Engine – Verwendung von SQL zur Auswertung von Relationen

Nicht zuletzt bietet Vora auch die Möglichkeit mit Hilfe von SQL strukturierte Daten im Cluster in Form von relationalen spaltenbasierten Tabellen abzubilden und abzufragen. Dabei werden auch hier die Daten im Memory komprimiert.

Für relationale Daten, die nicht im Arbeitsspeicher liegen müssen, bietet Vora die Disk Engine an. Diese legt die Daten in einer Datei auf dem lokalen Knoten ab, auf dem die Engine läuft. Analog dem Dynamic Tiering bei HANA, können auch hier die spaltenbasierten relationalen Disk- mit den In-Memory-Tabellen problemlos gejoint werden.

Auch noch erwähnenswert

  • SAP HANA-Tabellen können in Vora – nach erfolgter Registrierung im Repository – zusammen mit den dort erstellen Views und Tabellen zusammen verwendet werden. Von Vora aus können Daten auch in SAP HANA geschrieben werden.
  • Erstellung von Level- und Parent-Child-Hierarchien und gemeinsame Verwendung mit Fakten-Tabellen wird unterstützt.
  • Währungsumrechnung (Standard oder ERP) kann in Tabellen und Views verwendet werden.
  • Für jede Engine respektive für die in Vora erstellten spezifischen Datenstrukturen gibt es spezielle Funktionen und Typen für die Partitionierung, mit denen diese im Cluster optimal verteilt bzw. partitioniert werden (Hash, Block, Range).

Welche Datenquellen und -formate werden aktuell unterstützt?

Mit SAP Vora Tools können folgende Dateien in Vora verarbeitet werden:

  • .CSV
  • .ORC
  • .PARQUET
  • .JSON
  • .JSG

Neben dem Standard-Datentyp HDFS sowie den Typen ORC und PARQUET (Option (format „orc“ / format „parquet“)) können folgende weitere im „Create Table“-Statement in Vora geladen werden:

  • Amazon S3 (Option (storagebackend „s3“))
  • Swift Object (Option (storagebackend „swift“))

Fazit und Ausblick

SAP Vora spielt seine Stärken natürlich insbesondere im Zusammenhang mit SAP HANA aus: so kann man relationale Daten aus HANA mit semi-strukturierten Daten aus dem Hadoop-Cluster zusammen auswerten. Des Weiteren findet ihr in Vora verschiedene Auswertungs-Möglichkeiten (Graphen, Dokumente, usw.) in einem Tool vereint, die man sonst in jeweils verschiedenen Tools (oder nur mit verschiedenen Datenbanken) der Hadoop-Distributoren oder Drittanbietern findet.

Zukünftig plant SAP für Vora für alle Engines das Transaktionskonzept (ACID) zu unterstützen, um eine konsistente Datenhaltung zu verbessern. Für dieses Jahr 2018 ist ein erster Support für Insert-/Update-/Delete-Statements geplant. Vorgesehen ist darüber hinaus auch die Unterstützung für SQL-Pass-thru von SAP HANA zu SAP Vora.

Für Freunde des SAP BW noch interessant: über 2018 hinaus ist die Unterstützung von DSOs geplant.

Wenn ihr SAP Partner seid, könnt ihr einfach mit der kostenfreien Developer Edition starten, um in die Materie einzusteigen – dort könnt ihr euch in Ruhe mit der Konfiguration und der Nutzung vertraut machen.

Oder fragt uns – wir helfen gerne!

Autor dieses Beitrags
Andreas Keller Associate Partner
Tel.: +49 (0) 7031 714 660 0
E-Mail: info@inspiricon.de