single.php
< Beitrag von Johann Bauer

Daten-Provisionierung mit SAP HANA

Wie können Daten in ein SAP HANA-System geladen werden, nachdem es initial aufgesetzt worden ist? Hierbei ist zu beachten, dass wir die Daten nicht zwingend physisch in die HANA-Datenbank laden müssen, um sie In-Memory nutzen zu können. So kann man z. B. mit Hilfe von Smart Access Daten HANA zur Verfügung stellen, die sich physisch auf anderen Quell-Datenbanken befinden. Dazu später mehr, kommen wir erstmal zu den klassischen Varianten des Datenimports.

Datenimport

SAP stellt uns eine Handvoll Schnittstellen zur Verfügung, um Daten aus verschiedensten Quellen in HANA zu laden. Hier eine Übersicht:

Architektur SAP HANA Provisionierung

Abb.1: Kontextdiagramm SAP HANA Daten-Provisionierungs-Möglichkeiten

 

Um entscheiden zu können, welches Tool wann am besten zum Einsatz kommt, ist es sinnvoll, die Tools zuerst einmal nach unterschiedlichen Kriterien einzuordnen, um einen ersten groben Überblick zu bekommen. Sinnvollerweise kann man die Tools nach ihrem Einsatzszenario und -Fokus, der Anzahl der Quellen und den Transformationsmöglichkeiten unterscheiden. Die Möglichkeiten des Smart Data Access werden in folgender Tabelle nicht aufgeführt, da hier die Daten nicht physisch in das SAP HANA-System geladen werden.

use cases HANA

Abb.2: Einteilung Daten-Provisionierungs-Tools nach Kriterien

Verschiedene Daten-Provisionierungs-Tools

Je nach Einsatzszenario und vorhandener Infrastruktur muss individuell entschieden werden, welche Methode am geeignetsten ist. Natürlich können auch Kombinationen mehrerer Tools genutzt werden:

Flat File Import
Manuelles Laden von CSV-, XLS- und XLSX-Dateien. Hierbei sind keine Transformationen der Daten möglich, da die Daten 1:1 übertragen werden. Zu beachten ist, dass per CSV nur Daten eingefügt werden können, aber kein Löschen oder Ändern möglich ist. Funktionen zum Import von Flat Files sind vollständig in SAP HANA Studio integriert und benötigen keine weiteren Installationen oder Lizensierungen.

SAP BusinessObjects Data Services (SAP BO DS)
ETL-basierter Importvorgang mit entsprechender Möglichkeit komplex auszugestaltender Datentransformationen. Ein Daten-Import aus heterogenen Datenbankquellen ist möglich. Mit Hilfe integrierter Funktionen, wie z. B. Data Quality und Data Profiling kann die Qualität der Daten vorab analysiert, Probleme identifiziert und bewertet werden. Wer noch keinen aktiven SAP BO DS in seiner Landschaft hat, muss diesen extra installieren und lizensieren.

SAP Landscape Transformation Replication Server (SLT)
Import sowie Trigger-basierte Echtzeit-Daten-Replikation von SAP bzw. nicht-SAP-Quellsystemen in SAP HANA. SLT bietet die Möglichkeit der einfachen Transformation und Filterung der Daten. SLT-Replikationsfunktionen sind bereits in SAP HANA integriert, nichtsdestotrotz muss ein SLT-Server extra installiert und lizensiert werden.

SAP Replication Server
Log-basierte Echtzeit-Daten-Replikation. Durch den Log-basierten Ansatz wird der Arbeitsaufwand, den der Replikationsprozess mit sich bringt, verringert und dadurch die Verfügbarkeit des Quellsystems nicht beeinträchtigt. Der Server muss, ebenso wie der SLT-Server, extra installiert und lizensiert werden.

Direct Extractor Connection (DXC)
Wiederverwendung
bereits erstellten Contents aus SAP BW. Dies hat den Vorteil, dass wir bereits semantisch angereicherte Daten aus dem SAP NW Business Warehouse (BW) extrahieren können. Ein weiterer Vorteil des DXC ist, dass wir keinen dedizierten Anwendungsserver bereitstellen müssen, sondern einfach das embedded BW einer SAP Business Suite verwenden.

