Über smartShift Technologies

Werbung
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
Herunterladen