Dominik Precht
 - 19. Dezember 2017

Einblick in die SAP HANA Datenbank

HANA und HANA Datenbank

Wer SAP HANA (High Performance Analytic Appliance) googled kommt mit einer ganzen Reihe von Begriffen in Ber├╝hrung.Da ist zum einen die Rede von der SAP HANA Entwicklungsplattform, ausgestattet mit der In-Memory Technologie, am Hasso-Plattner-Institut zusammen mit der Standford-University entwickelt, um den Anforderungen der Business Intelligence und Business Analytics gerecht zu werden.

 

Ferner clustern sich andere Begriffe rund um das Thema SAP HANA Business Suite 4 SAP HANA, kurz SAP S/4HANA. Andere Begriffe wiederum formieren sich rund um das Thema HANA Cloud Platform (SAP Cloud Platform seit dem 27. Februar 2017).

Suchen wir nach Gemeinsamkeiten, so stellen wir fest, dass alle oben genannten Technologien, als zugrunde liegendes Datenbank-Management-System (DBMS) die SAP HANA Datenbank verwenden.

Um HANA im Kern besser zu verstehen,┬áwerde ich mich hier auf┬ádie Perspektive eines Anwendungsentwicklers aus der klassischen SAP Umgebung fokussieren,┬áder nun erstmalig Anforderungen in einer SAP HANA Umgebung umsetzt.┬áEbenfalls passend w├Ąre die Sicht als┬áIT-Verantwortlicher, der nun vor der Herausforderung steht, sein Team auf die┬áZukunft┬ámit HANA vorzubereiten.

Leitfragen

Lassen Sie uns in dieser kleinen Serie von Beitr├Ągen tiefer in das System HANA DB eintauchen und ein St├╝ck weit kl├Ąren, welchen neuen Herausforderungen wir uns stellen werden, und welche F├Ąhigkeiten und neuen Denkweisen wir hierbei erlernen m├╝ssen.

Nun haben wir die HANA DB bereits als System bezeichnet. Erlauben Sie mir im Sinne dieser Denkweise konsequent fortzufahren.

Hierdurch ergeben sich einige Leitfragen, die wir im Laufe der Serie n├Ąher im Detail beleuchten wollen:

  1. Was ist neu in der „HANA-Welt“? Wie verl├Ąuft die Kommunikation ├╝ber die Grenzen hinweg?
  2. Welchen Zweck erf├╝llt die HANA DB?
  3. Durch welche Faktoren wird die Entwicklung der Technologie getrieben?
  4. Wie unterscheidet sich die HANA DB von den urspr├╝nglichen relationalen Datenbanken?
  5. Aus welchen Komponenten besteht die HANA DB und wie interagieren diese?
  6. Welche datenbankspezifischen Objekte gibt es?
  7. Welche Prozesse laufen in und ├╝ber die HANA DB?
  8. Was sind Perspektiven und welche sind f├╝r Entwickler auf der HANA DB wesentlich?
Infografik: SAP HANA

Infografik zum ├ťberblick im Begriffswirrwarr rund um SAP HANA.

HANA im Kraftfeld zwischen Innovation und gestiegenen Anforderungen

Ein wesentliche Treiber der Entwicklung┬áist┬ádie Analyse gro├čer Datenmengen. War zuvor eine strikte Trennung von transaktionaler und analytischer Funktionalit├Ąt erforderlich, wird diese L├╝cke nun ein St├╝ck weit wieder geschlossen. W├Ąhrend sich transaktionale Berechnungen durch das Lesen, Ver├Ąndern und Schreiben einzelner weniger Datens├Ątze auszeichnen, greifen analytische Prozesse gro├čr├Ąumig auf Daten┬ávon weniger Attributen zu, um sie f├╝r ein anschlie├čendes Berichtswesen in konsolidierter Form aufzubereiten.

Tabellen m├╝ssen im Speicher linearisiert werden.

Tabellen m├╝ssen im Speicher linearisiert werden.

Hier spricht man┬ávon einem transponierten Zugriff auf Datenbanktabellen. W├Ąhrend der transaktionale Zugriff horizontal geschieht, wird bei analytischem Zugriff vertikal auf die Daten der Tabelle zugegriffen. Nicht zuletzt die Ber├╝cksichtigung dieser ge├Ąnderten Zugriffsart zeichnet HANA f├╝r analytische Szenarien aus.

┬áAbgrenzung HANA DB und Any-DB – In-Memory

Was zeichnet die HANA DB von einer bis hierin ├╝blichen relationalen Datenbank, einer Any-DB, aus? Durch kosteng├╝nstigere Hauptspeicher, die immer mehr Kapazit├Ąt tragen, liegt die Idee nahe, immer mehr Daten im Hauptspeicher f├╝r einen schnelleren Zugriff zu puffern. Gehen wir nun soweit, dass im Wesentlichen alle Daten so abgelegt werden, erhalten wir einen wesentlichen Aspekt der In-Memory Technologie. Hieraus ergeben sich einige Konsequenzen und Probleme.

