SQLScript

SQLScript ist eine Erweiterung zu SQL für SAP HANA. Die Skriptsprache stellt eine prozedurale Erweiterung dar, die imperatives Entwickeln ermöglicht.

Eigenschaften

SQLScript ist eine Sammlung von Erweiterungen zu SQL, die für Prozesse, Daten und Funktionen verwendet wird.

  • SQLScript als Datenerweiterung erlaubt die Definition von Tabellenarten ohne entsprechende Tabellen
  • SQLScript als Funktionserweiterung erlaubt die Definition von (nebenwirkungsfreien) Funktionen, mit denen komplexe Datenströme ausgedrückt und eingekapselt werden können
  • SQLScript als Prozedurale Erweiterung liefert im Kontext des Datenbankprozesses imperative Konstrukte.

Ziel von SQLScript ist es, datenintensive Applikationslogiken in die Datenbank einzubetten. Zum heutigen Stand werden Funktionalitäten nur sehr begrenzt mithilfe von SQL in die Datenbank abgeladen, normalerweise wird der Hauptteil der Logik auf dem Applikationsserver ausgeführt. Daher müssen die zu verarbeitenden Daten von der Datenbank auf den Applikationsserver kopiert werden und umgekehrt. Wenn datenintensive Logik ausgeführt wird, kann dieses Kopieren der Daten sehr viel Verarbeitungs- und Übertragungszeit in Anspruch nehmen. Zudem sind in imperativen Programmiersprachen wie ABAP oder Java Algorithmen der one-tuple-at-a-time-Semantik (z.B. Verwendung von Loops über Tabellenzeilen) beliebt. Diese sind allerdings verglichen mit deklarativen Sprachen wie SQL schwer zu parallelisieren und zu optimieren.

In unserer ABAP on HANA Schulung erfahren sie alles, was Sie als ABAP Entwickler wissen müssen, wenn sie Applikationen für die SAP HANA Datenbank vorbereiten, entwickeln und optimieren wollen.

Die HANA Datenbank ist eine moderne Hardware, in der die Datenverarbeitung in-memory stattfindet, sodass auch extrem große Datenmengen quasi in Echtzeit analysiert werden können. Das Ziel der HANA Datenbank ist es, Applikationen zu unterstützen, die den Anwendern helfen, das Potenzial der Datenbank voll auszuschöpfen. Die HANA Datenbank verfügt über ein sehr ausgefeiltes Interface, das sich aus verschiedenen Programmiersprachen zusammensetzt. SQLScript erlaubt es Entwicklern, datenintensive Logiken auf die Datenbank zu pushen. Dabei sind die Gestaltungsmöglichkeiten deutlich umfangreicher als bei OpenSQL.

Vom Aufbau ähnelt SQLScript den Stored Procedures aus dem SQL Standard, allerdings bietet SQLScript deutlich mehr Optimierungsmöglichkeiten. Es sollte immer dann verwendet werden, wenn alternative Modellierungsverfahren für SAP HANA, zum Beispiel Analytic Views oder verschiedene View Typen nicht ausreichen.

Vorteile

SQL Erweiterungen wie SQLScript sollten eingesetzt werden, um zu verhindern, dass Daten in großen Mengen auf den Applikationsserver kopiert werden oder um ausgefeilte Strategien für die parallele Datenverarbeitung in der Datenbank zu nutzen. SQLScript löst folgende verschiedene Limitierungen von SQL:

  • SQL-Abfragen können nur über Views aufgelöst werden. In diesem Fall werden alle zwischenzeitlichen Ergebnisse sichtbar und müssen explizit eingegeben werden. Darüber hinaus können SQL-Sichten können nicht mit Parametern versehen werden, was ihre Wiederverwendung einschränkt. Sie können nur wie Tabellen verwendet und in andere SQL-Anweisungen eingebettet werden.
  • SQL-Abfragen haben keine Features, um Businesslogik, zum Beispiel eine komplexe Währungsumrechnung, auszudrücken. Eine solche Businesslogik kann also nicht an die Datenbank weitergeleitet werden, selbst wenn es sich um Standardaggregationen wie SUM (Sales) handelt.
  • Eine SQL-Abfrage kann nur ein Ergebnis gleichzeitig liefern. Die Berechnung von ähnlichen Ergebnissen muss daher in separate Berechnungen und in der Regel unabhängige Abfragen aufgeteilt werden.
  • SQLScript ermutigt Entwickler, einen setorientierten Ansatz zu wählen, zum Beispiel indem iterative Annäherungsalgorithmen genutzt werden. Es ist allerdings möglich, imperative Konstrukte mit Stored Procedures von deklarativen Konstrukten zu mischen.

