Automatisierte Anpassung Ihres ABAP Codes für den Einsatz auf SAP HANA Webinar 12. Dezember 2013 Albrecht Gass, Chief Architect, smartShift Technologies www.smartShiftTech.com Referent und Moderation Albrecht Gass Ina Reiß HANA Experte smartShift Technologies Moderation smartShift Technologies © 2013 smartShift Technologies. All rights reserved 12/13/2013 2 Agenda 1. 2. 3. 4. 5. 6. smartShift Technologies Überblick SAP HANA SAP HANA Verbesserungen Performance Richtlinien und Regeln Beispiele optimierten ABAP Codes Fragen und Antworten © 2013 smartShift Technologies. All rights reserved 12/13/2013 3 1 Über smartShift Technologies www.smartShiftTech.com smartShift im Überblick • • • • • • Mehr als 20 Jahre Erfahrung in der Modernisierung komplexer IT-Systeme - Nutzung von patentierten Automatisierungstools Seit 2006 Fokus auf SAP ABAP Eigenentwicklungen mit hunderten von erfolgreichen Implementierungen für Kunden Einzigartige Technologie: Patentierte Parser-Technologie; Custom Code Lifecycle Management; regelbasierte ABAP Fehlerermittlung & automatische Code Korrektur Der smartShift Unterschied: Schneller, höhere Qualität, weniger Risiken, geringere Kosten! 100+ Mitarbeiter im SAP Umfeld Internationale Standorte in Deutschland, USA, Indien © 2013 smartShift Technologies. All rights reserved 12/13/2013 5 Diese Kunden vertrauen smartShift! ... © 2013 smartShift Technologies. All rights reserved 12/13/2013 6 Unsere Partner © 2013 smartShift Technologies. All rights reserved 12/13/2013 7 2 Überblick SAP HANA www.smartShiftTech.com HANA “Ziele” • Keine Auswirkung auf Transaktionsabläufe • “Reporting ohne Angst” durch erhebliche Steigerung der Auswertungsgeschwindigkeit • SAP nicht mehr als MS-Access Loader verwenden • Datenauswertung in SAP und nicht in MS-Excel • Vermeiden der Nutzung von alten und unvollständigen Daten • Konvertieren von Batchprozessen in Echtzeitdatenverarbeitung • Ermöglichen von neuen Big-Data-Prozessen © 2013 smartShift Technologies. All rights reserved 12/13/2013 9 Überlegungen zur HANA Implementierung • Primäre Datenbank oder Side-Car • Instanzgröße o Memory o CPU • • • • • Partitionierung von großen Tabellen Änderungen in der Reihenfolge der Ergebnisse Inkompatibler Native SQL Code Unicode ist Voraussetzung Vor Ort oder Cloud Einsatz © 2013 smartShift Technologies. All rights reserved 12/13/2013 10 Gründe für Code Optimierung • Datenintensive Programmierung im Applikationsserver o Aufgabe der kompletten HW-Abstraktion, alles in ABAP • Änderungen in Datenarchitektur erfordern Änderungen der Programmstruktur: o SELECT * … o SORT vs. ORDER BY o CHECK within SELECT / END SELECT • Neue HANA/ NetWeaver Framework Funktionalität o Listenverarbeitung o Codewartbarkeit © 2013 smartShift Technologies. All rights reserved 12/13/2013 11 Process Automatisierter ABAP Transformationsprozess Discovery Parser & Meta Model Extract Upload Rules Engine Transform Tools Source system Target system Extractor Uploader Detect Code Errors Experts XML Correct Code XML ABAP Experten mit mehr als 200 Jahren an Erfahrung in Code Transformationen © 2013 smartShift Technologies. All rights reserved 12/13/2013 12 smartScale für HANA Highlights • Ausweitung der außergewöhnlichen Performancesteigerungen auf Custom ABAP Code, die durch Einsatz von HANA erwartet werden • Beibehaltung der Benutzerfreundlichkeit und kurzem Zeitrahmen, wie gewohnt mit smartShift • Analysieren und Erstellen von Lösungen für unentschiedene Kundenanforderungen (POC) • Durchführen automatisierter Code Optimierung, um HANA als Primärdatenbank oder Side-Car zu unterstützen • Flexible Projektangebote, um Kundenansprüchen zu entsprechen: o Einmaliger Einsatz o Wellen orientierter Einsatz o Kontinuierlicher Einsatz © 2013 smartShift Technologies. All rights reserved 12/13/2013 13 Vorteile der Tool unterstützen Automatisierung 1. Zeitersparnis durch Automatisierung fehleranfälliger manueller Arbeitsschritte (Tage anstelle von Monaten) • Verkürzung der Projektlaufzeiten bzw. Schaffen von zeitlichen Puffern 2. Beseitigung ermüdender manueller Arbeit und damit mehr freie wichtige Ressourcen 3. Drastische Änderungen in der Durchführung von Projekten durch Automation • • • 4. Automatisierte Optimierung verbessert Eigenentwicklungen • • • 5. Code ist sicher, richtlinienkonform, wartbarer und die Leistung ist besser Qualität der Optimierung reduziert Nacharbeiten Weniger Testzyklen und insgesamt weniger Testaufwände Projektrisiken minimieren • 6. Roll-back und Weiterentwicklung der automatisierten Transformation möglich Code-Freeze verkürzen Vollständige Umsetzung Deadlines, Qualität & Kostenüberschreitungen Geringere SAP TCO – jetzt und in Zukunft © 2013 smartShift Technologies. All rights reserved 12/13/2013 14 smartShift im Vergleich zu manuellen Änderungen Typisches SAP Transformationsprojekt manuell Zeit in Wochen © 2013 smartShift Technologies. All rights reserved 12/13/2013 15 3 SAP HANA Verbesserungen www.smartShiftTech.com NetWeaver 7.4 ABAP Verbesserungen • • • • • • • • • • • • • • ABAP Managed Database Procedures (AMDP) Integrated Data Access List Grid (IDA-ALV) Inline Declarations Table Expressions New Internal Table Functions ABAP Objects (Exporting, Importing and Changing, Partially Implemented Interfaces for Testing) Reference Operator Value Operator Constructor Operator Conditional Operators Conversion Operators Lossless Operator EXACT Internal Tables with Empty Keys Expressions © 2013 smartShift Technologies. All rights reserved 12/13/2013 17 Codeverschiebung in Datenbankebene - Schritt 1 • Vorgehensweise definieren © 2013 smartShift Technologies. All rights reserved 12/13/2013 18 Codeverschiebung in Datenbankebene - Schritt 2 • SQL Skript, das Lesen von relevanten Tabellen anwendet © 2013 smartShift Technologies. All rights reserved 12/13/2013 19 Codeverschiebung in Datenbankebene - Schritt 3 • Generiertes Interface Objekt für die Nutzung in Applikationslogik © 2013 smartShift Technologies. All rights reserved 12/13/2013 20 Codeverschiebung in Datenbankebene - Schritt 4 • Code modifizieren, um Interface/ Call Procedure zu nutzen © 2013 smartShift Technologies. All rights reserved 12/13/2013 21 ABAP Managed Database Procedures (AMDP) CLASS zcl_amdp DEFINITION. INTERFACES if_amdp_marker_hdb. METHODS: pushdown_code IMPORTING VALUE(iv_client) TYPE mandt EXPORTING VALUE(et_result) TYPE tt_result. ENDCLASS. CLASS zcl_amdp IMPLEMENTATION. METHOD pushdown_code BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT USING snwd_so_i snwd_so_sl snwd_pd. -- SQLScript goes here ENDMETHOD. ENDCLASS. © 2013 smartShift Technologies. All rights reserved 12/13/2013 22 ABAP Managed Database Procedures (AMDP) CLASS zcl_amdp DEFINITION. INTERFACES if_amdp_marker_hdb. METHODS: pushdown_code IMPORTING VALUE(iv_client) TYPE mandt EXPORTING VALUE(et_result) TYPE tt_result. ENDCLASS. CLASS zcl_amdp IMPLEMENTATION. METHOD pushdown_code BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT USING snwd_so_i snwd_so_sl snwd_pd. -- SQLScript goes here ENDMETHOD. ENDCLASS. © 2013 smartShift Technologies. All rights reserved 12/13/2013 23 ABAP Managed Database Procedures (AMDP) CLASS zcl_amdp DEFINITION. INTERFACES if_amdp_marker_hdb. METHODS: pushdown_code IMPORTING VALUE(iv_client) TYPE mandt EXPORTING VALUE(et_result) TYPE tt_result. ENDCLASS. CLASS zcl_amdp IMPLEMENTATION. METHOD pushdown_code BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT USING snwd_so_i snwd_so_sl snwd_pd. -- SQLScript goes here ENDMETHOD. ENDCLASS. © 2013 smartShift Technologies. All rights reserved 12/13/2013 24 ABAP Managed Database Procedures (AMDP) CLASS zcl_amdp DEFINITION. INTERFACES if_amdp_marker_hdb. METHODS: pushdown_code IMPORTING VALUE(iv_client) TYPE mandt EXPORTING VALUE(et_result) TYPE tt_result. ENDCLASS. CLASS zcl_amdp IMPLEMENTATION. METHOD pushdown_code BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT USING snwd_so_i snwd_so_sl snwd_pd. -- SQLScript goes here ENDMETHOD. ENDCLASS. © 2013 smartShift Technologies. All rights reserved 12/13/2013 25 ABAP Managed Database Procedures (AMDP) CLASS zcl_amdp DEFINITION. INTERFACES if_amdp_marker_hdb. METHODS: pushdown_code IMPORTING VALUE(iv_client) TYPE mandt EXPORTING VALUE(et_result) TYPE tt_result. ENDCLASS. CLASS zcl_amdp IMPLEMENTATION. METHOD pushdown_code BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT USING snwd_so_i snwd_so_sl snwd_pd. -- SQLScript goes here ENDMETHOD. ENDCLASS. © 2013 smartShift Technologies. All rights reserved 12/13/2013 26 Nutzung der Integrated Data Access List Grid (IDA-ALV) © 2013 smartShift Technologies. All rights reserved 12/13/2013 27 4 Performance Richtlinien und Regeln 12/13/2013 28 www.smartShiftTech.com HANA Optimierungsrichtlinien • • • • • • • • • Ergebnismenge reduzieren Menge des Datentransfers verringern Anzahl der Datenbankaufrufe reduzieren HANA spezifische Betrachtungen Native SQL vermeiden Bestehende Best Practices gelten meist weiterhin Index/ Abfrage Optimierung Textsuche für F4 Hilfe und Type-ahead Suche HANA Server nicht überlasten © 2013 smartShift Technologies. All rights reserved 12/13/2013 29 Neue HANA Regelkonzepte Diese Modelle konzentrieren sich auf das Push-down Paradigma und die Restriktionen, die HANA erhebt. Ermitteln von Joins auf transaktionale Tabellen Ermitteln von “SELECT … FOR ALL ENTRIES” Aussagen Ermitteln von SQL auf SAP “index” Tabellen (z.B. VAPMA) Zugriff auf Tabellengruppen in SQL (z.B. VBAK, VBUK, VBAP) Lesen von Clustertabellen Sortieren von internen Tabellen aus SQL Verarbeitung von internen Tabellen aus SQL Durchführung von Einheitenumrechnungen ALV Optimierung Datenbank Migrationsregeln © 2013 smartShift Technologies. All rights reserved 12/13/2013 30 5 Beispiele optimierten ABAP Codes 12/13/2013 31 www.smartShiftTech.com Neue HANA Regeln Es wird hier nur eine Auswahl an Regeln gezeigt. • HCC o #600 SELECT in früheren Cluster/ Pool-Tabellen • HPO o o o o o o o o #601 #602 #610 #712 #719 #723 #727 #728 SELECT mit PACKAGE SIZE Option SELECT/ENDSELECT sind Indikatoren für Code Optimierung HANA Performance Optimization using code push-down SELECT * --> ausgewählte Spaltenmenge reduzieren SELECT mit IF/CHECK OpenSQL Modifikationen in LOOPS SELECT gefolgt von DELETE ADJACENT DUPLICATES Zugriff auf Index Tabelle © 2013 smartShift Technologies. All rights reserved 12/13/2013 32 Regel #600 - SELECT von früheren Cluster/Pool Tabellen • Cluster und Pool Tabellen liefern Daten bedingungslos nach Primärschlüssel geordnet • In HANA werden Cluster/Pool Tabellen in transparente Tabellen konvertiert – dies kann sich in zukünftigen Service Packs ändern • Nicht in allen Fällen ist Adaptierung nötig, nur wenn Sortierungen wichtig sind • Kundenbeispiel (via Code Inspector) o 4.500 Instanzen o Es gibt 1.500 Instanzen, wo keine Sortierung spezifiziert ist, aber der Code könnte auf die Sortierung angewiesen sein © 2013 smartShift Technologies. All rights reserved 12/13/2013 33 Regel #600 - SELECT von früheren Cluster/Pool Tabellen • Code Vergleich © 2013 smartShift Technologies. All rights reserved 12/13/2013 34 Regel #712 SELECT * --> Spaltenmenge reduzieren • Wenn Anzahl an selektierten Spalten nicht begrenzt ist, haben zeilenorientierte RDBMS einen kleinen Nachteil • Für Spaltentabellen in HANA gibt es viele Gründe, wieso dies wichtig wird: o Geringere Verarbeitung auf dem DB Server o Geringerer Datentransfer o Geringere Kosten für Realisierung der Ergebnismenge auf dem Applikationsserver • Fähigkeit notwendig, Zugriff auf Spalten in Ergebnismenge und verwandte Datenstrukturen zu ermitteln • Viele Tücken und Bedingungen können manuell nicht einfach geprüft werden • Kunde hat ca. 40.000 Instanzen, die über verschiedene Subcases verteilt sind © 2013 smartShift Technologies. All rights reserved 12/13/2013 35 Regel #712 SELECT * --> Spaltenmenge reduzieren • Code Vergleich © 2013 smartShift Technologies. All rights reserved 12/13/2013 36 Regel #719 SELECT/LOOP mit IF/CHECK • Prüft, ob nur gefilterte Daten aus der Datenbank im Programm verwendet werden • Trifft auf viele Konstruktionen zu o o o o SELECT SELECT/ENDSELECT LOOP OPEN CURSOR • Bestehende Einschränkungen für OpenSQL müssen berücksichtigt werden • HANA Vorteile o Geringerer Datentransfer o Geringere Kosten für Realisierung der Ergebnismenge auf dem Applikationsserver • Kunde hat ca. 13.000 Fälle in verschiedenen Ausprägungen © 2013 smartShift Technologies. All rights reserved 12/13/2013 37 Regel #719 SELECT/LOOP mit IF/CHECK • Code Vergleich © 2013 smartShift Technologies. All rights reserved 12/13/2013 38 Regel #610 HANA Performance Optimierung mit Code Push-Down Reihe 1 Reihe 2 Reihe 3 Reihe 4 Reihe 5 Reihe 6 Reihe 7 © 2013 smartShift Technologies. All rights reserved 12/13/2013 39 Regel #610 HANA Performance Optimierung mit Code Push-Down Spaltenbasierte, parallele Verarbeitung in HANA mit SQLScript Reihe 1 Reihe 2 Reihe 3 Reihe 4 Reihe 5 Reihe 6 Reihe 7 © 2013 smartShift Technologies. All rights reserved 12/13/2013 40 Regel #610 HANA Performance Optimierung mit Code Push-Down • Große ABAP Codesegmente werden auf SQLScript umgestellt • Trichterfall o Anfangs sind es viele Daten, von denen nur ein kleiner Teil als Ergebnis fungiert • Ausnutzung von HANA Fähigkeiten und Stärken o Parallelisierung o Schnelle Datenhaltung o Verringerter Datentransfer • Sehr personalintensiv • Sehr schwierig © 2013 smartShift Technologies. All rights reserved 12/13/2013 41 Regel #610 HANA Performance Optimierung mit Code Push-Down • Code Vergleich © 2013 smartShift Technologies. All rights reserved 12/13/2013 42 Regel #610 HANA Performance Optimierung mit Code Push-Down Spaltenbasierte, parallele Verarbeitung in HANA Reihe 1 Reihe 2 Reihe 3 Reihe 4 Reihe 5 Reihe 6 Reihe 7 © 2013 smartShift Technologies. All rights reserved 12/13/2013 43 smartScale für HANA Offering smartScale für HANA besteht aus bewährten smartShift Komponenten mit neu hinzugefügten HANA Code- Optimierungsregeln. Analyse Upgrade/ Unicode © 2013 smartShift Technologies. All rights reserved smartDevelop Management 12/13/2013 44 Zufriedenheitsumfrage Wie hat es Ihnen gefallen? Bitte beantworten Sie unsere kurze Umfrage im Anschluss an das Webinar. Vielen Dank! © 2013 smartShift Technologies. All rights reserved 12/13/2013 45 6 Fragen und Antworten 12/13/2013 46 www.smartShiftTech.com Fragen & Antworten Albrecht Gass Chief Architect smartShift Technologies [email protected] © 2013 smartShift Technologies. All rights reserved 12/13/2013 47 SAP HANA® - Readiness Analyse Die Analyse untersucht folgende Aspekte: • • • • Kompatibilität Ihrer Eigenentwicklungen mit SAP HANA® Optimierungspotentiale Ihrer ABAP Eigenentwicklungen Unicode Fähigkeit Ihres ABAP Codes Weitere Optimierungspotentiale Ihres Codings im Bezug auf Wartbarkeit, Stabilität, Standardisierung, Performance und Sicherheit • Preis zur Weihnachtsaktion: € 2.500,- Analyse beantragen © 2013 smartShift Technologies. All rights reserved 12/13/2013 48 Vielen Dank! www.smartShiftTech.com