ABAP-Programmierung unter SAP HANA

ABAP, 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.

ABAP-Programmierung unter SAP HANA

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 ÔÇô Einf├╝hrung

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.

ABAP-Programmierung unter SAP HANA - Entwicklungsebenen

Grundlagen der ABAP-Programmierung f├╝r SAP HANA

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.

├ťbertragung der ABAP-Programmierung vom Applikationsserver nach SAP HANA

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

  • Datenelemente,
  • Strukturen,
  • Tabellentypen

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.

ABAP Database Connectivity

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.

Sekund├Ąre Datenbankverbindungen

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.

Natives SQL im SAP HANA Studio

In diesem Abschnitt befassen wir uns mit dem Einsatz von nativem SQL im Eclipse-basierten SAP HANA Studio.

Dynamisches Anlegen von Tabellen und Views

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.

ABAP-Programmierung unter SAP HANA - Datenbank-Tabelle

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.

ABAP-Programmierung unter SAP HANA - Datenbank-Views

SQLScript

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.

Analytische Views (gebr├Ąuchlich bis Release 7.4 SP4)

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:

  • Attribute View f├╝r Sichten auf Stammdaten,
  • Analytic View f├╝r Sichten auf Bewegungsdaten,
  • Calculation View f├╝r eine Kombination aus mehreren Views und Operationen.

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.

ABAP-Programmierung unter SAP HANA - Attribut Views

Einbindung der Objekte aus dem SAP HANA Studio in ABAP-Programme

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.

Transport der HANA-Objekte

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.

ABAP-Programmierung unter SAP HANA - Paketeigenschaften

ABAP-Erweiterungen seit Release 7.4 SP5

Wenn Sie dieses Buch aufmerksam gelesen haben, werden Sie festgestellt haben, dass die beschriebene Handhabung der HANA-Objekte sehr umst├Ąndlich ist:

  • Bei ├änderungen der HANA-Objekte m├╝ssen deren ABAP-Proxies und Transportcontainer immer manuell synchronisiert werden.
  • HANA-Entwicklungsobjekte sind nicht an die Versionsverwaltung angeschlossen.
  • HANA-Objekte werden bei der Syntaxpr├╝fung von ABAP-Programmen nicht ├╝berpr├╝ft, was h├Ąufig zu Laufzeitfehlern f├╝hrt.
  • HANA-Entwicklungsobjekte und ihre Proxies sind nicht erweiterbar.
  • Die Abbildung von SQL-Datentypen auf ABAP-Datentypen muss manuell ├╝berwacht werden, weil sie nicht eindeutig 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.

Fortgeschrittene Techniken

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.

Unstrukturierte Daten und deren Textsuche

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.

Grundlagen der Textsuche

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.

ABAP-Programmierung unter SAP HANA - Fuzzy-Suche

Textsuche in Native SQL von SAP HANA

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.

ABAP-Programmierung unter SAP HANA - Full-Text-Index

Zusammenfassung

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.

29,95 ÔéČ
ABAP-Programmierung unter SAP HANA

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ÔÇŽ

  • abap
  • eclipse
  • hana
Jetzt kaufen

Themen: ABAP, Eclipse, HANA

F├╝r den Newsletter anmelden und nie mehr Neuerungen verpassen!

├ťber uns

In unseren Printb├╝chern und E-Books servieren wir SAP-Wissen wie einen Espresso: Auf das Wesentliche ÔÇô angereichert mit konkreten Fallbeispielsen und Videos.

Schlagw├Ârter

  • Analysis
  • Analysis Office
  • Analytics
  • Analyzer
  • Berechtigung
  • BEx
  • BI
  • BPC
  • BusinessObjects
  • BW
  • Cloud
  • Design Studio
  • Einstieg
  • HANA
  • Lumira
  • Performance
  • Web Intelligence

Copyright 2022 Espresso Tutorials GmbH