SQLScript Prozess

Wenn Anwender einen neuen Prozess definieren, zum Beispiel indem sie das CREATE PROCEDURE Statement verwenden, verarbeitet der HANA Datenbank-Compiler die Anfrage ähnlich wie einen SQL-Befehl in drei Schritten:

  1. Die Aussage wird analysiert: Einfache syntaktische Fehler werden erkannt und gemeldet.
  1. Die Aussagen werden auf semantische Korrektheit geprüft: Typen für Variablen werden abgelegt und es wird geprüft, ob ihre Verwendung konsistent ist.
  2. Der Code wird optimiert: Die Optimierung verläuft je nach erkannter Logik unterschiedlich. Unterschieden wird zwischen deklaratorischer Logik, die im oberen Pfad angezeigt wird, und imperative Logik des unteren Pfads.

Der eigentliche SQL-Prozess lässt sich dann in zwei Phasen gliedern:

  1. Compilation
    • Code-Erzeugung: Für deklarative Logiken werden Berechnungsmodelle, die den von SQLScript definierten Datenfluss abbilden. Dieser wird zudem durch die Calculation Engine instanziiert. Bei imperative Logiken warden die Code Blöcke in L-nodes übersetzt.
    • Die Berechnungsmodelle des vorherigen Schrittes werden zu einem gestapelten Berechnungsmodell kombiniert.
  2. Ausführung: Die Ausführung beginnt mit den bindenden Ist-Parametern für die Berechnung. Wenn diese Modelle instanziiert sind, können sie basierend auf konkretem Input optimiert werden.

Fazit & Best Practices

Mit SQLScript können Applikationen implementiert werden, in denen sowohl imperative Logik als auch funktionale, deklarative Logik verwendet wird. Imperative Logik wird sequentiell ausgeführt. Deklarative Logik wird ausgeführt, indem die innere Architektur von SAP HANA Datenbank ausgeschöpft wird und die Möglichkeit der Parallelverarbeitung genutzt wird.

Sie haben Fragen zur SQLScript?
Sie suchen erfahrene Entwickler mit SQLScript-Knowhow?

mindsquare ist ein Technologie-Beratungsunternehmen, das sich auf die Beratung und Entwicklung im SAP-Umfeld spezialisiert hat. Unsere SAP Berater beschäftigen sich seit vielen Jahren intensiv mit Technologien rund um SAP HANA und haben verschiedene Best Practices entwickelt. Wir beraten Sie gerne bei Ihrer aktuellen Herausforderung und zeigen Ihnen Lösungswege auf. Vereinbaren Sie ein unverbindliches Beratungsgespräch und bringen Sie Ihr SAP-System auf ein neues Level.

Wie geht es weiter?

Schritt 1

Sie nehmen telefonisch, per Mail oder Formular Kontakt auf und schildern uns Ihr Anliegen.

Schritt 2

Zur Klärung von Rückfragen und von Details zum weiteren Vorgehen melden wir uns telefonisch bei Ihnen.

Schritt 3

Wir unterbreiten Ihnen ein Angebot und unterstützen Sie gerne auch bei der Präsentation für Ihr Management.

Passende Angebote zum Thema

Websitebild_HANA_Roadmap
Die richtigen Schritte zur richtigen Zeit in Richtung SAP HANA zu gehen ist die große Herausforderung an SAP Kunden in den kommenden Jahren. Wichtig dabei: Die Chancen und Potenziale aktiv nutzen & damit die Digitalisierung im Unternehmen vorantreiben.
Websitebild_HANA_Awareness_Impulsvortrag
Es ist eindeutig klar, dass sich alle SAP Kunden jetzt mit der HANA-Strategie der SAP auseinandersetzen müssen. Wir machen deutlich, warum auch Ihr Unternehmen jetzt handeln muss.
Websitebild_ERP_on_HANA_Performanceoptimierung
Im SAP ERP powered by SAP HANA schlummert ein riesiges Performancepotenzial. Wir lokalisieren die Engpässe und steigern die Performance Ihrer Anwendungen.