Die Gr├Â├če aller Gesch├Ąftsdaten einer Applikation kann im mehrstelligen Terabyte Bereich liegen. Es werden dadurch geeignete Komprimierungsverfahren ben├Âtigt. F├╝r einen schnellen Zugriff ├╝ber eine Anwendung, sollten die hierf├╝r ben├Âtigten Informationen nahe im Speicher beieinander liegen, um die Zahl der Seitenfehler im Cache zu reduzieren.

Moderne Speicherhierachien

Moderne Speicherhierachien

Wir sprechen in diesem Zusammenhang auch von Datenlokalit├Ąt. Aus zuvor genannten Gr├╝nden der ge├Ąnderten Zugriffsweise durch analytische Prozesse, liegt nun die ├ťberlegung nahe, dass Seitenlayout von Datenbanktabellen in HANA zu transponieren. Anstatt, wie im zeilenbasiertem Layout, einzelne Zeilen der Tabelle sukzessiv hintereinander zu schreiben, und damit die Spalten der Tabelle zu zerschneiden, bleiben im spaltenbasierten Layout die einzelnen Spalten zusammen und werden hintereinander weggeschrieben. Hiermit erh├Ąlt man wiederum neue Angriffspunkte f├╝r die dringend ben├Âtigte Komprimierung.

Spaltendekomposition

Jede Spalte wird nun durch einen Attribut- und Dictionary-Vektor in der Datenbank repr├Ąsentiert. Das Dictionary umfasst in sortierter Weise die verschiedenen Werte der Spalte. Im Attributvektor werden nun die Positionen der Werte im Dictionary-Vektor weggeschrieben.

Dekomposition in Dictionary und Attributvektor

Dekomposition in Dictionary und Attributvektor

Sowohl auf das Dictionary, als auch auf den Attributvektor k├Ânnen nun geeignete Komprimierungen durchgef├╝hrt werden. So l├Ąsst sich schnell vorstellen, dass in typischen Gesch├Ąftstabellen, viele Spalten nur wenig verschiedene Werte besitzen. Ein gutes Beispiel daf├╝r sind W├Ąhrungseinheiten.

Aufeinanderfolgende Werte im Attributvektor k├Ânnen somit durch den Wert und die Anzahl codiert werden. Der erzielte Komprimierungsfaktor, i.e. das Verh├Ąltnis aus komprimierter und unkomprimierter Speichergr├Â├če, schwankt in typischen Anwendungen je nach Spalte zwischen 20% und 140%, wobei das Gesamtergebnis ├╝blicherweise deutlich vorteilhafter ist.

Weitere wesentliche Vorteile eines spaltenbasierten Layouts f├╝r analytische Berechnungen, liegen in einer deutlich verbesserten M├Âglichkeit der Parallelisierung. Zum Beispiel, dass┬ámehrere Spalten unabh├Ąngig voneinander aggregiert werden k├Ânnen.

Appliance

Diese M├Âglichkeiten nutzt HANA durch eine Appliance, also einer starken Kopplung zwischen Hard- und Software. Auf Ebene der Prozessorkerne einer HANA kompatiblen Maschine, finden wir eine SMID-Architektur, deren Operationen auf die speziellen Bed├╝rfnisse analytischer Gesch├Ąftsprozesse hin optimiert sind. Weiter finden sich eine hierarchische Anordnung mit Kernen, Prozessoren, Blades und Racks.

Mehrkernhierarchien

Mehrkernhierarchien

Zusammenfassung

Zusammengefasst k├Ânnen wir nun folgendes festhalten:

  1. HANA verwendet eine relationale Datenbank mit der In-Memory Technologie.
  2. Hierbei werden die Gesch├Ąftsdaten ├╝blicherweise spaltenbasiert im Hauptspeicher gehalten.
  3. Das spaltenbasierte Layout beg├╝nstigt zum einen durch geeignete Datenlokalit├Ąt die Berechnung durch analytische Prozesse.
  4. Andererseits wird auch die Parallelisierung beg├╝nstigt.
  5. HANA optimiert diese Prozesse durch eine geeigneten SMID-Prozessorarchitektur und eine auf Parallelisierung ausgerichtete Hierarchie von berechnenden Einheiten und Speicher.

Wie geht es weiter?

In der n├Ąchsten Folge kl├Ąren wir das fundamentale Prinzip des Code-to-Data Prinzips. Wir erl├Ąutern, wie dieses Prinzip einen neuen Engpass in der Datenverarbeitung zu beantworten versucht. Wir zeigen, wieso Core Data Services (CDS) und in in SQLScript geschriebene ABAP Managed Database Procedures, sogenannte AMDPs, bald zu einen Muss im Werkzeugkasten eines jeden ABAP Softwareentwicklers werden.

Wie bereiten Sie sich und Ihre Mannschaft auf die Zukunft vor?

Dominik Precht

Mein Name ist Dominik Precht und ich bin begeisterter SAP Consultant bei mindsquare. Wie meine Kollegen habe ich mein Hobby zum Beruf gemacht.

Sie haben Fragen? Kontaktieren Sie mich!



Das k├Ânnte Sie auch interessieren


Schreiben Sie einen Kommentar

Bitte f├╝llen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht ver├Âffentlicht.





Angebot anfordern
Preisliste herunterladen
Expert Session
Support