ABAP-Programmierung unter SAP HANA
- Seiten: 220
- Sprache: Deutsch
Für Anwendungen im Umfeld von SAP HANA gibt es spezielle Acceleratoren (Beschleuniger), deren Vorteile auf der Hand liegen…
Jetzt kaufenABAP, Eclipse, HANA
Für Anwendungen im Umfeld von SAP HANA gibt es spezielle Acceleratoren (Beschleuniger), deren Vorteile auf der Hand liegen: Keine zusätzlichen Datenbankaggregate, extrem gute und v. a. konstante Zugriffszeiten, da das Risiko eines Zugriffs auf nicht definierte Aggregate nicht mehr besteht.
Für den ABAP-Entwickler wurde 2012 das HANA-optimierte SAP-Release 7.4 herausgebracht, welches umfassende Änderungen in der ABAP-Programmiersprache mit sich brachte. Der Leser dieses Buches findet viele Übungsprogramme, mithilfe derer er seine hier gelernte Theorie gleich in die Praxis umsetzen kann.
Während Sie bisher Datenbankprozeduren mithilfe von Open SQL programmiert haben, werden Sie sehen, dass Native SQL in HANA zu erheblichen Performancegewinnen führt. Damit Open SQL von der Datenbankschnittstelle nicht erst aufwendig in Native SQL umgeformt werden muss, ist es besser für die Performance, wenn Sie schon direkt in Native SQL schreiben.
Sie werden auch SQLScript kennen- und einsetzen lernen. Um Ihnen den Umstieg leicht zu machen, werde ich am Anfang des Buches jedes Listing in zwei Varianten schreiben: zum einen im neuen und zum anderen im alten ABAP.
SAP HANA ist eine In-Memory Database. Sie befindet sich im Hauptspeicher des Applikationsservers. Während früher die Programme getrennt von den Datenbanken gelagert wurden, können jetzt Datenbankprozeduren direkt in der SAP-HANA-Datenbank gespeichert werden. Mit dieser werden gleichzeitig viele neue Tools ausgeliefert, die vom ABAP-Entwickler für die Bearbeitung in dieser Umgebung genutzt werden können.
Die HANA-Datenspeicherung kann sowohl zeilen- oder spaltenbasiert als auch objektorientiert erfolgen. Damit ist sie besonders für Zugriffe aus ABAP Objects ausgelegt. Ein großes Plus ist die hervorragende Parallelverarbeitungsmöglichkeit. Programme können ihre Verarbeitungsprozesse auf mehrere gleichzeitig ablaufende Datenpakete verteilen.
SAP hat die Eclipse-Plattform, die heutzutage von vielen Programmiersprachen als Entwicklungsumgebung verwendet wird, insbesondere für die neuartige Entwicklung in ABAP und SAP HANA angepasst: Ein besonderes Element der HANA-Plattform ist HANA XS (HANA Extended Application Services), das die Entwicklung von Anwendungen direkt auf der HANA-Plattform ohne externe Entwicklungsumgebung anbietet.
Die hiermit entwickelten Objekte erzeugen Objekte im Datenbankkatalog und werden im HANA Repository abgelegt. Die hierfür verwendete Beschreibungssprache ist Core Data Services (CDS), deren Dateien im HANA Repository mit der Endung .hdbdd gespeichert werden.
Mit dem Release 7.4 SP5 gab es eine bedeutende Neuerung im Umgang mit SAP HANA: Die Sprache wurde erheblich vereinfacht. Ich stelle Ihnen die Situation sowohl vor als auch nach dem Release 7.4 SP5 vor.
Für eine Übertragung der ABAP-Programmierung vom Applikationsserver in den SAP-HANA-Bereich ist, verbunden mit der damit notwendigen sprachlichen Veränderung, eine Übertragung der SQL-Anweisungen von Open SQL nach Native SQL erforderlich. Dabei finden auch Namensänderungen (Konvertierungen) von Datentypen statt.
Die Datenobjekte des Native SQL werden anders benannt als im Open SQL. Das ABAP Dictionary lässt benutzerspezifische DDIC-Datentypen zu wie
Diese DDIC-Datentypen sowie Domänen sind bei der Modellierung und Programmierung aufgrund des notwendigen speziellen Native-SQL-Typs in SAP HANA nicht direkt verwendbar.
Um in normalen ABAP-Anwendungen des Applikationsservers Native SQL leichter nutzen zu können, was Sie im Zusammenhang mit SAP HANA tun sollten, hat die SAP die ABAP Database Connectivity (ADBC) erfunden, die objektorientiert verwendet wird.
Bisher haben Sie es bei Ihren ABAP-Programmierungen immer mit nur einer Datenbank zu tun gehabt, auf der alle Ihre Datenbanktabellen gelagert waren. Vor allem bei HANA-Side-by-Side-Szenarien müssen Sie aber mit mehreren Datenbanken arbeiten. Die anderen Datenbanken bezeichnet man als sekundäre Datenbanken bzw. sekundäre Datenbankverbindungen.
Ihr Programm liest die Daten gewöhnlich von der HANA-Datenbank. Sie können aber auch direkt auf die sekundäre Datenbankverbindung zugreifen, um v. a. Lesezugriffe zu beschleunigen.
In diesem Abschnitt befassen wir uns mit dem Einsatz von nativem SQL im Eclipse-basierten SAP HANA Studio.
In Native SQL haben Sie die Möglichkeit, in Ihrem Programm zur Laufzeit DDIC-Objekte (Tabellen und Views) anzulegen. Im Listing 2.7 wird eine Datenbank-Tabelle mit Namen ZAIRPLANE angelegt, die aus den Feldern MANDT, TYPE, MODEL, SEATS und MOTOR besteht. Der Primärschlüssel besteht aus den Feldern MANDT, TYPE und MODEL. NVARCHAR und SMALLINT sind native Datentypen für SAP-HANA-Datenbanken.
In Listing 2.8 sehen Sie, wie ein Datenbank-View mit Namen ZFLIGHT dynamisch angelegt wird. Die DB-Tabellen SFLIGHT und SBOOK, aus denen der View bestehen soll, stehen bei der Erstellung dieses Buches im Datenbankschema SAPDEA. Die Nennung des Schemas ist immer dann erforderlich, wenn die Selektion in einem anderen Schema, i.d.R. mit der Benutzer-ID bezeichnet, durchgeführt wird.
Sie sind bereits mit dem Open-SQL-Select, das Sie in normalen ABAP-Programmen des Applikationsservers verwenden, und dem Native SQL für den SAP-HANA-Bereich vertraut. Als Drittes lernen Sie jetzt das SQLScript kennen, welches Sie in Datenbankprozeduren, Calculation Views von SAP HANA sowie den CDS-Views verwenden.
Datenbankprozeduren sind Selektionen als Codefragmente, die zwecks Wiederverwendung auf der SAP-HANA-Datenbank abgelegt werden, ähnlich den Ihnen bekannten Funktionsbausteinen auf dem Applikationsserver.
Sie kennen sicherlich alle die Views aus dem Data Dictionary, die Ihnen eine spezielle Sicht auf eine oder mehrere Datenbanken gleichzeitig erlauben. Geschaffen wurden sie, um die Performance bei Selektionssichten auf Datenbanktabellen zu optimieren.
SAP HANA hat dieses Prinzip der Views noch verfeinert und erweitert. SAP HANA kennt drei Typen von analytischen Views:
Das Novum an diesen Views besteht darin, dass hier bereits während der Selektion aus der Datenbank Analysen und Berechnungen durchgeführt werden können.
Sie haben gerade gelernt, wie Sie mit dem SAP HANA Studio Daten aus der Datenbank auslesen können. Nun zeige ich Ihnen, wie Sie diese analytischen Views und Datenbankprozeduren in ABAP-Programme einbinden. Dabei steht »analytische Views« jeweils für die drei Viewtypen Attribute, Analytic und Calculation.
Ansprechbar sind die analytischen Views über die unter Catalog im Datenbankschema _SYS_BIC generierten Column Views. Die ABAP-Programme legen Sie bekanntlich in der Perspektive ABAP an.
Der Transport von HANA-Objekten findet mithilfe einer Delivery Unit statt. Dies ist eine Sammlung von Paketen, die gemeinsam transportiert werden sollen. Ich habe in Abschnitt 1.3.7 schon einmal darauf hingewiesen, dass im HANA Repository das Paket sap die Objekte beinhaltet, die von der SAP ausgeliefert werden, und system-local die Pakete besitzt, die nicht transportiert werden sollen.
Dementsprechend müssen Sie für Ihre zu transportierenden eigenen Entwicklungen entsprechende Pakete anlegen. Eine Delivery Unit für Ihre Pakete muss immer explizit angelegt werden.
Wenn Sie dieses Buch aufmerksam gelesen haben, werden Sie festgestellt haben, dass die beschriebene Handhabung der HANA-Objekte sehr umständlich ist:
Aus diesem Grund sind seit dem ABAP-Release 7.4 SP5 für mehrere HANA-Objekte gleichbedeutende ABAP-Objekte geschaffen worden, sodass Sie auf die beschriebenen HANA-Datenbankprozeduren und analytischen Views verzichten können.
Nachdem Sie nun den Umgang mit SAP HANA gelernt haben, stelle ich Ihnen noch ein paar Anwendungsszenarien vor, in denen die HANA-Technik neue Möglichkeiten der Programmierumsetzung anbietet.
Ein Anwender muss heutzutage in vielen verschiedenen Anwendungsgebieten Texte suchen. Das kann entweder im Internet oder auch in Dokumenten sein, die nach bestimmten Textbausteinen durchsucht werden sollen. Des Weiteren sind Datenbanktabellen, wo über abgelegte Informationen nur wenig bekannt ist, als Quellen denkbar.
SAP HANA ist in der Lage, Texte und Dokumente sowie Datenbanktabellen nach Wortfragmenten zu durchsuchen, wobei auch unrichtig eingegebene Datensuchen korrigiert werden können.
Die Textsuche lässt sich in mehrere Kategorien unterteilen:
Fuzzy-Suche toleriert kleine Fehler des Anwenders bei der Sucheingabe und selektiert auch ähnliche Begriffe;
Freestyle-Suche die Eingabe in ein Suchfeld kann zu Recherchen über mehrere unterschiedliche Tabellenfelder führen;
Textanalyse Texte werden bezüglich Emotionen und Semantik analysiert;
linguistische Suche und Synonymsuche Synonyme, Ausdrücke und Sprachvarianten werden bei der Suche berücksichtigt;
Suchfacetten Sucheingaben können zu Datenanalysen gemäß bestimmter Merkmale genutzt werden; Ausgabe der Ergebnisse als Diagramme möglich;
Ranking der Resultate die Resultate der Suche werden gemäß ihrer Trefferwahrscheinlichkeit sortiert und angezeigt;
Vorschlagslisten bereits während der Sucheingabe des Anwenders werden mögliche Resultate zur Auswahl angezeigt.
Für die Fuzzy-Suche im Column Store von SAP HANA mithilfe von Native SQL gibt es die speziell dafür optimierten Datentypen TEXT und SHORTTEXT. TEXT ist für Langtexte unbekannter Länge gedacht, SHORTTEXT soll bei Texten mit einer bestimmten Länge verwendet werden.
Sie können diese Datentypen aber nicht in der Definition einer Datenbanktabelle einsetzen. Dieses Problem können Sie umgehen, indem Sie einen Full-Text-Index für eine Tabellenspalte anlegen. Dadurch wird beim Laden der Daten aus der Tabelle im Hauptspeicher eine weitere Spalte (Schattenspalte) vom Typ TEXT erzeugt. Diese enthält dann dieselben Daten wie die Spalte, für die sie erzeugt wurde, aber in einer für die Textsuche optimierten Darstellung. Ohne einen Full-Text-Index gibt es keine sinnvolle Textsuche.
Der Full-Text-Index wird mit der Anweisung CREATE FULLTEXT INDEX angelegt. Es existieren viele Varianten dieser Anweisung, die wir hier nicht alle betrachten können. Ich verweise in dieser Angelegenheit auf das SAP Help Portal http://help.sap.com.
Als Einsteiger in die neue Entwicklungsplattform von SAP werden Sie sich nach Bearbeitung aller Übungsprogramme hoffentlich sicherer in diesem ungewohnten Umfeld bewegen, während Fortgeschrittene gut gerüstet sein sollten, um mit den neuen Features, die die SAP in ihre Programmierung implementiert hat, umgehen zu können.
Für Anwendungen im Umfeld von SAP HANA gibt es spezielle Acceleratoren (Beschleuniger), deren Vorteile auf der Hand liegen…
Themen: ABAP, Eclipse, HANA