55
SAP PRESS ABAP-Entwicklung für SAP HANA Bearbeitet von Thorsten Schneider, Eric Westenberger, Hermann Gahm 1. Auflage 2013. Buch. ca. 602 S. Hardcover ISBN 978 3 8362 1996 9 Format (B x L): 16 x 24 cm Weitere Fachgebiete > EDV, Informatik > Datenbanken, Informationssicherheit, Geschäftssoftware > SAP schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.

ABAP-Entwicklung für SAP HANA - ReadingSample · ABAP-Entwicklung für SAP HANA Bearbeitet von Thorsten Schneider, Eric Westenberger, Hermann Gahm 1. Auflage 2013. Buch. ca. 602

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

  • SAP PRESS

    ABAP-Entwicklung für SAP HANA

    Bearbeitet vonThorsten Schneider, Eric Westenberger, Hermann Gahm

    1. Auflage 2013. Buch. ca. 602 S. HardcoverISBN 978 3 8362 1996 9

    Format (B x L): 16 x 24 cm

    Weitere Fachgebiete > EDV, Informatik > Datenbanken, Informationssicherheit,Geschäftssoftware > SAP

    schnell und portofrei erhältlich bei

    Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft.Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programmdurch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr

    als 8 Millionen Produkte.

    http://www.beck-shop.de/Schneider-Westenberger-Gahm-ABAP-Entwicklung-SAP-HANA/productview.aspx?product=12438624&utm_source=pdf&utm_medium=clickthru_lp&utm_campaign=pdf_12438624&campaign=pdf/12438624http://www.beck-shop.de/trefferliste.aspx?toc=8249http://www.beck-shop.de/trefferliste.aspx?toc=8249

  • Bonn � Boston

    Thorsten Schneider, Eric Westenberger, Hermann Gahm

    ABAP®-Entwicklung für SAP HANA®

  • 5

    Auf einen Blick

    TEIL I Grundlagen

    1 SAP HANA im Überblick .......................................... 31

    2 Einführung in die Entwicklungsumgebung ................ 67

    3 Datenbankprogrammierung mit dem SAP NetWeaver AS ABAP ........................................ 107

    TEIL II Einführung in die ABAP-Programmierung mit

    SAP HANA

    4 View-Modellierung im SAP HANA Studio ................ 161

    5 Programmieroptionen in SAP HANA ........................ 217

    6 Transport von Anwendungen ................................... 269

    7 Laufzeit- und Fehleranalyse auf SAP HANA .............. 293

    8 Beispielszenario: Optimierung einer bestehenden Anwendung ............................................................. 347

    TEIL III Fortgeschrittene Techniken für die

    ABAP-Programmierung auf SAP HANA

    9 Textsuche und Analyse von unstrukturierten Daten ....................................................................... 379

    10 Integration analytischer Funktionalität ..................... 417

    11 Entscheidungstabellen in SAP HANA ........................ 449

    12 Funktionsbibliotheken in SAP HANA ........................ 465

    13 Beispielszenario: Entwicklung einer neuen Anwendung ............................................................. 483

    14 Praxistipps ............................................................... 501

    Anhang ........................................................................... 557

  • Inhalt

    7

    Inhalt

    Geleitwort .................................................................................... 15Vorwort ........................................................................................ 17Einleitung ..................................................................................... 19

    TEIL I Grundlagen

    1 SAP HANA im Überblick .......................................... 31

    1.1 Softwarekomponenten von SAP HANA ....................... 311.1.1 HANA-Datenbank .......................................... 331.1.2 SAP HANA Studio .......................................... 331.1.3 SAP HANA Client ........................................... 351.1.4 HANA-Funktionsbibliotheken ........................ 361.1.5 Software zur Replikation von Daten ............... 361.1.6 Software zur direkten Datenaufbereitung ....... 371.1.7 Lifecycle-Management-Komponenten ............ 38

    1.2 Grundlagen der In-Memory-Technologie .................... 391.2.1 Hardwareinnovationen ................................... 401.2.2 Softwareinnovationen .................................... 43

    1.3 Architektur der In-Memory-Datenbank ....................... 541.4 Anwendungsfälle für SAP HANA ................................. 561.5 Auswirkungen von SAP HANA auf die

    Anwendungsentwicklung ............................................ 581.5.1 Neue technische Möglichkeiten ..................... 591.5.2 Code Pushdown ............................................. 601.5.3 Datenbank als Whitebox ................................ 621.5.4 Qualifizierung des Entwicklers ........................ 64

    2 Einführung in die Entwicklungsumgebung .............. 67

    2.1 Eclipse im Überblick ................................................... 672.2 Die Eclipse-Strategie von SAP ..................................... 70

    2.2.1 Entflechtung von Eclipse und SAP-Software ........................................................ 71

    2.2.2 Zentrale Update-Seite .................................... 712.3 Installation der Entwicklungsumgebung ...................... 73

    2.3.1 Installation des SAP HANA Studios ................ 73

  • Inhalt

    8

    2.3.2 Installation der ABAP Development Tools for SAP NetWeaver ....................................... 75

    2.4 Erste Schritte im Entwicklungssystem ......................... 762.4.1 Grundlagen von Eclipse ................................. 772.4.2 ABAP Development Tools for SAP

    NetWeaver .................................................... 802.4.3 SAP HANA Studio ......................................... 90

    3 Datenbankprogrammierung mit dem SAP NetWeaver AS ABAP ................................................ 107

    3.1 Architektur des SAP NetWeaver AS ABAP .................. 1093.1.1 Datenbankschnittstelle und

    Datenbanktreiber .......................................... 1103.1.2 Nutzung der Datenbank durch den

    SAP NetWeaver AS ABAP .............................. 1133.1.3 Datentypen ................................................... 115

    3.2 ABAP-Datenbankzugriff ............................................. 1213.2.1 ABAP Dictionary ........................................... 1223.2.2 Open SQL ..................................................... 1273.2.3 Datenbank-Views im ABAP Dictionary .......... 1373.2.4 Datenbankzugriff über natives SQL ................ 1383.2.5 Sekundäre Datenbankverbindungen .............. 145

    3.3 Datenbankzugriffe mit dem SQL-Trace analysieren ..... 1493.3.1 Anweisungstransformationen ........................ 1493.3.2 Sekundärverbindungen .................................. 1553.3.3 Natives SQL .................................................. 1573.3.4 Puffer ............................................................ 157

    TEIL II Einführung in die ABAP-Programmierung mit SAP HANA

    4 View-Modellierung im SAP HANA Studio ............... 161

    4.1 Attribute Views .......................................................... 1644.1.1 Grundlagen ................................................... 1654.1.2 Attribute Views anlegen ................................ 1684.1.3 Berechnete Felder ......................................... 1754.1.4 Hierarchien ................................................... 1784.1.5 Attributsichten für Zeit .................................. 1804.1.6 Laufzeitobjekte und SQL-Zugriff bei

    Attribute Views ............................................. 183

  • Inhalt

    9

    4.2 Analytic Views ............................................................ 1844.2.1 Grundlagen .................................................... 1854.2.2 Analytic Views anlegen .................................. 1874.2.3 Berechnete Kennzahlen .................................. 1904.2.4 Währungsumrechnung und

    Einheitenkonvertierung .................................. 1914.2.5 Laufzeitobjekte und SQL-Zugriff bei

    Analytic Views ............................................... 1954.3 Calculation Views ....................................................... 196

    4.3.1 Grundlagen .................................................... 1974.3.2 Grafische Modellierung von Calculation

    Views ............................................................. 1994.3.3 Implementierung von Calculation Views

    über SQLScript ............................................... 2014.3.4 Laufzeitobjekte und SQL-Zugriff bei

    Calculation Views ........................................... 2054.4 Zugriff auf Column Views über Microsoft Excel ........... 2064.5 Verwendung von SAP HANA Views in ABAP .............. 208

    4.5.1 Zugriff über natives SQL ................................. 2094.5.2 Externe Views im ABAP Dictionary ................. 2104.5.3 Zugriffsmöglichkeiten auf externe Views ......... 2134.5.4 Empfehlungen ................................................ 214

    5 Programmieroptionen in SAP HANA ....................... 217

    5.1 SQLScript im Überblick ............................................... 2175.1.1 Qualitäten von SQLScript ............................... 2185.1.2 Verarbeitung von SQLScript ........................... 224

    5.2 Implementierung von Datenbankprozeduren .............. 2255.2.1 Grundlagen von Datenbankprozeduren .......... 2255.2.2 Datenbankprozeduren anlegen ....................... 2285.2.3 Verwendung von Variablen ............................ 2385.2.4 CE-Funktionen ............................................... 2415.2.5 Imperative Erweiterungen .............................. 2515.2.6 Zugriff auf Systemfelder .................................. 2545.2.7 Fehlerbehandlung .......................................... 255

    5.3 Verwendung von Prozeduren in ABAP ........................ 2575.3.1 Zugriff über natives SQL ................................. 2575.3.2 Definition von Database Procedure

    Proxies ........................................................... 2645.3.3 Aufruf von Database Procedure Proxies .......... 2675.3.4 Anpassung von Database Procedure Proxies ... 268

  • Inhalt

    10

    6 Transport von Anwendungen ................................... 269

    6.1 Grundlagen des Transportwesens ............................... 2716.1.1 Transport im SAP NetWeaver AS ABAP ......... 2716.1.2 Transport in SAP HANA ................................. 276

    6.2 Kombinierter ABAP-/SAP HANA-Transport ................ 2856.2.1 HANA-Transportcontainer ............................. 2866.2.2 Erweitertes Transportsystem .......................... 292

    7 Laufzeit- und Fehleranalyse auf SAP HANA ............ 293

    7.1 Übersicht der verfügbaren Werkzeuge ........................ 2947.2 Fehleranalyse ............................................................. 296

    7.2.1 Unit Tests ...................................................... 2977.2.2 Dump-Analyse .............................................. 2997.2.3 Tracing in SQLScript ...................................... 3027.2.4 Debugging von SQLScript .............................. 303

    7.3 ABAP-Code-Analyse .................................................. 3057.3.1 Prüfungen und Prüfvarianten ......................... 3057.3.2 Prüfungen in der

    Entwicklungsinfrastruktur .............................. 3097.3.3 Globale Prüfläufe im System .......................... 311

    7.4 Laufzeitstatistiken und Traces ..................................... 3137.4.1 Laufzeitstatistik ............................................. 3137.4.2 ABAP-Trace und ABAP Profiler ...................... 3177.4.3 SQL-Trace ..................................................... 3247.4.4 Single Transaction Analysis ............................ 3287.4.5 Explain Plan .................................................. 3307.4.6 SAP HANA Plan Visualizer ............................. 331

    7.5 Systemweite SQL-Analysen ........................................ 3357.5.1 DBA-Cockpit ................................................. 3357.5.2 SQL Monitor ................................................. 339

    7.6 SQL-Performanceoptimierung .................................... 343

    8 Beispielszenario: Optimierung einer bestehenden Anwendung .............................................................. 347

    8.1 Vorgehen bei der Optimierung .................................. 3488.1.1 Migration auf SAP HANA .............................. 3488.1.2 Systemoptimierung ....................................... 3508.1.3 Anwendungsoptimierung .............................. 351

    8.2 Szenario und Anforderungen ...................................... 354

  • Inhalt

    11

    8.2.1 Ausgangssituation .......................................... 3548.2.2 Technische Umsetzung ................................... 3568.2.3 Aktuelle Probleme ......................................... 358

    8.3 Umsetzung der Anforderungen ................................... 3598.3.1 Eingrenzung des Problems mit der

    Laufzeitstatistik .............................................. 3598.3.2 Detailanalyse des ABAP-Programms mit

    Transaktion SAT ............................................. 3618.3.3 Detailanalyse der Datenbankzugriffe .............. 3638.3.4 Ergebnis der Analyse ...................................... 3658.3.5 Optimierung mit Open SQL ........................... 3658.3.6 Analyse der ersten Optimierung ..................... 3678.3.7 Ergebnis der Analyse ...................................... 3698.3.8 Optimierung mit Analytic View ...................... 3708.3.9 Analyse nach der zweiten Optimierung .......... 3718.3.10 Ergebnis der Analyse ...................................... 374

    TEIL III Fortgeschrittene Techniken für die ABAP-Programmierung auf SAP HANA

    9 Textsuche und Analyse von unstrukturierten Daten ........................................................................ 379

    9.1 Grundlagen der Textsuche in SAP HANA .................... 3819.1.1 Technische Architektur ................................... 3829.1.2 Fehlertolerante Suche .................................... 3839.1.3 SAP-Komponenten und Produkte für die

    Suche ............................................................. 3859.2 Text-Datentypen und Full-Text-Indizes in

    SAP HANA .................................................................. 3869.3 Verwendung der Textsuche über SQL ......................... 391

    9.3.1 Fuzzy-Suche ................................................... 3939.3.2 Synonyme und Stoppwörter ........................... 3979.3.3 Suche über Datumsfelder und Adressdaten .... 400

    9.4 Einsatz der Textsuche in ABAP .................................... 4039.4.1 Aufruf der Textsuche via SQL aus ABAP ......... 4039.4.2 Frei definierte Wertehilfen ............................. 404

    9.5 Textanalyse ................................................................. 4119.6 Ressourcenverbrauch und Laufzeitaspekte

    der Textsuche ............................................................. 413

  • Inhalt

    12

    10 Integration analytischer Funktionalität ................... 417

    10.1 Einführung ................................................................. 41710.1.1 Was ist analytische Funktionalität? ................ 41810.1.2 Exkurs: SAP NetWeaver Business

    Warehouse .................................................... 42110.2 Mögliche Architekturen im Überblick ......................... 423

    10.2.1 Direkter Zugriff auf analytische Funktionalität in SAP HANA .......................... 424

    10.2.2 Zugriff über den SAP NetWeaver AS ABAP .... 42910.3 Ausgewählte Technologien und Werkzeuge ............... 433

    10.3.1 InfoProvider bei Nutzung von SAP HANA ...... 43410.3.2 SAP BusinessObjects-Portfolio ....................... 44110.3.3 Easy-Query-Schnittstelle ................................ 445

    10.4 Benutzeroberflächenbausteine ................................... 447

    11 Entscheidungstabellen in SAP HANA ...................... 449

    11.1 Grundlagen von Entscheidungstabellen ...................... 45011.2 Anlegen von Entscheidungstabellen im SAP HANA

    Studio ........................................................................ 45311.3 Entscheidungstabellen basierend auf SAP HANA

    Views ......................................................................... 45811.4 Laufzeitobjekte und SQL-Zugriff für

    Entscheidungstabellen ............................................... 46111.5 Zugriff auf Entscheidungstabellen aus ABAP ............... 462

    12 Funktionsbibliotheken in SAP HANA ...................... 465

    12.1 Grundlagen der Application Function Library ............. 46812.1.1 Technische Grundlagen ................................. 46812.1.2 Business Function Library .............................. 46912.1.3 Predictive Analysis Library ............................. 471

    12.2 Nutzung von Application-Function-Library-Funktionen in SQLScript ............................................ 475

    12.3 Einbindung der Funktionsbibliotheken in ABAP ......... 480

    13 Beispielszenario: Entwicklung einer neuen Anwendung .............................................................. 483

    13.1 Szenario und Anforderungen ...................................... 48313.2 Anwendungsdesign .................................................... 484

    13.2.1 Verwaltung der Rabatte durch den Reisevermittler .............................................. 485

  • Inhalt

    13

    13.2.2 Zusätzliche Auswertungen über eine Sidepanel-Anwendung ................................... 486

    13.2.3 Mobile Anwendung für den Flugpassagier ...... 48813.3 Implementierung der Anwendung .............................. 490

    13.3.1 SAP HANA Views und Prozeduren ................. 49013.3.2 Kern der ABAP-Anwendung ........................... 49213.3.3 Benutzeroberflächen ...................................... 494

    13.4 Nutzung der Anwendungen ........................................ 499

    14 Praxistipps ............................................................... 501

    14.1 Allgemeine Empfehlungen .......................................... 50214.1.1 Empfehlungen zu Column und Row Store ...... 50214.1.2 HANA-spezifische Implementierungen ........... 50314.1.3 Checkliste für datenbankspezifische

    Implementierungen ........................................ 50514.1.4 Empfehlungen zur Migration .......................... 50714.1.5 Entwicklung in Landschaften .......................... 51014.1.6 Schreibende Zugriffe in SQLScript oder

    nativem SQL .................................................. 51114.2 Konventionen ............................................................. 513

    14.2.1 Namenskonventionen .................................... 51414.2.2 Kapselung von Paketen .................................. 515

    14.3 Qualitätsaspekte ......................................................... 51614.3.1 Testen von Views und Prozeduren ................. 51614.3.2 Robuste Programmierung ............................... 51714.3.3 Sicherheitsaspekte .......................................... 518

    14.4 Performanceempfehlungen für Open SQL ................... 52014.4.1 Regel 1: Ergebnismengen klein halten ............ 52014.4.2 Regel 2: Übertragene Datenmengen klein

    halten ............................................................ 52414.4.3 Regel 3: Anzahl der Anfragen reduzieren ........ 53014.4.4 Regel 4: Suchaufwand minimieren ................. 53714.4.5 Regel 5: Datenbank entlasten ......................... 54014.4.6 Zusammenfassung der Regeln ........................ 545

    14.5 Performanceempfehlungen für native Implementierungen in SAP HANA .............................. 54614.5.1 Empfehlungen für natives SQL ....................... 54614.5.2 Empfehlungen für SAP HANA Views .............. 54814.5.3 Empfehlungen für SQLScript .......................... 551

    14.6 Zusammenfassung der Empfehlungen ......................... 553

  • Inhalt

    14

    Anhang ........................................................................... 557

    A Flugdatenmodell .................................................................. 559A.1 Grundlagen des Flugdatenmodells ............................. 559A.2 Datenbanktabellen des Flugdatenmodells .................. 560

    A.2.1 Customizing .................................................. 560A.2.2 Stammdaten .................................................. 561A.2.3 Bewegungsdaten ........................................... 562A.2.4 Design des SFLIGHT-Datenmodells ............... 564

    A.3 Datengenerierung ...................................................... 565B Neuerungen in ABAP in SAP NetWeaver 7.4 ........................ 567

    B.1 Inline-Deklarationen .................................................. 567B.2 Konstruktor-Ausdrücke .............................................. 569B.3 Interne Tabellen ......................................................... 571

    C Lese- und Schreibzugriffe im Column Store ........................... 573C.1 Grundlagen ................................................................ 573C.2 Lesezugriff ohne Index ............................................... 574C.3 Schreibzugriff ohne Index ........................................... 576C.4 Lesezugriffe mit Index ................................................ 579

    D SAP Business Application Accelerator powered by SAP HANA ........................................................................... 583

    E Installation der Beispiele ...................................................... 587F Die Autoren ......................................................................... 589

    Index ........................................................................................... 591

  • 19

    Einleitung

    Die heutige Geschäftswelt ist sehr dynamisch und stetigen Verände-rungen unterworfen, wodurch ein starker Innovationsdruck für Unternehmen entsteht. Die Vision von SAP HANA ist es, eine Platt-form zu bieten, mit der alle Geschäftsprozesse in der Wertschöp-fungskette eines Unternehmens in Echtzeit beeinflusst werden kön-nen. Doch was bedeutet der zentrale Begriff »Echtzeit« (Realtime) für betriebswirtschaftliche Anwendungen?

    Technologisch bezeichnet man damit vor allem die Verfügbarkeit benötigter Funktionalität ohne unerwünschte Verzögerungen. Welche Funktionen man benötigt und welches Maß an Verzögerung akzep-tiert wird, hängt stark vom Umfeld und von der Zeit ab, in denen eine Technologie eingesetzt wird. Bevor wir auf aktuelle Software zur Unternehmenssteuerung näher eingehen, wollen wir Ihnen dies mit einem Beispiel aus dem täglichen Leben veranschaulichen: der Tele-kommunikation.

    Beispiel: Echtzeit in der Telekommu-nikation

    Frühe Kommunikationsmöglichkeiten wie etwa die Telegraphie obla-gen in der Nutzung starken Einschränkungen (Reichweite, Verfügbar-keit, manuelle Aufwände), bedeuteten in ihrer Zeit jedoch eine immense Beschleunigung für den Nachrichtenaustausch. Das Telefon erlaubte flexible Verbindungen zwischen Teilnehmern über große Strecken, auch hier musste der Verwender dieser Technologie jedoch verschiedene Verzögerungen einberechnen. Zu Beginn war etwa ein manueller Verbindungsaufbau über eine Vermittlung notwendig. Auch später gab es lange Zeit gerade bei Überseeverbindungen deut-liche Latenzen, die ein Gespräch beeinflusst und verkompliziert ha-ben. Heute hingegen sind Telefonverbindungen zwischen Anschlüs-sen fast überall auf der Welt ohne merkliche Verzögerung möglich. Jeder Evolutionssprung war mit einer deutlichen Verbesserung der Echtzeitqualitäten verbunden.

    Neben einem (synchronen) Gespräch zwischen zwei Personen haben in der Geschichte immer auch asynchrone Formen der Kommunika-tion eine Rolle gespielt (z. B. über den Briefweg). Der Begriff Echtzeithat in diesem Zusammenhang einen anderen Charakter, da weder

  • 20

    Einleitung

    Sender noch Empfänger aktiv warten müssen. Aber auch bei der asynchronen Kommunikation sind gerade durch das Internet und den Mobilfunk in den letzten Jahren viele neue Varianten hinzuge-kommen (E-Mail, SMS etc.), die im Vergleich zur Briefpost eine neue Dimension von Echtzeitkommunikation zwischen mehreren Perso-nen ermöglichen. Zusätzlich gibt es auch immer mehr nicht mensch-liche Kommunikationsteilnehmer (z. B. Geräte mit Internetanschluss, sogenannte Smart Devices, wie etwa intelligente Stromzähler).

    Vermutlich würden die meisten Menschen bestätigen, dass elektroni-sche Kommunikation in Echtzeit heute verfügbar ist. Dennoch gibt es im täglichen Leben noch Anforderungen, die trotz des Technolo-giefortschritts nicht in Echtzeit umsetzbar sind, etwa die Umbuchung eines Anschlussfluges während einer Reise. Viele Szenarien, die wir uns heute noch nicht vorstellen können, werden vermutlich in der Zukunft so verbreitet sein, dass heutige akzeptierte Einschränkungen absolut inakzeptabel werden.

    Echtzeit in der Betriebswirtschaft

    Aus dem Beispiel der Telekommunikationstechnologie lassen sich einige Grundsätze ableiten, die sich auch auf betriebswirtschaftliche Software übertragen lassen. Auf der einen Seite gibt es gesellschaftli-che und wirtschaftliche Entwicklungen, wie die Globalisierung und zunehmende Mobilität der Kunden und Belegschaft, die treibende Kräfte für neuartige Technologien sind. Unternehmen agieren welt-weit und interagieren in komplexen Netzwerken. Kunden und Mitar-beiter erwarten einen Zugang zu Produkten und Services jederzeit und von jedem Ort der Welt.

    Auf der anderen Seite stehen technologische Innovationen, die neue Wege aufzeigen. Das Internet ist aktuell ein Katalysator für die meis-ten Entwicklungen. Riesige Datenmengen sind damit für einen gro-ßen Teil der Weltbevölkerung gleichzeitig, in Echtzeit, zugreifbar. Das Internet bietet aber auch eine Plattform für den Vertrieb von Produk-ten und Dienstleistungen aller Art, was zu einer explosionsartigen Zunahme der an einem Tag abgeschlossenen Geschäftstransaktionen geführt hat. Jede Optimierung der involvierten Geschäftsprozesse (z. B. Beschaffung, Produktion, Abrechnung etc.) kann einen riesigen Wettbewerbsvorteil bedeuten. Hier gibt es in den meisten Branchen großes Potenzial, das gerade durch eine bessere Verzahnung von ope-rativer Planung und Steuerung in Echtzeit ausgeschöpft werden kann.

  • 21

    Einleitung

    Darüber hinaus erwarten Kunden heute einen stärkeren Zuschnitt der angebotenen Produkte und Dienstleistungen auf ihre individuel-len Wünsche (z. B. persönliche Konditionen). Gerade in Branchen, die starken Veränderungen unterworfen sind (etwa die Energiewirt-schaft, Finanzdienstleister oder spezielle Einzelhandelsbranchen), sehen sich Unternehmen einem hohen Handlungsdruck ausgesetzt.

    Echtzeit bei SAPDer Begriff Echtzeit prägt die Evolution von 40 Jahren SAP-Software. Bereits im Namen der klassischen SAP-Produktschiene R/3 steht der Buchstabe »R« bekanntlich für Realtime. Die anfänglichen Konzepte der SAP in den 1970er-Jahren, aus denen die Entwicklung von R/1 hervorging, erlaubten es, Geschäftsdaten strukturiert per Eingabe am Bildschirm zu erfassen, was gegenüber älteren Lochkartensystemen eine neue Qualität von Echtzeit bot. Damit ließen sich zunächst Pro-zesse wie Lohnabrechnung und Buchhaltung elektronisch abbilden und automatisieren. Mit SAP R/2, das auf einer Architektur für Groß-rechner (Mainframes) basierte, fügte SAP diesen Anwendungsberei-chen weitere Module eines ERP-Systems (Enterprise Resource Plan-ning) wie etwa die Materialwirtschaft hinzu. Mit diesem Release wurde ABAP als Berichtsprache für Auswertungen eingeführt (ABAP stand ursprünglich für Allgemeiner Berichtsaufbereitungsprozessor, die Abkürzung wurde jedoch später von SAP zu Advanced Business Appli-cation Programming umgedeutet). Mit diesen ABAP-Berichten (Re-ports) konnte – zunächst nur im Hintergrund (Batch), später auch im Dialog – z. B. eine nach Kunden gefilterte Auflistung von Bestellungen mit ersten Drill-down-Möglichkeiten zu den Einzelposten erstellt wer-den.

    Vor allem durch die Client-Server-Architektur und die damit verbun-denen Möglichkeiten zur Skalierung in SAP R/3 konnten SAP-Anwendungen einer großen Zahl von Anwendern im Unternehmen zugänglich gemacht werden. In Kombination mit der konsequenten Nutzung eines Datenbanksystems und der stetig wachsenden Zahl von Standardimplementierungen für Geschäftsprozesse hat SAP-Soft-ware damit die IT-Infrastruktur vieler großer Unternehmen durch-drungen. Im Ergebnis war es möglich, transaktionale Prozesse in Echtzeit durch ein integriertes System zu unterstützen (z. B. einen Just-in-Time-Produktionsprozess).

    Bedeutung von Business Intelligence

    Parallel zu diesen Entwicklungen hat im Laufe der letzten 20 Jahre die Bedeutung von Auswertungen der laufenden Geschäftsprozesse

  • 22

    Einleitung

    mit dem Ziel, Erkenntnisse für bessere operative und strategische Entscheidungen zu gewinnen, stetig zugenommen. Im Rahmen die-ses Business-Intelligence-Trends hat sich allerdings gezeigt, dass es in vielen Situationen technisch nicht praktikabel ist, die notwendigen Analysen integriert im gleichen System durchzuführen, das den Ablauf der Geschäftsprozesse stützt. Die parallele Verarbeitung von Analysen und Transaktionen auf riesigen Datenmengen hat die meis-ten Systeme überlastet, wobei sich vor allem die Datenbank als limi-tierender Faktor herausgestellt hat. Dies war für SAP einer der Gründe für die Schaffung eines spezialisierten Systems für analyti-sche Szenarien, das Sie unter dem aktuellen Namen SAP NetWeaverBusiness Warehouse (BW) kennen. Neben neuen Möglichkeiten zur Datenkonsolidierung aus mehreren Systemen und der Integration externer Datenquellen ist die Nutzung des Data-Warehouse-Systems für operative Szenarien leider mit Verlusten bei der Datenverarbei-tung in Echtzeit verbunden. Daten müssen zunächst extrahiert und repliziert werden, und in der Praxis kann es dadurch zu einem Zeit-versatz von mehreren Stunden bis zu einer Woche kommen, bis die aktuellen Daten an der richtigen Stelle verfügbar sind. Genau an die-ser Stelle setzt SAP mit SAP HANA an: Niemand soll mehr auf eine für eine Geschäftsentscheidung wichtige Information warten müssen.

    SAP HANA als Datenbank

    SAP bezeichnet daher SAP HANA gerne als Plattform für das Daten-management in Echtzeit. Dabei ist SAP HANA zunächst eine vollwer-tige Datenbank für Geschäftstransaktionen (Online Transaktion Pro-cessing, OLTP) und Reporting (Online Analytical Processing, OLAP). Sie macht es über die Kombination von In-Memory-Technologie und spaltenorientierter Ablage möglich, beide Szenarien zu optimieren. In einem ersten Schritt wurde SAP HANA für die Beschleunigung selektiver Prozesse und Analysen als sogenanntes Side-by-Side-Szena-rio (also neben einer vorhandenen traditionellen Datenbank) einge-setzt und bald darauf als neue Datenbank für SAP NetWeaver BW 7.3 unterstützt. Damit zeigte SAP, dass SAP HANA nicht nur analytische Szenarien beschleunigt, sondern auch als primäre Datenbank eines SAP NetWeaver-Systems einsetzbar ist. Mit der Ankündigung der SAP Business Suite powered by SAP HANA ist es für Kunden nun auch möglich, von der HANA-Technologie im Rahmen der SAP-Standard-anwendungen voll zu profitieren. Das dieser Konstellation zugrunde liegende neue SAP NetWeaver-Release 7.4 (vor allem SAP NetWeaver Application Server (AS) ABAP 7.4) wird daher im Rahmen dieses

  • 23

    Einleitung

    Buches eine wichtige Rolle spielen, und die Beispielprogramme in diesem Buch setzen ABAP 7.4 voraus. Wir werden jedoch stets darauf hinweisen, welche Funktionen Sie auch mit niedrigeren SAP Net-Weaver-Releases verwenden können. Zu ABAP 7.4 gibt es eine Cloud-basierte Trial-Version auf SAP HANA, zu der Sie nähere Infor-mationen in Anhang E, »Installation der Beispiele«, finden.

    SAP HANA als Plattform

    Darüber hinaus bietet SAP HANA viele weitere Funktionen, die über den üblichen Funktionsumfang einer Datenbank hinausgehen. Dazu gehören vor allem umfassende Funktionen zum Datenmanagement (Replikation, Extraktion – Transformation – Laden (ETL) etc.) und zur Datenanalyse (z. B. Data Mining mithilfe von Textsuche und PredictiveAnalysis). Viele dieser Techniken und Funktionen werden nicht exklusiv von SAP HANA angeboten. Es gibt mittlerweile viele Soft-waresysteme, die Daten im Hauptspeicher verwalten oder spaltenori-entierte Darstellungen nutzen. SAP selbst hat bereits lange vor SAP HANA In-Memory-Technologien entwickelt und eingesetzt (z. B. im SAP NetWeaver BW Accelerator). Ebenso gibt es eine Vielzahl von Her-stellern (inklusive SAP selbst) von Software für die Analyse von Daten vor allem im Kontext von Business-Intelligence- und Information-Management-Lösungen. Ein wesentlicher Vorteil von SAP HANA ist es, diese Funktionalität im selben System anzubieten, in dem auch die Geschäftstransaktionen laufen. Wenn Sie etwa die SAP Business Suite auf SAP HANA betreiben, stehen Ihnen diese erweiterten Funktionen direkt und ohne Extraktion der Daten zur Verfügung. Mehr noch: Da SAP HANA die wesentlichen Datenstrukturen der SAP Business Suite kennt, gibt es für einige Standardoperationen (wie etwa Währungs-umrechnung) bereits eingebaute Funktionen.

    ABAP-Entwicklung auf SAP HANA

    Was bedeutet SAP HANA nun also für die SAP-Standardanwendun-gen, die auf dem ABAP-Anwendungsserver laufen? Was ändert sich in der ABAP-Programmierung? Welche neuen Möglichkeiten eröff-net SAP HANA für ABAP-basierte Lösungen? Diese drei Fragestellun-gen stellen wir in diesem Buch in den Mittelpunkt, wobei wir die technischen Hintergründe und Gedankenmodelle stets anhand von Beispielen erläutern werden und Ihnen nicht ausschließlich die Tech-niken in den neuen Werkzeugen und Frameworks vorstellen möch-ten. Wir fokussieren uns vor allem auf grundlegende Funktionen der ABAP-Entwicklung und den Datenbankzugriff mit ABAP. Existie-rende oder geplante Unterstützungen für SAP HANA in ABAP-basier-ten Frameworks stellen wir Ihnen in Überblicksform oder als Ausblick

  • 24

    Einleitung

    vor, da eine ausführliche Beschreibung in der Regel eine Einführung in die Funktionsweise dieser Komponenten erfordern würde (Bei-spiele sind etwa Embedded Search und BRFplus). Als Benutzeroberflä-chen verwenden wir in den Beispielen dieses Buches zumeist einfa-che ABAP-Reports, erstellen in zwei ausführlichen Beispielen jedoch auch webbasierte Oberflächen mit Web Dynpro ABAP und HTML5.

    Aufbau des Buches – erster Teil

    Wir haben uns dazu entschlossen, das Buch in drei Teile zu gliedern. Im ersten Teil, »Grundlagen«, werden wir Ihnen die Grundlagen der In-Memory-Technologie vorstellen. Sie lernen die Entwicklungs-werkzeuge kennen und können Ihre Kenntnisse der ABAP-Daten-bankprogrammierung auffrischen. Wir beginnen in Kapitel 1, »SAP HANA im Überblick«, mit einer Übersicht über die Komponenten von SAP HANA und die möglichen Einsatzszenarien im Zusammen-spiel mit ABAP. Danach gehen wir mit Ihnen in Kapitel 2, »Einfüh-rung in die Entwicklungsumgebung«, die ersten Schritte in der Ent-wicklungsumgebung, bestehend aus dem SAP HANA Studio und den ABAP Development Tools for SAP NetWeaver (auch bekannt als ABAP in Eclipse). Der Inhalt von Kapitel 3, »Datenbankprogrammie-rung mit dem SAP NetWeaver AS ABAP«, dreht sich um den Zugriff auf die HANA-Datenbank aus ABAP-Programmen mithilfe von Open SQL und Native SQL.

    Zweiter Teil Im zweiten Teil des Buches, »Einführung in die ABAP-Programmie-rung mit SAP HANA«, lernen Sie, wie Sie effizient Teile einer ABAP-Anwendung (z. B. gewisse Berechnungen) in SAP HANA verlagern und damit deutliche Performancegewinne erzielen können. Der Fokus liegt dabei auf der Programmierung und Modellierung in SAP HANA und dem Zugriff aus ABAP-Programmen. Zunächst gehen wir in Kapitel 4, »View-Modellierung im SAP HANA Studio«, auf die ver-schiedenen Möglichkeiten zur Erstellung von Datensichten ein, über die Sie Berechnungen und Analysen auf ABAP-Tabelleninhalten durchführen können. Danach lernen Sie in Kapitel 5, »Programmier-optionen in SAP HANA«, SQLScript als Programmiersprache für Datenbankprozeduren in SAP HANA und den Zugriff auf diese Proze-duren mit ABAP kennen. In Kapitel 6, »Transport von Anwendun-gen«, erklären wir Ihnen, wie Sie ABAP-Entwicklungsobjekte und Objekte im SAP HANA Repository gemeinsam transportieren kön-nen. Zusammen mit den Werkzeugen in Kapitel 7, »Laufzeit- und Fehleranalyse auf SAP HANA«, steht Ihnen damit das grundlegende Handwerkszeug zur Verfügung, das Sie aus unserer Sicht als ABAP-

  • 25

    Einleitung

    Entwickler im Kontext von SAP HANA kennen sollten. Zum Abschluss des zweiten Teils setzen wir in Kapitel 8, »Beispielszena-rio: Optimierung einer bestehenden Anwendung«, die vorgestellten Techniken und Werkzeuge ein, um eine existierende ABAP-Imple-mentierung schrittweise für SAP HANA zu optimieren.

    Dritter TeilIm dritten Teil des Buches, »Fortgeschrittene Techniken für die ABAP-Programmierung auf SAP HANA«, stellen wir Ihnen einige umfassen-dere Funktionen in SAP HANA vor, die in der klassischen ABAP-Ent-wicklung nicht zur Verfügung stehen. Die Kapitel des dritten Teils set-zen dabei auf den Inhalten des zweiten Teils auf, sind aber voneinander unabhängig lesbar. Wir beginnen in Kapitel 9, »Textsu-che und Analyse von unstrukturierten Daten«, mit der Nutzung der Fuzzy-Suche in SAP HANA und zeigen Ihnen, wie Sie damit z. B. Wer-tehilfen innerhalb einer ABAP-Anwendung verbessern können. Danach stellen wir in Kapitel 10, »Integration analytischer Funktio-nalität«, die Fähigkeiten der eingebetteten SAP NetWeaver BW-Tech-nologie im Zusammenspiel mit ABAP-Entwicklungen auf SAP HANA und existierenden Business-Intelligence-Produkten von SAP vor. Mit-hilfe von Entscheidungstabellen in SAP HANA, deren Verwendung wir in Kapitel 11, »Entscheidungstabellen in SAP HANA«, vorstellen, können Sie Teile einer Anwendung über Regeln flexibel gestalten. Als letztes Element zeigen wir Ihnen in Kapitel 12, »Funktionsbibliothe-ken in SAP HANA«, wie Sie z. B. statistische Funktionen für Vorher-sagen (Predictive Analysis) in eine ABAP-Anwendung einbinden kön-nen. Schließlich erstellen wir in Kapitel 13, »Beispielszenario: Entwicklung einer neuen Anwendung«, eine kleine Beispielanwen-dung, die die Innovationen von SAP HANA mit ABAP-Transaktionen verbindet. Zum Abschluss des Buches werden wir in Kapitel 14, »Pra-xistipps«, unsere Empfehlungen für die Optimierung und Neuent-wicklung von ABAP-Anwendungen auf SAP HANA übersichtlich zusammenstellen.

    Einsatz neuer Techniken

    Wie Sie bei der Lektüre merken werden, bietet die HANA-Plattform ein großes Spektrum an Möglichkeiten. Nicht alle vorgestellten Ele-mente müssen Sie zwingend in ABAP-Eigenentwicklungen auf SAP HANA einsetzen. Für manche der neuartigen Funktionen ist aktuell der Einsatz von Low-Level-Techniken im ABAP-Anwendungsserver (z. B. natives SQL) notwendig, die Sie in der Vergangenheit mögli-cherweise eher selten genutzt haben. Wir sind aber davon überzeugt, dass gerade in der Nutzung der neuen Möglichkeiten ein großes

  • 26

    Einleitung

    Innovationspotenzial für Neuentwicklungen liegt, und verfolgen daher in einigen der in diesem Buch gezeigten Beispiele einen gewis-sen Pionieransatz.

    Beispiel-datenmodell

    Als Beispiel verwenden wir das Flugdatenmodell in SAP NetWeaver (auch SFLIGHT-Modell genannt), das die Basis vieler Schulungen, Dokumentationen und Fachbücher zu SAP ERP war und ist. Aufgrund seiner Bekanntheit lassen sich die Neuerungen und Paradigmenwech-sel, die SAP HANA mit sich bringt, anhand dieses Beispiels besonders gut erläutern. Das zugrunde liegende betriebswirtschaftliche Szena-rio (Fluggesellschaften und Reisebüros) ist auch gut geeignet, um Echtzeitaspekte zu erläutern, da die Reisebranche in den letzten Jah-ren durch Globalisierung und das Internet starken Veränderungen unterworfen gewesen ist und die Datenmengen im Zusammenhang mit Flugplänen, Buchungen und Passagieren stetig gewachsen sind.

    Hinweise zur Lektüre

    In diesem Buch finden Sie mehrere Orientierungshilfen, die Ihnen die Arbeit mit dem Buch erleichtern sollen.

    In hervorgehobenen Informationskästen sind Inhalte zu finden, die wissenswert und hilfreich sind, aber etwas außerhalb der eigentli-chen Erläuterung stehen. Damit Sie die Informationen in den Kästen sofort einordnen können, haben wir die Kästen mit Symbolen gekennzeichnet:

    Die mit diesem Symbol gekennzeichneten Tipps geben Ihnen spezi-elle Empfehlungen, die Ihnen die Arbeit erleichtern können.

    In Kästen, die mit diesem Symbol gekennzeichnet sind, finden Sie Informationen zu weiterführenden Themen oder wichtigen Inhalten, die Sie sich merken sollten.

    Dieses Symbol weist Sie auf Besonderheiten hin, die Sie beachten soll-ten. Es warnt Sie außerdem vor häufig gemachten Fehlern oder Pro-blemen, die auftreten können.

    Beispiele, durch dieses Symbol kenntlich gemacht, weisen auf Szena-rien aus der Praxis hin und veranschaulichen die dargestellten Funk-tionen.

    Wir hoffen, dass wir Ihnen mit diesem Buch ein umfassendes Werk-zeug an die Hand geben können, das Sie bei der Nutzung der HANA-Technologie in ABAP-Programmen unterstützt, und wünschen Ihnen viel Spaß bei der Lektüre.

  • 27

    Einleitung

    Danksagung

    Wir möchten uns bei den folgenden Personen bedanken, die uns durch Diskussionen, Ratschläge und Feedback bei der Erstellung die-ses Buches unterstützt haben:

    Arne Arnold, Dr. Alexander Böhm, Ingo Bräuninger, Ralf-Dietmar Dittmann, Franz Färber, Markus Fath, Dr. Hans-Dieter Frey, Boris Gebhardt, Dr. Heiko Gerwens, Dr. Jasmin Gruschke, Martin Hartig, Vishnu Prasad Hegde, Rich Heilman, Thea Hillenbrand, Dr. Harshavardhan Jegadeesan, Thomas Jung, Bernd Krannich, Dr. Willi Petri, Eric Schemer, Joachim Schmid, Sascha Schwedes, Christiaan Edward Swanepoel, Welf Walter, Jens Weiler, Stefan Weitland, Tobias Wenner, Andreas Wesselmann

    Vielen Dank dafür – ohne eure Hilfe wäre dieses Buch nicht möglich gewesen.

    Hermann Gahm, Thorsten Schneider, Eric Westenberger

  • 161

    Mit SAP HANA ist es möglich, betriebswirtschaftliche Berech-nungen direkt auf den Originaldaten im Hauptspeicher ohne Transformationen durchzuführen. Viele solcher Berechnungen lassen sich als spezielle Datensichten (Views) über das SAP HANA Studio grafisch modellieren, ohne Programmcode schreiben zu müssen. Diese Views können mit ABAP 7.4 in das ABAP Dictionary importiert werden.

    4 View-Modellierung im SAP HANA Studio

    In diesem Kapitel beschäftigen wir uns mit dem Thema Datensichten (Views). Vielleicht fragen Sie sich, wieso gerade dieses Thema eine so große Rolle bei SAP HANA spielt. Lassen Sie uns kurz ausholen und das zugrundeliegende Konzept erklären.

    Geschäftsdaten einer Domäne werden (meist in einer normalisierten Form) in einem Satz von über Fremschlüsselbeziehungen verbunde-nen Datenbanktabellen abgelegt (ein sogenanntes Entity-Relationship-Modell). Dieses Datenmodell erlaubt ein effizientes und einfaches Anlegen und Auslesen von Einzelsätzen. Sobald aber Datenzugriffe dynamischer und komplexer werden oder gewisse Formen von Aus-wertungen oder Prüfungen gemacht werden sollen, ist eine Transfor-mation der Daten notwendig.

    Für diese Transformation hat sich in der Vergangenheit vor allem fol-gendes Muster entwickelt: Es werden zunächst Daten von der Daten-bank gelesen, anschließend werden über ein Programm Berechnun-gen durchgeführt, und schließlich wird das Ergebnis wieder in der Datenbank gespeichert. Man spricht dabei von Materialisierung der transformierten Daten.

    Ein einfaches Beispiel ist die Materialisierung von Summenberech-nungen in einer speziellen Spalte oder Summentabelle. Auch die Datenstrukturen eines Business-Intelligence-Systems, in dem die ur-sprünglichen Daten in eine für Analysezwecke effizientere Form

  • 162

    View-Modellierung im SAP HANA Studio4

    (Sternschema) gebracht werden, folgen im Prinzip diesem Muster. Die Hauptmotivation für diese Materialisierung war dabei stets Per-formance, da es in der Vergangenheit keine Möglichkeit gab, die Transformationen bei einer Anfrage eines Anwenders zur Laufzeit onthe fly durchzuführen. Der Preis für die verbesserte Performance waren dabei jedoch eine erhöhte Komplexität und der Verlust von Echtzeitqualitäten, da die verschiedenen Datenstrukturen synchroni-siert werden müssen, was in der Regel mit einem Zeitversatz ge-schieht. Es ist eines der zentralen Versprechen von SAP HANA, dass Sie in vielen Szenarien auf diese Redundanz verzichten können. Tech-nisch bedeutet das, dass Sie die Transformationen direkt auf den Ori-ginaldaten in Echtzeit durchführen können. Datensichten sind dabei ein wesentliches Element, um Transformationen für Lesezugriffe aus-zudrücken.

    SQL Views In jedem relationalen Datenbanksystem gibt es eine Möglichkeit, Views zu definieren. Diese Standard-Views, oder auch SQL Views, werden im Datenbankkatalog über die Anweisung CREATE VIEW als eine Art Alias für eine SQL-Abfrage definiert:

    CREATE VIEW AS SELECT

    SQL Views werden selbstverständlich auch in SAP HANA unterstützt und unterscheiden sich dabei von denen anderer Datenbanken nur durch den HANA-spezifischen SQL-Dialekt.

    Column Views Neben diesen SQL Views unterstützt SAP HANA auch sogenannte Column Views, die neben einer in der Regel besseren Performance auch einen deutlich größeren Funktionsumfang bieten und bei Abfra-gen von den in Abschnitt 1.3, »Architektur der In-Memory-Daten-bank«, vorgestellten Engines Gebrauch machen. Als Beispiel für eine solche Funktionalität, die nicht direkt über SQL verfügbar ist, können Sie sich eine Währungsumrechnung von Geldbeträgen vorstellen. Die Verwendung von Column Views setzt dabei voraus, dass alle ver-wendeten Tabellen im Column Store in SAP HANA abgelegt sind, was der Standard für praktisch alle Geschäftsdaten sein sollte (siehe auch Kapitel 14, »Praxistipps«). Im SAP HANA Studio finden Sie sowohl die vorhandenen SQL Views als auch die Column Views im Daten-bankkatalog (siehe Abbildung 4.1).

    In Abschnitt 3.2.2, »Open SQL«, haben Sie gesehen, wie sich einfache Vorschriften wie etwa Summation oder Existenzprüfungen mithilfe

  • 163

    View-Modellierung im SAP HANA Studio 4

    von Open SQL ausdrücken lassen. Kennzahlen in realen Geschäftsan-wendungen sind aber in der Regel deutlich komplizierter. Zum Bei-spiel spielen Einheiten und Währungen eine wesentliche Rolle, die bei mathematischen Operationen etwa durch den Einsatz von Kon-vertierungen beachtet werden müssen. Ebenso sind Zeitstempel (Tag, Uhrzeit) für Geschäftsprozesse von fundamentaler Bedeutung – inklusive der fiskalisch korrekten Behandlung von (Geschäfts-)Jahr bzw. Monat oder Quartal.

    Abbildung 4.1 SQL Views und Column Views im Datenbankkatalog

    Bei diesen Operationen stößt der normale SQL-basierte Zugriff auf Tabellen an seine Grenzen. Hier kommt nun eine der wesentlichen Stärken von SAP HANA zum Einsatz: die integrierten Engines (siehe Abschnitt 1.3, »Architektur der In-Memory-Datenbank«) bieten wie-derverwendbare und auf Unternehmensprozesse zugeschnittene Funktionen, die sich in Column Views einbinden lassen und auf die von außen wiederum über herkömmliches SQL zugegriffen werden kann. Column Views bieten damit also eine Erweiterung des Funkti-onsumfangs zur Definition von Datensichten.

    Referenzbeispiel für dieses Kapitel

    Im Rahmen dieses Kapitels werden wir basierend auf dem SFLIGHT-Datenmodell relativ einfache Analysen von Flugbuchungen und Sitz-platzauslastung von Flügen erstellen. Dabei sollen neben einigen Stammdaten einer Flugverbindung (Fluggesellschaft, Abflug- und Zielort) pro Quartal gewisse statistische Informationen zu Sitz-platzauslastung, Einnahmen und Reisegepäck ausgewiesen werden. Für die Realisierung werden wir die verschiedenen Modellierungsop-tionen von SAP HANA verwenden und Ihnen deren Eigenschaften und Einsatzgebiete vorstellen.

  • 164

    View-Modellierung im SAP HANA Studio4

    View-Typen Wir gehen dabei auf folgende Arten von Views ein:

    � Attribute Views zur Definition von Sichten auf Stammdaten (siehe Abschnitt 4.1). Wir stellen Ihnen die verschiedenen Möglichkeiten zum Join von Tabellen vor und erklären, wie Sie berechnete Attri-bute in eine Sicht aufnehmen können.

    � Analytic Views erlauben Berechnungen und Analysen auf Bewe-gungsdaten, basierend auf einem Sternschema (siehe Abschnitt 4.2).Wir erklären Ihnen, wie Sie einfache und berechnete Kennzahlen definieren und Dimensionen hinzufügen. Als Spezialfälle von berechneten Kennzahlen werden Sie Währungsumrechnungen und Einheitenkonvertierungen kennenlernen.

    � Calculation Views erlauben eine freie Kombination von Views und elementaren Operationen auf Daten (siehe Abschnitt 4.3). Wir stellen Ihnen sowohl die Modellierung als auch die Implementie-rung von Calculation Views mit SQLScript vor. Wir beschränken uns dabei in diesem Kapitel auf eine sehr einfache Implementie-rung, da wir Ihnen SQLScript erst im Rahmen von Kapitel 5, »Pro-grammieroptionen in SAP HANA«, ausführlich vorstellen werden.

    Nachdem wir Ihnen gezeigt haben, wie Sie diese Views im SAP HANA Studio definieren und testen können, gehen wir auf den externen Zugriff ein. Wir zeigen Ihnen dabei zunächst den Zugriff aus Micro-soft Excel, der für erste Tests und Analysen eine einfache Möglichkeit darstellt.

    Der restliche Teils des Kapitels beschäftigt sich mit dem Zugriff aus ABAP auf diese Views. Wir zeigen Ihnen dabei sowohl den nativen Zugriff über ABAP Database Connectivity (ADBC), der für ABAP-Releases unterhalb von 7.4 die einzige Option ist, als auch die neuen Möglichkeiten, die Sie mit ABAP 7.4 nutzen können.

    4.1 Attribute Views

    Übersicht und Einsatzszenarien

    Attributsichten (Attribute Views) bestehen aus einer Menge von Fel-dern (Spalten) aus Datenbanktabellen, die durch Fremdschlüsselbe-ziehungen in Relation stehen. Darüber hinaus bieten Attribute Views Möglichkeiten zur Definition von berechneten Spalten und hierarchi-schen Beziehungen zwischen einzelnen Feldern (z. B. Vater-Kind-Beziehung). Sie sind vor allem in folgenden Szenarien von Bedeutung:

  • 165

    Attribute Views 4.1

    � Als Bauteile anderer View-Typen, insbesondere als Dimensionenvon analytischen Sichten (siehe Abschnitt 4.2, »Analytic Views«) oder allgemeiner als Knoten in berechneten Sichten (siehe Abschnitt 4.3, »Calculation Views«).

    � Als Datenlieferant für eine Textsuche über mehrere Tabellen (siehe Kapitel 9, »Textsuche und Analyse von unstrukturierten Daten«).

    Referenzbeispiele für diesen Abschnitt

    Um die verschiedenen funktionalen Aspekte von Attribute Views zu demonstrieren, bauen wir in diesem Abschnitt mehrere solcher Views, da nicht alle Funktionen für beliebige Tabellen möglich bzw. sinnvoll sind. Damit Sie nicht den Überblick verlieren, sind in Tabel-le 4.1 die in den Beispielen dieses Abschnitts vorkommenden Views mit Namen und Beschreibungen aufgeführt.

    Die Views AT_FLIGHT, AT_PASSENGER und AT_TIME_GREG werden wir in Abschnitt 4.2, »Analytic Views«, weiterverwenden.

    4.1.1 Grundlagen

    Join EngineBevor wir Ihnen die Modellierung von Attribute Views vorstellen, gehen wir kurz auf die wesentlichen Konzepte und Begriffe ein.

    Spalte Beschreibung Funktionalität

    AT_FLIGHT_BASIC einfache Sicht auf die Tabelle SFLIGHT

    erstes einfaches Beispiel

    AT_FLIGHT Flugdaten angereichert durch Information aus dem Flugplan und zu Fluggesellschaften

    verschiedene Join-Typen und berechnete Felder

    AT_MEAL Liste der auf Flügen servierten Mahlzeiten mit sprachabhän-gigem Text

    Text Joins und Filterwerte

    AT_PASSENGER Sicht auf Passagierdaten mit Adresse

    Hierarchie

    AT_FLIGHT_FISCAL Flüge mit Zuordnung zu Geschäftsperioden

    fiskalischer Kalender

    AT_FLIGHT_GREG Flüge mit Zuordnung zu Jahr, Quartal, Kalenderwoche

    gregorianischer Kalender

    AT_TIME_GREG reine Zeithierarchie (Jahr, Quartal, Kalenderwoche)

    Attribute View vom Typ Time

    Tabelle 4.1 Attribute-View-Beispiele in diesem Abschnitt

  • 166

    View-Modellierung im SAP HANA Studio4

    Einen Attribute View kann man alternativ auch als Join View bezeich-nen, da er es erlaubt, eine Sicht auf Daten aus mehreren Tabellen zu erstellen, die über verschiedene Arten von Joins zueinander in Bezie-hung gesetzt werden. Die unterschiedlichen Join-Typen stellen wir Ihnen in diesem Abschnitt vor. Da Joins bei Attribute Views die Hauptrolle spielen, werden die Zugriffe auf Attribute Views von der Join Engine in SAP HANA bearbeitet.

    Wichtige Begriffe Bei der Modellierung von Attribute Views werden folgende Begriffe unterschieden:

    � Attribute bezeichnen die Spalten des Attribute Views. Dabei kön-nen Sie Spalten aus einer oder mehreren physischen Tabellen aus-wählen oder zusätzlich berechnete Spalten definieren.

    � Schlüsselfelder (Key Attributes) sind jene Attribute des Views, die einen Eintrag eindeutig spezifizieren und für die Verwendung als Dimensionen von Analytic Views eine Rolle spielen (siehe Abschnitt 4.2.2, »Analytic Views anlegen«).

    � Filter sind Einschränkungen auf den Werten einer Spalte analog zu einer WHERE-Bedingung bei einer SELECT-Anweisung.

    � Hierarchien sind Relationen auf den Attributen wie etwa eine Vater-Kind-Beziehung (siehe Abschnitt 4.1.4, »Hierarchien«).

    Der wesentliche Nutzen von Attribute Views besteht darin, eine Sicht auf Felder aus mehreren Tabellen zu definieren. Im Gegensatz zu den in Abschnitt 3.2.3, »Datenbank-Views im ABAP Dictionary«, vorge-stellten Views im ABAP Dictionary, die nur Inner Joins enthalten können, können Sie bei Attribute Views in SAP HANA auf ein größe-res Spektrum von Join-Typen zurückgreifen.

    Beispieldaten Bevor wir praktisch auf die Details der Join-Modellierung eingehen, möchten wir Ihnen die verschiedenen Join-Typen im SQL-Standard zunächst vorstellen. Dazu betrachten wir die bekannten Tabellen SFLIGHT (Flüge) und SCARR (Fluggesellschaften), die eine Fremd-schlüsselbeziehung über das Feld CARRID besitzen (wir klammern im in Tabelle 4.2 dargestellten Ausschnitt den Mandanten der Einfach-heit halber kurz aus). Die Tabellen haben eine n:1-Beziehung, und es kann Fluggesellschaften in Tabelle SCARR geben, für die kein Flug in der Tabelle SFLIGHT eingetragen ist (in Tabelle 4.2 z. B. die Airline »UA«).

  • 167

    Attribute Views 4.1

    Inner und Outer Join

    Bei der Definition von Joins muss zwischen inneren und äußeren Joins unterschieden werden. Bei einem Inner Join werden alle Kom-binationen in das Resultat übernommen, wenn es in beiden Tabellen einen passenden Eintrag gibt. Bei einem Outer Join werden auch Ergebnisse übernommen, die entweder nur in der linken Tabelle (Left Outer Join), nur in der rechten (Right Outer Join) oder in einer beliebigen Tabelle (Full Outer Join) vorkommen. Links und rechts werden dabei anhand der Join-Reihenfolge unterschieden. Der Full Outer Join wird für Attribute Views nicht unterstützt.

    SQL-BeispieleAnhand der folgenden SQL-Beispiele zur Selektion der Flüge und der zugehörigen Namen der Fluggesellschaften erklären wir die Unter-schiede. Das erste Beispiel enthält einen Inner Join. Da die Fluggesell-schaft »UA« nicht in der Tabelle SFLIGHT vorkommt, findet sich kein zugehöriger Eintrag in der Ergebnismenge:

    select s.carrid, s.connid, c.carrname from sflight as s inner join scarr as c on s.carrid = c.carrid

    Bei einem Right Outer Join, bei dem SCARR die rechte Tabelle ist, wird ein Eintrag zur Fluggesellschaft »UA« in der Ergebnismenge ausgege-ben, obwohl es in Tabelle SFLIGHT keinen zugehörigen Eintrag gibt. Die Spalten carrid und connid haben damit den Wert NULL:

    select s.carrid, s.connid, c.carrname from sflight as s right outer join scarr as c on s.carrid = c.carrid

    Analog ist bei einem Left Outer Join mit SCARR als linker Tabelle »UA« ebenfalls Teil der Ergebnismenge. Falls im Datenmodell sichergestellt ist, dass es zu jedem Eintrag eines Fluges eine zugehörige Fluggesell-schaft gibt (aber umgekehrt nicht notwendigerweise), sind die beiden Outer-Join-Varianten funktional äquivalent.

    Tabelle SFLIGHT Tabelle SCARR

    CARRID CONNID FLDATE CARRID CARRNAME

    AA 0017 20130101 AA American Airlines

    ... ... ... ... ...

    LH 400 20130101 LH Lufthansa

    LH 400 20130102 ... ...

    ... ... ... UA United Airways

    Tabelle 4.2 Beispieldaten aus den Tabellen SFLIGHT und SCARR zur Erklärung der Join-Typen

  • 168

    View-Modellierung im SAP HANA Studio4

    select s.carrid, s.connid, c.carrname from scarr as c left outer join sflight as s on s.carrid = c.carrid

    Text Joins und Referential Joins

    Neben den vorgestellten Standard-Joins werden bei der Modellie-rung von Attribute Views in SAP HANA zwei weitere spezielle Join-Typen verwendet:

    � Text Joins bieten die Möglichkeit, sprachabhängige Texte aus einer anderen Tabelle zuzulesen. Dabei müssen Sie in der Texttabelle die Spalte mit dem Sprachenschlüssel ausweisen, und zur Laufzeit wird basierend auf dem Kontext auf die richtige Sprache gefiltert. Ein Beispiel für die Verwendung von Text Joins finden Sie im nächsten Abschnitt.

    � Referential Joins sind eine spezielle Art der Bestimmung eines Inner Joins, wobei implizit referenzielle Integrität angenommen wird, was Vorteile bezüglich der Laufzeit bringt. Wenn also kein Feld aus der rechten Tabelle angefragt wird, wird bei einem Refer-ential Join nicht überprüft, ob es überhaupt einen passenden Ein-trag gibt. Es wird angenommen, dass die Daten konsistent sind. Der Referential Join ist in vielen Fällen ein sinnvoller Standard bei der Definition von Joins in Attribute Views.

    4.1.2 Attribute Views anlegen

    Attribute Views können Sie über die in Abschnitt 2.4.3, »SAP HANA Studio«, vorgestellte Perspektive Modeler im SAP HANA Studio defi-nieren. Um einen View anzulegen, wählen Sie im Kontextmenü eines Pakets im Content-Knoten New � Attribute View. Zunächst müssen Sie im in Abbildung 4.2 gezeigten Dialog einen Namen und eine Beschreibung auswählen.

    Sie können in dem Dialog auch einen Attribute View als Kopie eines bereits existierenden Views anlegen. Die Auswahloption Subtypeerlaubt die Erstellung spezieller Arten von Attribute Views z. B. für Zeithierarchien, auf die wir in Abschnitt 4.1.5, »Attributsichten für

    Attribute Views unterstützen nur Equi-Joins

    Bei der Formulierung einer Join-Bedingung ist es in SQL möglich, neben einer Überprüfung der Gleichheit von Spalten (Equi-Join) auch andere Ausdrücke zu verwenden (z. B. ), wie im folgenden Beispiel:SELECT ... FROM ... [INNER|OUTER] JOIN ... ON col1 < col2 ...

    Attribute Views unterstützen allerdings nur Equi-Joins.

  • 169

    Attribute Views 4.1

    Zeit«, eingehen. Nach einem Klick auf den Button Finish wird der Attri-bute View angelegt und der Editor für die Modellierung geöffnet.

    Abbildung 4.2 Anlegen eines Attribute Views

    Modellierungs- editor

    Der Editor für die Definition eines Attribute Views besteht aus zwei Bereichen: Data Foundation und Semantics. Diese sind im Editor als Kästen in dem Bereich Scenario auf der linken Seite repräsentiert (siehe Abbildung 4.3). Durch Selektion des jeweiligen Knoten wech-seln Sie zwischen der Definition der Datenbasis (Data Foundation) und der semantischen Konfiguration (Semantics). In der Data Foun-dation fügen Sie Tabellen hinzu, definieren die Joins und fügen die Attribute hinzu. In Abbildung 4.3 sehen Sie ein einfaches Beispiel, das auf der Tabelle (SFLIGHT) basiert.

    Abbildung 4.3 Definition der »Data Foundation«

  • 170

    View-Modellierung im SAP HANA Studio4

    Metadaten definieren

    Wenn Sie den Knoten Semantics auswählen, können Sie weitere Metadaten für den Attribute View pflegen. Dazu gehören die folgen-den Angaben:

    � Sie können auswählen, ob ein Attribut ein Schlüsselfeld des Views ist. Beachten Sie, dass jeder Attribute View mindestens ein Schlüs-selfeld besitzen muss. Darüber hinaus können Sie für Attribute Texte (Labels) definieren oder auch Attribute verstecken, was im Kontext von berechneten Feldern sinnvoll sein kann (siehe Abschnitt 4.1.3, »Berechnete Felder«).

    � Sie können die Behandlung des Mandantenfeldes festlegen (stati-scher Wert oder dynamisch). Wir kommen am Ende dieses Abschnitts auf die Details der Mandantenbehandlung zurück.

    � Sie können Hierarchien definieren (siehe dazu Abschnitt 4.1.4, »Hierarchien«).

    Der Aufbau des Bereichs Semantics ist in Abbildung 4.4 zu sehen.

    Abbildung 4.4 Weitere semantische Konfiguration des Attribute Views

    Die selektierten Spalten aus der Tabelle SFLIGHT sind als Schlüsselfel-der ausgezeichnet. Wie in Abschnitt 2.4.3, »SAP HANA Studio«, beschrieben, müssen Sie den Attribute View nun speichern und akti-vieren, um ihn verwenden zu können.

  • 171

    Attribute Views 4.1

    AktivierungsfehlerFalls Sie bei der Modellierung einen Fehler gemacht haben, wird ein Aktivierungsfehler ausgegeben. Typische Fehler sind das Fehlen von Schlüsselfeldern, ungültige Joins oder Fehler bei der Definition von berechneten Feldern. In Abbildung 4.5 ist ein Beispiel dargestellt. Nicht in allen Fällen ist die Ursache eines Fehlers so offensichtlich. Wir werden in Abschnitt 4.5.4, »Empfehlungen«, einige Tipps zur Fehlersuche geben.

    Abbildung 4.5 Beispiel für einen Aktivierungsfehler

    Hintergrundinformation: Bestimmung des Mandanten

    Für jede Datenbankverbindung gibt es einen sogenannten Session-Kon-text, der gewisse Eigenschaften der aktuellen Verbindung speichert. Dazu gehört insbesondere der aktuelle Mandant, der im Falle einer Verbindung durch den SAP NetWeaver AS ABAP von der DBSL gesetzt wird. Beim Data Preview oder einer Verbindung über die SQL-Konsole im SAP HANA Stu-dio hängt der Mandant an den Benutzereinstellungen. Sie können dort für einen Benutzer einen Standardmandanten angeben. Falls dort kein Man-dant angegeben ist, gibt es keinen Mandantenkontext, und bei einem Data Preview sehen Sie alle Daten (mandantenübergreifend). Wir werden in Kapitel 5, »Programmieroptionen in SAP HANA«, detaillierter auf den Session-Kontext eingehen.

  • 172

    View-Modellierung im SAP HANA Studio4

    Mandanten-behandlung

    Falls die verwendeten Tabellen mandantenabhängig sind, können Sie konfigurieren, ob der Mandant entweder basierend auf dem aktuel-len Kontext in die Filterbedingung eingehen soll (Dynamic DefaultClient) oder nicht (cross-client). Alternativ können Sie auch einen statischen Wert für den Mandanten angeben. Wir werden Ihnen in Abschnitt 4.5.4, »Empfehlungen«, Tipps für die Verwendung geben.

    View SFLIGHTS als Attribute View

    Nach diesem kurzen Abriss über Join-Typen wollen wir jetzt Attri-bute Views definieren. Als erstes Beispiel möchten wir den View SFLIGHTS aus dem ABAP Dictionary, den Sie in Abschnitt 3.2.3, »Datenbank-Views im ABAP Dictionary«, schon kennengelernt haben, als Attribute View definieren. Basierend auf unserem Beispiel aus Abbildung 4.3, können wir in der Data Foundation weitere Tabellen hinzufügen. Diese Tabellen können Sie entweder manuell auswählen oder sich Tabellen basierend auf den im ABAP Dictionary gepflegten Metadaten vorschlagen lassen. Selektieren Sie dazu die Tabelle, und wählen Sie im Kontextmenü den Eintrag ProposeTables. Daraufhin öffnet sich der Auswahldialog aus Abbildung 4.6.

    Abbildung 4.6 Vorschlagswerte für die Definition von Joins

    Tabellen auswählen und Joins definieren

    Um den View SFLIGHTS nachzubauen, nehmen wir die Tabellen SCARR und SPFLI hinzu und definieren die Joins, wie in Abbildung

  • 173

    Attribute Views 4.1

    4.7 dargestellt. Um einen neuen Join zu definieren, ziehen Sie mit festgehaltener Maustaste einfach eine Verbindungslinie zwischen den korrespondierenden Attributen aus zwei Tabellen. Um die Eigen-schaften eines Joins zu definieren, müssen Sie ihn zunächst selektie-ren und können anschließend die Konfiguration über den Bereich Properties vornehmen (Join Type, Cardinality). Wir verwenden für unser Beispiel den Referential Join und wählen »n:1« als Kardinalität.

    Attribute hinzufügen

    Danach fügen Sie die gewünschten Attribute aus den Tabellen über das Kontextmenü der Ausgabestruktur des Views hinzu. Die ausge-wählten Attribute werden anschließend hervorgehoben und erschei-nen im Bereich Output auf der rechten Seite des Editors.

    Abbildung 4.7 Attribute View analog zum DDIC View SFLIGHTS

    View aktivierenDa wir die Schlüsselfelder bereits zuvor definiert haben und diese sich durch das Hinzunehmen von Tabellen nicht geändert haben, können wir den View jetzt aktivieren und testen. Das Ergebnis liefert für jeden Flug den Namen der Fluggesellschaft und Informationen zu Abflugort und Zielort (siehe Abbildung 4.8).

  • 174

    View-Modellierung im SAP HANA Studio4

    Abbildung 4.8 Resultat des Attribute Views

    Verwendung von Text Joins

    Für eine Illustration der Verwendung des erwähnten Text Joins legen wir einen weiteren Attribute View an und lesen zu den Mahlzeiten (Tabelle SMEAL) die zugehörigen Texte dazu (Tabelle SMEALT). Die not-wendige Modellierung ist in Abbildung 4.9 dargestellt. Die Kardina-lität für den Join ist stets 1:1, da ja über die Sprache gefiltert wird.

    Abbildung 4.9 Verwendung eines Text Joins

    Definition von Filterwerten

    Wie bei normalen SQL Views können Sie auch bei Attribute Views Filterwerte für Spalten angeben. Dazu öffnen Sie für ein Attribut den Filterdialog über den Kontextmenüeintrag Apply Filter und definie-

  • 175

    Attribute Views 4.1

    ren den Filter. Ein Attribut mit einem vorhandenen Filter ist, wie in Abbildung 4.10 erkennbar, durch ein Filtersymbol markiert.

    Abbildung 4.10 Filter für ein Attribut

    Für das Beispiel mit den auf dem Flug servierten Mahlzeiten definieren wir einen Filter auf das Attribut MEAL_TYPE mit Gleichheit zu dem Wert »VE« (vegetarisch). Sie können alternativ auch andere Vergleichs-operatoren ausprobieren. Der Data Preview zeigt alle vegetarischen Mahlzeiten mit den zugehörigen Texten in der richtigen Sprache:

    Abbildung 4.11 Beispiel für einen Text Join mit zusätzlichem Filter

    4.1.3 Berechnete Felder

    Virtuelle AttributeNachdem Sie im vorangegangenen Abschnitt gesehen haben, wie Sie über einen Attribute View Daten aus verschiedenen Tabellen unter Verwendung verschiedener Join-Typen lesen können, wollen wir

  • 176

    View-Modellierung im SAP HANA Studio4

    nun einen Schritt weiter gehen und Spalten des Views dynamisch berechnen lassen. Die Möglichkeit im SAP HANA Studio, solche vir-tuellen Attribute, d. h. Attribute, die nicht direkt zu einer Spalte einer der physischen Tabellen gehören, zu definieren, erlaubt im Vergleich zu klassischen ABAP-Dictionary-Views völlig neue Szenarien.

    Wir wollen dem Attribute View AT_FLIGHT aus Abbildung 4.7 ein weiteres berechnetes Attribut hinzufügen, das als Wert die vollstän-dige Flugverbindung, bestehend aus Abflugort und Flughafen sowie Zielort und Flughafen, enthält: »NEW YORK (JFK) – SAN FRANCISCO (SFO)«.

    Berechnetes Attribut definieren

    Dazu definieren wir in der Data Foundation über den Knoten Cal-culated Columns im Bereich Output ein berechnetes Attribut und wählen einen Namen, eine Beschreibung sowie einen Datentyp aus (siehe Abbildung 4.12).

    Abbildung 4.12 Definition eines berechneten Feldes

    Ausdruck für Berechnung

    definieren

    Über den Expression Editor können Sie einen Ausdruck hinterle-gen, der zur Bestimmung des Wertes herangezogen wird. Dabei steht

  • 177

    Attribute Views 4.1

    eine Vielzahl von Funktionen zur Verfügung (Konvertierungen, mathematische Operationen, Zeichenkettenoperationen, Datumsbe-rechnungen und sogar einfache Fallunterscheidungen). In unserem Beispiel beschränken wir uns zunächst auf eine einfache Verkettung von Strings (siehe Listing 4.1):

    "CITYFROM" + ' (' + "AIRPFROM" + ') – ' + "CITYTO" + ' (' + "AIRPTO" + ')'

    Listing 4.1 Beispiel für einen Ausdruck für ein berechnetes Feld

    Ausgabe des berechneten Feldes

    Nach der Aktivierung unseres Attribute Views sehen Sie die berech-nete Spalte in der Ausgabe (siehe Abbildung 4.13). Berechnete Spal-ten lassen sich über SQL genauso abfragen wie normale Spalten, was wir Ihnen in Abschnitt 4.1.6, »Laufzeitobjekte und SQL-Zugriff bei Attribute Views«, zeigen werden.

    Abbildung 4.13 Ausgabe des berechneten Feldes

    Attributreferenzen und Konstanten bei Ausdrücken

    Bei der Definition der Ausdrücke (Expressions) für berechnete Attribute müssen Sie aufpassen, dass Sie die richtige Art von Anführungszeichen ver-wenden. Eine Referenz auf ein Attribut des Views (z. B. "CITYFROM" in Lis-ting 4.1) muss in doppelten Anführungszeichen stehen. Hier bietet sich ein Drag & Drop über den Formeleditor an. Eine Textkonstante hingegen muss in einfache Anführungszeichen gesetzt werden – wie etwa bei den Klam-mern aus Listing 4.1.

    Eine falsche Verwendung der Anführungszeichen führt in der Regel zu einem Aktivierungsfehler.

  • 178

    View-Modellierung im SAP HANA Studio4

    Berechnete Felder werden auch für die anderen View-Typen unter-stützt (siehe auch Abschnitt 4.2, »Analytic Views«), bei denen insbe-sondere die bereits erwähnten Berechnungen und Konvertierungen für Währungen und Maßeinheiten über berechnete Felder abgebildet werden.

    4.1.4 Hierarchien

    In vielen Daten gibt es hierarchische Beziehungen. Der Wohnort oder der Firmensitz von Kunden ist geografisch nach Land, Region und Stadt aufgebaut, ein Anlagedatum einer Bestellung hat durch Jahr, Quartal und Monat eine hierarchische Struktur, ein Produktkatalog kann über Kategorien aufgebaut sein etc.

    Datenanalysen Hierarchien spielen bei Datenanalysen eine wichtige Rolle. Sie erlau-ben es mit einer aggregierten Sicht auf die Daten einzusteigen und dann entlang der hierarchischen Struktur zu navigieren. Man spricht dabei von Drill-down (oder auch Drill-up bei der Verdichtung). Jede OLAP-Infrastruktur wie auch SAP NetWeaver BW hat eine einge-baute Unterstützung für Hierarchien.

    Hierarchien in SAP HANA

    Für Attribute Views können Sie Hierarchien über den Bereich Semanticsdefinieren. SAP HANA unterstützt derzeit zwei Arten von Hie-rarchien:

    � Vater-Kind-(Parent/Child-)Beziehungen: Hier müssen Sie zwei Attribute definieren, die in einer Vater-Kind-Beziehung stehen. Ein Beispiel dafür wäre die Ablage einer Ver-zeichnisstruktur in einer Tabelle. Wichtig ist dabei, dass es sich um eine vollständige und konsistente Selbstrelation handelt. Jeder Vaterknoten muss existieren, und (bis auf einen speziellen Wurzel-knoten) muss jeder Vaterknoten selbst wieder ein Kindknoten eines anderen Knotens sein. Dies schränkt die Verwendung dieses Hierarchietyps insbesondere für ABAP-Tabellen stark ein. Als Bei-spiel können Sie sich etwa die ABAP-Pakethierarchie vorstellen, bei der die zugehörige Datenbanktabelle (TDEVC) Spalten für den Paketnamen und den Namen des Oberpakets beinhaltet. Diese Spalten bilden eine Vater-Kind-Relation.

    � Gelevelte Hierarchie (Level Hierarchy): Hier definieren Sie Hierarchieebenen, basierend auf normalen oder berechneten Attributen. Wenn eine Tabelle z. B. Spalten für das Land und die Stadt enthält, definieren diese Attribute eine Hie-

  • 179

    Attribute Views 4.1

    rarchie aus mehreren Leveln, bestehend aus den Ländern und dar-unter den zugehörigen Städten. Die Attribute bilden auf der ande-ren Seite keine Vater-Kind-Hierarchie, denn ansonsten müssten die Werte für Städte auch als Länder auftauchen (es handelt sich nicht um eine Selbstrelation im obigen Sinne).

    Hierarchie anlegenExistierende Hierarchien sehen Sie im Bereich Semantics und kön-nen von dort auch neue Hierarchien anlegen. Abbildung 4.14 zeigt eine Level-Hierarchie, basierend auf den Attributen des Abflugorts (Land, Stadt, Flughafen) aus der Tabelle SPFLI. Hierarchien können Sie hier auch für Calculation Views definieren (siehe Abschnitt 4.3).

    Abbildung 4.14 Hierarchie in einem Attribute View

    Sie haben verschiedene Möglichkeiten, die modellierten Hierarchien einzusetzen. Insbesondere werten die unterstützten Business-Intelli-gence-Clients diese Informationen aus. Wir zeigen Ihnen eine Vari-ante in Abschnitt 4.4, »Zugriff auf Column Views über Microsoft Excel«.

    Grenzen der Hierarchieunter-stützung

    SAP HANA bietet damit eine Basisunterstützung für einfache Hierar-chien, ist aber im Vergleich zu einer vollen Hierarchiemodellierung, wie es sie etwa in SAP NetWeaver BW gibt, relativ eingeschränkt. In vielen realen Szenarien sind Hierarchien leider komplizierter, und es gibt Spezialfälle, wie etwa externe oder unvollständige Hierarchien. Dieses Thema wird ausführlich in dem Buch Datenmodellierung inSAP NetWeaver BW von Frank K. Wolf und Stefan Yamada (SAP PRESS 2010) behandelt.

  • 180

    View-Modellierung im SAP HANA Studio4

    4.1.5 Attributsichten für Zeit

    In den meisten Geschäftsdaten gibt es einen zeitlichen Bezug, wie z. B. ein Anlagedatum oder eine Gültigkeit. Diese sind in der Regel im Datenmodell als Datumsfeld oder Zeitstempel realisiert. Im Flugda-tenmodell gibt es z. B. das Flugdatum in der Tabelle SFLIGHT oder den Buchungszeitpunkt in der Tabelle SBOOK. Für viele Analysen ist eine Zuordnung dieses Zeitpunkts zu einem gewissen Zeitintervall not-wendig. Dies kann im einfachsten Fall das zugehörige Jahr oder der Monat sein oder auch das Quartal oder die Kalenderwoche. Es gibt aber auch kompliziertere und vor allem konfigurierbare Zeitinter-valle wie das Geschäftsjahr (Fiskaljahr), das für gewisse Szenarien der führende Kalender ist.

    Geschäftsjahres- zuordnung

    Um in ABAP für ein Datum das zugehörige Geschäftsjahr zu bestim-men, war es in der Vergangenheit nötig, die Daten zunächst in den Anwendungsserver zu holen und dort die Umrechnung durchzufüh-ren. Es gab daher keine Möglichkeit, allein über Open SQL eine ag-gregierte Aufstellung von Datensätzen nach Geschäftsjahr zu erstellen.Die Ableitung des Geschäftsjahres musste immer in ABAP stattfinden. Über Attribute Views in SAP HANA können Sie diese Zuordnung zu Intervallen im normalen Kalender (gregorianischer Kalender) sowie im Fiskalkalender erledigen.

    Fiskaljahr-Customizing

    Die Konfiguration von Geschäftsjahren und Fiskalperioden erfolgt über das ABAP-Customizing. Dies erlaubt umfangreiche Einstellungen und Konfi-gurationen von Varianten sowie die Behandlung von Spezialfällen (z. B. ein verkürztes Geschäftsjahr bei einer Firmengründung). Sie finden diese Kon-figuration in Transaktion SPRO unter dem Eintrag Geschäftsjahresvari-ante pflegen.

    Für die Konvertierung eines normalen Datums (z. B. vom Typ DATS) in das zugehörige Geschäftsjahr und die Geschäftsperiode gibt es eine Reihe von Funktionsbausteinen im SAP-Standard.

    Technisch wird das zugehörige Customizing insbesondere in den Tabellen T009 und T009B abgelegt. Diese Tabellen sind normalerweise Pool-/Clus-ter-Tabellen und damit nicht direkt auf der Datenbank vorhanden. Die Umwandlung solcher Tabellen in normale Datenbanktabellen bei der Mi-gration auf SAP HANA (siehe auch Abschnitt 3.2.1, »ABAP Dictionary«) ist eine Voraussetzung dafür, dass auf solche Daten auch nativ in der Daten-bank zugegriffen werden kann.

  • 181

    Attribute Views 4.1

    Generierung von Kalenderdaten

    Dazu generieren wir zunächst Zeitdaten in speziellen technischen Tabellen in SAP HANA. Dies können Sie über den Eintrag GenerateTime Data auf dem Startschirm der Perspektive Modeler durchfüh-ren. Danach wählen Sie die Details im Hinblick auf Kalenderart und Zeitraum. Wir wählen hier die in Abbildung 4.15 dargestellte Konfi-guration zur Erzeugung des fiskalischen Kalenders im Zeitraum 2000 bis 2020.

    Abbildung 4.15 Generierung der Daten für den fiskalischen Kalender

    Nun können Sie die zugrunde liegende Tabelle M_FISCAL_CALENDAR(Schema _SYS_BI) in Attribute Views verwenden. Im Beispiel aus Abbildung 4.16 berechnen wir über den Attribute View für jeden Flug in der Tabelle SFLIGHT das zugehörige Geschäftsjahr und die Geschäftsperiode. Wir haben hier einen statischen Filter auf das Feld CALENDER_VARIANT gesetzt, da wir uns auf eine feste Variante aus dem ABAP-Customizing beschränken wollen.

    Quartal-/Kalenderwoche zuordnen

    Ein anderes Szenario ist z. B. die Bestimmung des Quartals oder der jeweiligen Kalenderwoche für ein gegebenes Datum über einen Attribute View. Dazu benötigen Sie die Daten im gregorianischen Kalender, die in SAP HANA in der technischen Tabelle M_TIME_DIMENSION ebenfalls im Schema _SYS_BI abgelegt sind und für die Sie analog zum Fiskalkalender auch zunächst Daten generieren müssen. Die Verwendung der Tabelle M_TIME_DIMENSION sehen Sie in Abbil-dung 4.17.

  • 182

    View-Modellierung im SAP HANA Studio4

    Abbildung 4.16 Bestimmung der Geschäftsperioden für Flugdaten

    Abbildung 4.17 Bestimmung von Quartal und Kalenderwoche

    Attribute View vom Typ »Time«

    Sie können auch einen kompletten Attribute View definieren, der nur die Zeitdaten enthält. Dazu wählen Sie beim Anlegen eines Attri-bute Views den Typ Time aus und selektieren die gewünschten Details zu dem Kalender. Abbildung 4.18 zeigt das Anlegen des Attri-bute Views AT_TIME_GREG für einen tagesbasierten gregorianischen Kalender.

    Der View enthält das Datum als Schlüsselfeld und erlaubt somit Joins über eine Datumsspalte in den Geschäftsdaten. Damit können Sie

  • 183

    Attribute Views 4.1

    diese Views als Zeitdimensionen in einem Analytic View verwenden, wenn das Datum Teil der Faktentabelle ist. Dies werden wir in Abschnitt 4.2, »Analytic Views«, ausführlich erläutern.

    Abbildung 4.18 Attribute View für gregorianischen Kalender

    4.1.6 Laufzeitobjekte und SQL-Zugriff bei Attribute Views

    Adressierung über SQL

    Wie in Abschnitt 2.4.3, »SAP HANA Studio«, beschrieben, entstehen bei der Aktivierung von Views aus dem SAP HANA Repository im Datenbankkatalog Column Views im Schema _SYS_BIC, die über nor-males SQL angesprochen werden können. Diese Column Views bil-den auch die Basis für den ABAP-Zugriff, wie Sie in Abschnitt 4.5, »Verwendung von SAP HANA Views in ABAP«, sehen werden. Die genauen Laufzeitobjekte hängen dabei vom View-Typ und der genauen Modellierung ab. In der Regel gibt es ein führendes Objekt, das für einen Zugriff als primäre Schnittstelle dient, und zusätzliche technische Objekte.

    Column ViewsIn diesem Abschnitt gehen wir auf die Spezifika bei Attribute Views ein. Zu jedem Attribute View gibt es zunächst einen zugehörigen Column View. Zusätzlich wird für jede Hierarchie ein weiterer Column View erzeugt. Für unseren Attribute View AT_FLIGHT finden Sie damit die in Abbildung 4.19 gelisteten Column Views im Daten-bankkatalog im Schema _SYS_BIC.

  • 591

    Index

    A

    ABAPABAP 7.4 567ABAP Unit 297ABAP-Anwendung, Transport 511ABAP-Code-Analyse 295, 348ABAP-Laufzeitumgebung 110ABAP-Projekt 81ABAP-Proxy 515ABAP-Ressourcen-URL 87ABAP-Tabellenpuffer � Tabellenpuf-

    ferABAP-Trace 297, 317, 368Schema 113Typsystem 117

    ABAP Connectivity and Integration Development Tools 75

    ABAP Core Development Tools 75ABAP Database Connectivity � ADBCABAP Development Tools for SAP Net-

    Weaver 34, 211ABAP-Ressourcen-URL 82, 83Abwärtskompatibilität 76Benutzereinstellungen 83Berechtigungen 80Code-Analyse 310Debugger 87favorisierte Pakete 82Komponenten 75Perspektiven 80Programm anlegen 84Programm ausführen 87Project Explorer 82Projekt 81SAP-GUI-Integration 82Systembibliothek 82Templates 85

    ABAP Dictionary 82, 108, 116, 209, 388Typsystem 118Wertehilfe 405

    ABAP List Viewer 447ABAP Memory 543ABAP Profiler 295, 319

    ABAP Test Cockpit 86, 275, 295, 308, 311

    ABAP-ProgrammAnalyse 361Ausführungszeit 361

    ABAP-Puffer, benutzerübergreifen-der 540

    Accelerator-Szenarien 56ACID-Prinzip 33ADBC 139, 257, 403, 508, 548Add-on Assembly Kit 273Administration Console 90AFL 36, 466, 468After-Import-Methode 276, 289Aggregatfunktion 131Alternativimplementierung 504ALV 463ALV, integrierter Datenzugriff 486Analytic Engine 423, 430

    Bericht-Bericht-Schnittstelle 433Formeln 433Hierarchieverarbeitung 432

    Analytic Privilege 99Analytic View 99, 164, 184, 434, 549

    anlegen 187Aufruf 370

    Analytical Search 374analytische Funktionalität 418analytische Query � BW Queryanalytischer Index 435Änderungsauftrag 273, 288Änderungsaufzeichnung 269, 273,

    278Änderungstransport 269Anweisungstransformation 149Anwendung, Optimierung 347, 351Anwendungslogik 60Anwendungsszenario

    Accelerator-Szenario 56integriertes 56, 58Side-by-Side-Szenario 56

    Appliance 31Application Function Library 36, 94,

    224, 466, 468Applikationsschicht 60

  • 592

    Index

    Array-Interface 548Attribut 166

    berechnetes 176, 190virtuelles 176

    Attribute View 99, 164, 166, 394, 491, 549

    Attributvektor 47, 573Aufrufhierarchie 323, 364Ausführungsplan � Explain PlanAusgabeparameter 515Ausnahmebehandler 256

    B

    BAdI 505B-Baum-Index 577Benutzeroberfläche, Baustein 447Berechtigung

    analytische 90, 519Paketberechtigung 90Prüfung 519SAP HANA Studio 90SQL-Berechtigung 90Systemberechtigung 90

    Berichtswesen 418Bewegungsdaten 185, 562BEx Query Designer 440BFL 36, 467Blocking Factor 154Breakpoint

    dynamischer 88externer 88statischer 88

    BRFplus 450BSP-Framework 488Business Function Library 36, 467Business Functions 33Business Rule Mining 466Business Server Pages (BSP) 488BW Query 423, 440, 445

    C

    Calculation Engine 225, 242Calculation View 99, 164, 196, 217,

    249, 434, 462, 491, 549implementierter 201modellierter 196SQLScript 196

    Callstack 323, 364Cashflow 469CE-Funktion 241, 370, 549

    CE_AGGREGATION 242, 245, 249CE_CALC 246CE_CALC_VIEW 244CE_COLUMN_TABLE 242, 243, 249CE_CONVERSION 247CE_JOIN 244CE_JOIN_VIEW 243CE_OLAP_VIEW 244CE_PROJECTION 242, 245, 249CE_UNION_ALL 246CE_VERTICAL_UNION 247, 476relationale 244sonstige 247TRACE 302Zugriffsfunktion 242

    Change and Transport System � CTSCHIP 487Client-Server 21Cluster-Codierung 49Cluster-Tabelle 126, 509Code Completion 85, 97, 213Code Inspector 295, 305, 349, 363Code Pattern 65Code Pushdown 60, 544Code-to-Data-Paradigma 60, 62, 359Codierung

    Dictionary-Codierung 46indirekte 49Lauflängencodierung 49Präfix-Codierung 49Sparse-Codierung 49

    Column Store 45, 95, 125, 217, 573Datentypen 386Empfehlung 502INSERT ONLY 577invertierter Index 580Lesezugriff 574Merge 578Schreibzugriff 576zusammengesetzter Index 581

    Column View 94, 162, 183, 209, 213, 269

    Commit, impliziter 136CONTAINS-Schlüsselwort 391Content 34, 98Counter 197

  • 593

    Index

    CPU-Cache 40, 41CPU-Kern 39CPU-Zeit 352, 374CTS 275

    Deploy Web Service 281Plug-in 281

    CTS+ 271, 280, 292Cursor 134, 253, 552

    D

    Data Analyst 465Data Control Language (DCL) 121Data Definition Language (DDL) 121Data Dictionary � ABAP DictionaryData Manipulation Language (DML)

    121Data Mart 421Data Modeler 560Data Warehouse 420DATA-Anweisung 568Database Procedure Proxy 257, 264,

    480, 492, 511, 515Anlage 264Anpassung 268Aufruf 267Synchronisation 268

    Database Shared Library 35, 112DataSource 422, 439Data-to-Code-Paradigma 60Datenanalyse 418, 441Datenart 125Datenbank

    relationale 33, 44, 162Typsystem 118

    Datenbankindex 537Datenbank-Interface 508, 512Datenbankkatalog 93, 162, 209Datenbankobjekt 94Datenbankoptimierer 52, 221, 330Datenbankprogrammierung, Werk-

    zeuge 149Datenbankprozedur 55, 94, 99, 217,

    219, 491, 515anlegen 228Arten 226Ausführung 225Ausgabeparameter 225, 232Eingabeparameter 231

    Datenbankprozedur (Forts.)Kompilierung 225Kontrollstruktur 252testen 516Verarbeitungslogik 232

    Datenbankschema 93, 101Datenbankschicht 60Datenbankschnittstelle 110Datenbanktabelle 95Datenbanktrigger 95Datenbankverbindung

    sekundäre 145, 155Standard 156

    Datenbank-View 123, 137Datendatei 276Datendeklaration 567Datenexploration 441Dateninkonsistenz 513, 516Datenlayout 44Datenmodell, virtuelles 425Datenreferenz 571Datenreplikation 36

    Direct Extractor Connection (DXC) 37

    SAP Data Services 37SAP Landscape Transformation Repli-

    cation Server 37Datensicht � ViewDatentyp 115, 124, 265

    Integer 46Konvertierung 458SHORTTEXT 386TEXT 386

    Datenvorschau 96, 104DBA-Cockpit 145, 335DBI 110DBSL 35, 112DDL 226DDL-Statement 53Debug Trace 303Decision Table � Entscheidungs-

    tabelleDefault-Schema 231, 233deklarative Programmierung 222,

    552Delivery Unit 99, 278, 515Delta Load 36Delta Merge 416Delta Store 50, 416, 576

  • 594

    Index

    Delta-Komprimierung 48Design Time 262Design-Time-Objekt 102Diagnostics Agent 39Dictionary View 211Dictionary-Codierung 46Dictionary-Vektor 46, 573Dimension 185Direct Extractor Connection (DXC) 37Document Analysis Toolkit 382Domäne 124DRAM 41Drill-down 178Dump 299, 518Dynamic Random Access Memory 41

    E

    Easy Query 431, 445Echtzeit 19, 421

    near Realtime 583Echtzeitqualität 19Eclipse 33

    ABAP-Entwicklungsumgebung 33Ansicht 78Arbeitsbereich 79Editor 78Erweiterungspunkt 68Fenster 78Foundation 34, 67, 69Framework 67Menüleiste 79Perspektive 78Plattform 33, 67, 68Plug-in 68Projekt 69Release Train 69Repository 71Sammelrelease 69SAP 70SAP Release Train for Eclipse 71SDK 68Symbolleiste 79Update Site 71Workbench 77

    Eingabeparameter 193, 515Einheitenkonvertierung 191elementare Suchhilfe 405Embedded Reporting 431

    Embedded Search 386Engine 55, 550Enqueue-Server 109Enqueue-Service 512Enqueue-Workprozess 115Enterprise Data Warehousing 421Enterprise Search 386Entity-Relationship-Modell 161Entkopplung 504, 517Entscheidungsregel 449, 458Entscheidungstabelle 99, 449, 451,

    453, 486Aktionen 451anlegen 453Bedingungen 451Transport 464

    Entwicklungslandschaft, gemischte 511

    Entwicklungsobjekt 84, 94, 98, 99ABAP 514Ablage 101aktivieren 102Namenskonvention 514SAP HANA 514testen 104validieren 102

    Entwicklungsorganisation 270, 271, 277Delivery Unit 278Paket 272Pakethierarchie 271, 277Paketschnittstelle 273Softwarekomponente 272Verwendungserklärung 273

    Entwicklungsschema 283Entwicklungsumgebung

    ABAP Development Tools 75, 80, 97Installation 73SAP HANA Studio 73

    Equi-Join 168Existenzcheck 307Expensive SQL Statement Trace 296Explain Plan 296, 330

    Aufruf 330Ausgabe 330

    Export 275Export Release Preprocessing 289Extension Index 388externer View � View, externer

  • 595

    Index

    F

    Factory Pattern 504Factory-Klasse 493Faktentabelle 183, 185Feeder-Klasse 495Fehleranalyse 293, 295, 296Fehlerbehandlung 518Feld, berechnetes 190Feldliste 527Feldsymbol 568Festplatte 41Filter 166Filterwert 174Fiskaljahr 180Flash-Speicher 41Floorplan Manager 447, 494

    Analytics-Listenkomponente 447Diagrammkomponente 447Feeder-Klasse 494

    Flugdatenmodell 109, 559, 560FOR ALL ENTRIES 129, 153, 155,

    307, 534Fremdschlüsselbeziehung 123, 164Full Outer Join 245Full-Text-Index 387, 391, 412, 415,

    492Funktion, benutzerdefinierte 94Funktionsbiblio