SAP Core Data Services (CDS)
Inhaltsverzeichnis
Durch Datenmodelle können Datenbankinhalte systemübergreifend und von verschiedenen Anwendungen genutzt werden. Das reduziert Entwicklungskosten, erleichtert und beschleunigt die Nutzung und trägt zur Portabilität von Daten bei.
SAP hat in SAP HANA die Core Data Services als Infrastruktur für Datenmodellierung eingeführt. Mit SAP CDS können semantisch reiche, d.h. komplexe Datenmodelle, in SAP HANA gehandhabt werden. Datenmodelle werden hierbei auf der Datenbank im Arbeitsspeicher und nicht wie bisher auf dem Anwendungsserver definiert. Dies bringt erhebliche Performancevorteile und ist eine zentrale Neuerung gegenüber vorigen Lösungen. CDS bietet ferner Funktionen, die über herkömmliche Datenmodellierungstools hinausgehen:
- SAP CDS liefert ein einheitliches Datenmodell für alle transaktionalen und analytischen Anwendungsbereiche
- SAP CDS bietet eine semantische Ebene für alle Anwendungsfälle: Suche, Operationen und Analyse
- Das bedeutet, dass Endnutzer unter Verwendung allgemeiner Geschäftsbegriffe für Berichts- und Analysezwecke auf Daten zugreifen können.
- SAP CDS erweitert die Datenbanksprache SQL um Vereinfachungen, sodass sich für den Nutzer die technische Komplexität verringert
Datenbankmodell
Ein Datenmodell einer Datenbank legt die Struktur fest, in der Daten in einem Datenbanksystem gespeichert werden. Ein solches Modell hat drei Bestandteile:
- Eine generische Datenstruktur mit der Art der Datentabellen, z.B. eine Kunden-Tabelle, wobei jeder Kunde in einer Tabellenzeile spaltenweise durch mehrere Attribute definiert ist
- Operatoren, um Daten einzutragen, abzufragen oder zu ändern
- Integritätsbedingungen, die die zulässigen Datenbankinhalte sinnvoll einschränken. Dadurch kann z.B. verhindert werden, dass für bestimmte Daten doppelte Einträge angelegt und zu hohe oder zu tiefe Werte eingetragen werden können.
SAP HANA Architektur
SAP HANA ist konsequent als In-Memory-Plattform konzipiert. Daten werden zur Verarbeitung nicht wie bei konventionellen Datenbanken von einer Festplatte bzw. einem Server in den Arbeitsspeicher kopiert, sondern vollständig dort gehalten.
Mit dem SAP HANA-Datenmodell ergibt sich eine große Tabelle ohne Redundanz statt vieler kleiner Tabellen. Der Speicherbedarf kann dadurch gegenüber konventionellen Datenbanken um bis über das 10-fache reduziert werden. Dadurch können die Daten leichter im Arbeitsspeicher gehalten werden. Die Bearbeitung erfolgt hier deutlich schneller, weil keine Übertragung der Daten zwischen Datenbank und Applikationsservern nötig ist. Auch große (Big Data) Datenmengen können so fast in Echtzeit verarbeitet werden.
Der Datenbank wird nicht nur mitgeteilt, welche Daten für die Verarbeitung benötigt werden, sondern wie diese Daten zu verarbeiten sind. Anstatt die Daten an den Applikationsserver anzuliefern und dann zu verfeinern (“Data-to-Code”), werden sie bereits im Datenbankmanagementsystem in ein End- oder Zwischenprodukt gebracht (“Code-to-Data”). Darauf ist HANA spezialisiert und kann diese Anfragen deshalb in der Regel um ein Vielfaches schneller umsetzen als herkömmliche “Data-to-Code”-Lösungen.
Operationen
Man unterscheidet bei Datenbankoperationen zwischen transaktionalen Prozessen (Online Transaction Processing, OLTP) und analytischen Prozessen (Online Analytical Processing, OLAP). Transaktionale Prozesse bedeuten Schreiben, Lesen und Verändern einzelner Datensätze mit zeilenorientiertem Zugriff in der Datenbanktabelle. Analytische Prozesse meinen den spaltenorientierten Zugriff auf viele Datensätze, um sie für einen Bericht zu konsolidieren .
Der spaltenorientierte Ansatz erlaubt ein schnelleres Lesen der Daten und verringert aufwendige Speicherprozesse: Ein mehrfach vorkommender Datensatz wird nur einmal gespeichert und die mehrfachen Vorkommen referenziert. Die Ergebnistabellen für häufig vorkommende JOIN-Anfragen einer Datenbank wiederum lassen sich effizienter mit dem zeilenorientierten Ansatz erstellen.
SAP CDS verbindet in SAP HANA die spaltenorientierte und die zeilenorientierte Arbeitsweise. Damit werden die Vorteile beider Ansätze kombiniert.
SAP CDS-Komponenten
Um semantisch komplexe Arten von Geschäfts- und anderen Datenobjekten einfach zu handhaben, gibt es über die Basissprache SQL hinaus Lösungen wie das Business Object Processing Framework für SAP ABAP oder das Enterprise Objects Framework in Java. Um Fragmentierung, Aufwand und Redundanz durch solche zusätzlichen Lösungen zu vermeiden, führte SAP HANA die Core Data Services als eigene Dienste für komplexe Datenmodelle ein.
SAP CDS unterstützt wie die meisten Datenbanken die Datenbanksprache SQL für Definition, Abfrage und Änderung von Daten. SAP CDS erweitert den SQL-Standard außerdem um Funktionen, die die traditionellen transaktionalen und analytischen Modelle für Datendefinition, Datenabfrage und Datenmanipulation vereinheitlichen. Die Datenmodelle werden in DDL (Data Definition Language) ausgedrückt und sind als sog. CDS-Views definiert. Diese können in SAP ABAP-Anwendungen für Datenbankzugriff verwendet werden.
SAP CDS umfasst folgende domänenspezifischen Sprachen:
- Data Definition Language (DDL): Diese Datendefinitionssprache ermöglicht es, semantisch reichhaltige Datenmodelle, d.h. Datenbanktabellen und -ansichten (CDS-Entitäten) und benutzerdefinierter Typen zu definieren
- Query Language (QL): Diese Abfragesprache erlaubt die effiziente Abfrage von Daten, die auf den DDL-Datenmodellen basieren. Sie erlaubt es ferner, Views zur Vereinfachung des Zugriffs innerhalb der Datenmodelle zu definieren
- Expression Language (EL): Diese Ausdruckssprache dient bei Abfragen der Query Language zur Festlegung von z.B. Standardwerten und Einschränkungen.
Datendefinitionssprache DDL
Mit der Datendefinitionssprache CDS DDL werden die Datenmodelle der ABAP CDS angelegt. Die CDS DDL bietet Sprachelemente zur Definition und Erweiterung von folgenden CDS-Entitäten:
- Anweisungen für CDS-Views: DEFINE VIEW und EXTEND VIEW
- Anweisungen für CDS-Tabellenfunktionen: DEFINE TABLE FUNCTION
- Sprachelemente für verschiedene CDS-Entitäten: Typisierungen, Eingabeparameter, Elementnotationen
Mit SAP CDS können dadurch Datenmodelle definiert werden, die folgende Elemente enthalten:
- Entitäten für die Ausprägungen von Objekten oder Sachverhalten durch Angabe von Attributen
- Assoziationen für die Beziehungen zwischen Entitäten
- Ansichten /Views für vereinfachte Datenbankabfragen
- Annotationen für die Anreicherung der Ansichten mit beschreibenden Daten (Metadaten) über die SQL-Syntax hinaus
- Zuordnungen zwischen Entitäten und Ansichten
- Benutzerdefinierte Datentypen
Vorteile
SAP CDS bietet eine Reihe von Vorteilen für Unternehmen und Entwickler. Besonders hilfreich sind folgende Eigenschaften von SAP CDS:
Semantisch reiche Datenmodelle
CDS baut auf dem bekannten Entity-Relationship-Modell auf und ist deklarativer Natur, d.h. sehr nah am konzeptionellen Denken. Das macht die Arbeit mit CDS deutlich intuitiver.
Effizienz
CDS bietet eine Vielzahl hocheffizienter integrierter Funktionen zum Erstellen von Ansichten wie SQL-Operatoren, Aggregationen und Ausdrücke. Dadurch ist CDS äußerst effizient.
Kompatibilität
Die CDS Dienste basieren auf Open SQL, das von allen wichtigen Datenbankanbietern unterstützt wird. Die hohe Kompatibilität macht die Implementierung und Nutzung sehr unkompliziert.
Annotationen
Die CDS Syntax unterstützt domänenspezifische Annotationen zur Anreicherung der Datenmodelle mit zusätzlichen (domänenspezifischen) Metadaten, die von anderen Komponenten wie der Benutzeroberfläche und den Analyse-Diensten ausgewertet werden können.
Konzeptionelle Assoziationen
Mit CDS können Verknüpfungen als Beziehungen zwischen verschiedenen Ansichten definiert werden. Dadurch können Verknüpfungen durch einfachere Ausdrücke in Abfragen ersetzt werden.
Erweiterbarkeit
Von SAP definierte CDS-Ansichten können mit Feldern erweitert werden, die der CDS-Ansicht zusammen mit ihrer Verwendungshierarchie automatisch hinzugefügt werden.
SAP CDS in SAP HANA
Mit der Entwicklung von SAP HANA fand insgesamt ein Paradigmenwechsel in der SAP Software statt. Datenintensive Logik wurde auf die Datenbankebene verlagert. Anstatt Daten für Operationen aus Datenbanken zunächst in einen temporären Speicher zu kopieren, werden Operationen wenn möglich direkt in der im Arbeitsspeicher liegenden Datenbank ausgeführt. Dadurch kann eine höhere Performance erzielt werden.
SAP ABAP
SAP ABAP (Advanced Business Application Programming) ist eine Plattform zur Entwicklung von individuellen SAP-Anwendungen. Die Datenmodellierung kann durch Core Data Services in SAP HANA und auf dem SAP ABAP Anwendungsserver nach denselben Entwurfsprinzipien erfolgen.
Um die Vorteile von SAP HANA für die Anwendungsentwicklung zu nutzen, hat SAP die Core Data Services als neue Datenmodellierungsinfrastruktur auch in SAP ABAP eingeführt. Mit Datenmodellen wird dadurch nicht auf dem Anwendungsserver, sondern auf dem Datenbankserver gearbeitet. Datenmodelle können unabhängig von der SAP Technologieplattform (ABAP oder HANA) auf dieselbe Weise definiert und verwendet werden.
ABAP Dictionary
Um (Geschäfts-) Anwendungen zu entwickeln, werden Werkzeuge zur Datenmodellierung benötigt. Auf dem ABAP Anwendungsserver wurden dazu bisher das ABAP Dictionary oder Werkzeuge wie der Data Modeler verwendet. Das ABAP Dictionary ist ein plattformunabhängiges Metadaten-Repository für Datenbanktabellen und Datenbanksichten, auf die in ABAP mit Open SQL zugegriffen werden kann. Es enthält vordefinierte Objekte wie Datenbanktabellen und Views, die in ABAP Programmen verwendet werden können.
Die Definition der Datenbankentitäten erfolgt im ABAP Dictionary Tool auf dem Applikationsserver. Mit SAP HANA und der Möglichkeit, Anwendungen direkt auf der Datenbank zu entwickeln, ohne einen Anwendungsserver mehr zu verwenden, entstand die Notwendigkeit, ein Metamodell-Repository direkt auf der Datenbank zu erstellen. Wie beim ABAP Dictionary auf dem Anwendungsserver sollte mehr möglich sein als die Verwendung von CREATE TABLE oder CREATE VIEW in SQL. Reine technische Definitionen sollten für eine einfachere Handhabung von Geschäftsprozessen um Semantik angereichert werden können. Diese Aufgaben deckt SAP CDS erfolgreich ab.
Da das ABAP Dictionary mit seiner Fähigkeit, Tabellen, Views und Datentypen zu definieren bereits vorhanden war, wurde SAP CDS auf dem ABAP Application Server eingeführt, indem man es dem ABAP Dictionary hinzufügte. Die in einer DDL-Datei definierten CDS-Entitäten werden bei der Ausführung zu ABAP Dictionary Objekten. Sie arbeiten dann als ABAP Typen, auf die mit Open SQL zugegriffen werden kann.
CDS-Ansichten
In einem ersten Schritt wurden die erweiterten Funktionen zum Erstellen von SAP CDS Ansichten in ABAP CDS implementiert. Für vorhandene ABAP Datenmodelle, die bereits im ABAP Dictionary definiert sind, steht mit der DEFINE VIEW Anweisung von ABAP CDS das gesamte erweiternde SAP CDS Universum zur Verfügung. Sie können entweder komplexe neue Ansichten definieren oder eine vorhandene Tabelle einfach semantisch über eine CDS Ansicht anreichern.
Beispielsweise bietet ABAP CDS ein neues Berechtigungskonzept an, das auf Rollen basiert, die mit DEFINE ROLE definiert sind. Dazu muss nur eine SAP CDS Sicht für diese Tabelle erstellt werden, die mit einer Rolle verbunden ist.
Weitere Beispiele sind erweiterte Verknüpfungen von Tabellen mit Assoziationen oder die Verwendung von Annotationen, um vorhandene Tabellen mit neuen Technologien wie OData oder UI5 zu verbinden. OData ist ein plattformunabhängiges Protokoll von Microsoft,das Datenkompatibilität zwischen Softwaresystemen herstellt. Dadurch können Daten aus unterschiedlichen Quellen integriert werden. UI5 ist ein JavaScript-Framework, das der betriebssystemunabhängigen Entwicklung von Geschäftsanwendungen dient.
SAP CDS-Architektur
Die Architektur von SAP CDS lässt sich in die Datenbankebene, die Anwendungsebene sowie die Präsentationsebene unterteilen:
Datenbankebene – Diese Ebene kann mit den meisten gängigen Datenbanken wie Oracle, SAP HANA usw. konfiguriert werden. Für die Ausnutzung aller Möglichkeiten wird SAP HANA empfohlen.
Anwendungsebene – Diese Schicht enthält die Komponenten AS ABAP Backend und SAP Gateway. Ihre Funktionalität wird über sogenannte Remote Function Call Aufrufe integriert.
Präsentationsebene – Diese Schicht enthält die SAP Fiori Benutzeroberfläche zum Anzeigen der Anwendungen für den Endnutzer.
ABAP CDS vs. HANA CDS
Die Implementierungen von HANA CDS und ABAP CDS werden fortlaufend mit unterschiedlichen Prioritäten durchgeführt und sind bisher immer auf einem leicht versetzten Stand.
Während HANA CDS nur auf SAP HANA funktionieren muss, ist ABAP CDS auch für andere ERP Systeme geöffnet. Folglich gibt es einige Einschränkungen für ABAP CDS, die für HANA CDS nicht existieren. Das ist damit vergleichbar, dass Open SQL eingeschränkter ist als Native SQL. Ein Beispiel dafür sind eingebaute Funktionen. Eine eingebaute Funktion wie CURRENCY_CONVERSION, die in ABAP CDS angeboten wird, muss auf jeder Datenbankplattform verfügbar sein und sich auf allen Plattformen gleich verhalten. Dasselbe gilt für arithmetische Ausdrücke, Aggregate oder den CAST-Ausdruck.
Darüber hinaus gibt es in ABAP Besonderheiten wie Client Handling oder Tabellenpufferung, die in HANA CDS nicht verfügbar sind, aber in ABAP CDS unterstützt werden.
Fazit
CDS wurde als Infrastruktur für Datenmodellierung in SAP HANA eingeführt, um die Definition und Verwendung von den geschäftlichen Datenmodellen eines Unternehmens zu vereinfachen. Anstatt Daten zunächst in einen temporären Speicher zu kopieren, werden Operationen möglichst direkt im Arbeitsspeicher ausgeführt. Vorteile von CDS sind dabei beispielsweise die Kompatibilität, die Effizienz sowie die Erweiterbarkeit. Um alle Vorteile von SAP HANA zu nutzen, hat SAP die CDS auch in SAP ABAP eingeführt.
Sollten Sie Hilfe benötigen oder weitere Fragen haben, dann helfen wir gerne weiter. Schreiben Sie uns eine Mail an info@compamind.de oder stellen Sie uns eine unverbindliche Anfrage: Anfrage stellen.
FAQ
Was ist SAP CDS?
SAP Core Data Services (SAP CDS) dient als Infrastruktur für die transaktionale und analytische Datenmodellierung von komplexen Datensätzen in SAP S/4HANA und ergänzt die Plattform um eine Vielzahl von Features. Im Vergleich zu anderen Datenmodellierungsdiensten, werden die zu modellierenden Daten vollständig im Arbeitsspeicher gehalten.
SAP CDS kann optional nur in SAP ABAP integriert werden und löst dadurch ABAP Dictionary oder den Data-Modeler ab. Dies ermöglicht eine Kompatibilität zu anderen SAP ERP-Systemen.
Wie funktioniert SAP CDS?
Mit SAP Core Data Services (SAP CDS) lassen sich Daten ohne vorherige Übertragung direkt im Arbeitsspeicher modellieren. Dies erlaubt eine sofortige In-Memory Data-to-Code Verarbeitung. Dabei können transaktionale und analytische Datenbankoperationen durchgeführt werden.
SAP CDS erweitert und vereinheitlich Structured Query Language (SQL). Größtenteils wird über CDS Data Definition Language (CDS DDL) modelliert. Auch andere domänenspezifischen Sprachen wie Query Language (QL) und Expression Language (EL) werden unterstützt.
SAP CDS ist vorzugsweise in ein bestehendes SAP S/4 HANA zu integrieren. Die Lösung kann aber auch als Erweiterung von SAP ABAP dienen.
Wie ist SAP CDS aufgebaut?
SAP Core Data Services (SAP CDS) gliedert sich in drei Ebenen:
- Datenbank-Ebene: Konfiguration mit der Datenbank
- Anwendungs-Ebene: ABAP Backend + SAP Gateway
- Präsentations-Ebene: UI für Endnutzer
Was sind die Vorteile von SAP CDS?
Die Anwendung von SAP Core Data Services (SAP CDS) bietet Ihnen die folgenden Vorteile:
- Schnelle Bearbeitung komplexeren (u.a. Big Data Sets) durch In-Memory Verfügbarkeit
- Zentrale Steuerung
- Flexibilität bei der Datenbankauswahl
- Beseitigung von Redundanzen durch Verwendung einer einheitlichen Data Definition Language (DDL)
- Kombination transaktionaler und analytischer Prozesse
- Intuitives Arbeiten
- Flexibilität bei der Datenbankauswahl
- Uvm.