Der aktuell performanteste Weg, Daten in HANA zu laden, ist der CSV-Import. SAP HANA Studio, das Nutzer-Frontend für HANA, gibt uns die Möglichkeit, CSV-Daten per File Import Wizard oder mit Hilfe einer CTL-Datei zu importieren. CTL-Dateien, sog. Control Files, enthalten weitere Informationen zur Verarbeitung der CSV-Daten.

Möchte man mit höchstmöglicher Geschwindigkeit die CSV-Daten laden, empfiehlt es sich, den Import via CTL-Datei durchzuführen. Nur hierbei hat man die Möglichkeit, Verarbeitungsparameter explizit zu setzen und somit durch geeignete Parametrisierung das Optimum herauszuholen. Mit Hilfe dieser Parameter ist es theoretisch möglich, die Geschwindigkeit des Imports von CSV-Daten um den Faktor 95 zu beschleunigen, gegenüber dem Importieren mit dem File Import Wizard. Dieser Faktor hängt natürlich stark von der eingesetzten Hardware ab. Folgende zwei Parameter spielen beim Import von CSV-Daten eine entscheidende Rolle:

  • Threads: Anzahl der verwendeten CPUs
  • Batch: Anzahl der Zeilen, die pro Commit eingefügt werden

Durch einige in unserem SAP HANA-Testlabor durchgeführte Tests mit unterschiedlichen Datenmengen und Parameter-Einstellungen konnten wir grob folgenden Zusammenhang experimentell feststellen:

bestcase

Abb.3: Richtwerte für CTL-Parameter „Threads“ und „Batch“ im Zusammenspiel

Dabei zeigte sich, dass mit zunehmender Thread-Anzahl, die über dem definierten Maximum von Faktor 2,2 liegt, der Importvorgang an Performance verliert. Je höher die Thread-Anzahl über dem Maximum liegt, desto länger dauerte der Import bei sonst gleichbleibenden Bedingungen. Der gleiche Trend zeigt sich auch beim Parameter für die Batch-Größe. Bei der Parametrisierung gilt also nicht „Je mehr, desto besser“, sondern eine speziell an die vorhandene Hardware-Infrastruktur angepasste Parametrisierung des Imports ist erforderlich.

Für eine vollständige Beschreibung der Parametrisierung des Importvorgangs empfehle ich die von SAP-bereitgestellte Definition. Für einen detaillierteren Einblick in das Thema CSV-Import und des performanten Ladens von Daten empfehle ich den Blog von John Appleby.

Wie oben bereits erwähnt, gibt es neben dem physischen Import von Daten auch die Möglichkeit, dem SAP HANA-System entfernte Daten zur Auswertung zur Verfügung zu stellen.

Smart Data Access

sda

Abb.4: Smart Data Access

SAP HANA Smart Data Access ermöglicht uns, auf entfernte Daten zuzugreifen, ohne diese zuvor in die SAP HANA-Datenbank zu replizieren. Dadurch haben wir die Möglichkeit, den benötigten Plattenplatz auf SAP HANA zu reduzieren, indem Daten, die nicht häufig verwendet werden, ausgelagert bleiben.

SAP HANA behandelt die Daten so, als entsprächen sie lokalen Tabellen in der Datenbank. SAP HANA erzeugt dazu virtuelle Tabellen und Pointer, die auf den entfernten Datensatz zeigen. Eine automatische Datentypkonvertierung ermöglicht das Mappen von Datentypen der über SAP HANA Smart Data Access angeschlossenen Datenbanken auf SAP HANA-Datentypen. Dadurch ist es möglich, unsere bereits bestehende Data-Warehouse-Landschaft zu konsolidieren.

Folgen
X

Folgen

E-mail : *
Kategorie: SAP HANA | Schlagwörter: , , , | Kommentare: 0

Beitrag kommentieren

CAPTCHA * Time limit is exhausted. Please reload CAPTCHA.