Vor einigen Wochen haben wir im movisco-Blogbeitrag SAP HANA SQLScript / AMDP - Die neue Scriptsprache für SAP HANA den mit der Einführung von AMDP (ABAP Managed Database Procedures) und HANA SQLScript erfolgten technologischen Fortschritt allgemein vorgestellt und deren Einsatz im SAP BW-Umfeld erläutert. Heute wollen wir auf ein konkretes Einsatzszenario für die Anwendung dieses Frameworks bei Kreditinstituten eingehen.
Für die Gesamtbanksteuerung wird im Zusammenhang mit Zins- und Kapitalablaufprognosen basierend auf künftigen Zinszahlungen sowie Tilgungen und Auszahlungen eine taggenaue Berechnung für das Restkapital, die Auszahlungsverpflichtungen und Zinsen zwischen den Zinsterminen (sog. Stückzinsen) vorgenommen.
Die angelieferten Zahlungsströme bilden die jeweiligen prognostizierten Zahlungszeitpunkte ab. Für die fachliche Nutzung müssen anhand dieser Zeitpunkte taggenaue Berechnungen für die Tage vorgenommen werden, die zwischen den jeweiligen Zahlungspunkten liegen.
Da dadurch auf der einen Seite in die Berechnung der zu erwarteten Zinserträge und Zinsaufwendungen alle zinstragenden Einzelgeschäfte eingehen und auf der anderen Seite für bestimmte fachliche Analysen eine taggenaue Sicht benötigt wird, werden für derartigen Prognoseberechnungen die Anzahl der Datensätze um ein Vielfaches erhöht. So sind bspw. aus 32 Mio. angelieferten Datensätzen im Ergebnis 670 Mio. Datensätze erzeugt worden. Dies für einen Betrachtungsstichtag und einen Prognosezeitraum von bis zu 40 Jahren.
Klassischerweise würde man im SAP BW dazu in einer Transformation eine oder mehrere ABAP-Routinen anlegen und die Kennzahlen dort ermitteln. An sich ist ABAP eine Programmiersprache, die sehr gut geeignet ist, Massendaten im Business-Kontext zu verarbeiten. Problematisch bei großen Datenmengen ist jedoch, dass bei einer ABAP-Verarbeitung die Daten erst aus der Datenbank gelesen und nach der Verarbeitung wieder zurückgeschrieben werden müssen (data to code).
Durch das beschriebene „data to code“-Verhalten kann in einer ABAP-Transformation ein Performance-Bottleneck entstehen. Je nach Ausgangsbasis der Daten und dem gewünschten Prognoseumfang läuft die Gesamtverarbeitungszeit aus dem „Ruder“ oder im Extrem bricht die Verarbeitung aufgrund eines „Timeout“ ab.
Wie bereits in unserem Beitrag SAP HANA SQLScript / AMDP - Die neue Scriptsprache für SAP HANA beschrieben, kann man das Performance-Problem umgehen, wenn man die SAP HANA-Technologien nutzt und die Routinen in AMDP anlegt. Dabei werden globale AMDP-Klassen auf ABAP-Stacks generiert, die ihrerseits die Definition der Stored Procedures enthalten. Durch Code-Pushdown werden alle Daten direkt auf der Datenbank verarbeitet und dadurch wird der Transport von größeren Datenmengen zwischen der Datenbank und dem Applikationsserver vermieden (code to data). Die Gesamtverarbeitungszeit kann so erheblich verkürzt werden (etwa Faktor 10)!
Mit dem Umstieg auf AMDP in SAP BW-Transformationen stehen zwar neue Herausforderungen hinsichtlich einer neuen Programmiersprache (SQLScript for HANA) und einer neuen Entwicklungsumgebung (HANA Studio / Eclipse) bevor. Ferner schwindet die gewohnte Übersichtlichkeit, da die Anwendungslogik nun nicht nur auf dem Applikationsserver, sondern auch auf der Datenbank zu finden ist. Dafür überwiegt der enorme Performance-Gewinn, sofern es ein hohes Datenvolumen zu verarbeiten gilt.
Es können nicht alle Funktionalitäten, die durch ABAP ermöglicht werden, mit SQLScript umgesetzt werden. Aus Erfahrung bei unseren Kunden stellen dies jedoch seltene Ausnahmen dar, d.h. über 90% der ABAP-Transformationen können in SQLSkript ebenfalls implementiert werden.
Im Hinblick auf die zukünftige Ausrichtung der SAP ist bereits jetzt ein geeigneter Zeitpunkt, sich mit der Entwicklung von AMDP-Transformation zu befassen.
SAP HANA SQLScript / AMDP - Die neue Scriptsprache für SAP HANA weiterlesen
Wir freuen uns über Ihre direkte Kontaktaufnahme!