Um CDS-Views mit Delta-Logik für Change Data Capture (CDC) zu erstellen, können Sie in SAP spezielle Techniken nutzen, um nur die geänderten (delta) Daten zu erfassen. Die Delta-Logik ermöglicht es, Dateninkremente zu erfassen, sodass nur neue oder geänderte Datensätze abgerufen werden, was besonders für Echtzeit-Datenintegrationen oder -analysen wichtig ist.
- Wenn die zugrunde liegende Tabelle oder Datenquelle ein Feld wie LAST_CHANGE_TIMESTAMP oder UPDATED_ON enthält, können Sie dieses Feld für die Delta-Erkennung nutzen.
- In der CDS-View-Definition können Sie ein Filterkriterium hinzufügen, das nur Daten mit einem LAST_CHANGE_TIMESTAMP nach dem letzten Abrufdatum abruft.
Beispiel für eine CDS-View mit Delta-Logik:
@AbapCatalog.sqlViewName: 'ZMYDELTA_VIEW'
@AccessControl.authorizationCheck: #NOT_REQUIRED
define view ZMyDelta_View as select from YourTable
{
key YourTable.ID,
YourTable.Field1,
YourTable.Field2,
YourTable.LAST_CHANGE_TIMESTAMP
}
where LAST_CHANGE_TIMESTAMP > $session.last_extraction_time
Hier wird $session.last_extraction_time als dynamischer Wert verwendet. Dies kann z.B. das Datum des letzten Datenabrufs sein und muss entsprechend angepasst oder gespeichert werden.
- Wenn Sie SAP SLT (SAP Landscape Transformation) verwenden, können Sie CDC für bestimmte Tabellen aktivieren und die Daten in eine Zieltabelle replizieren, die nur geänderte Daten enthält.
- Diese Tabelle kann dann in einer CDS-View verwendet werden, um eine Delta-Erfassung zu ermöglichen.
- SAP bietet die Möglichkeit, analytische CDS-Views zu erstellen, die über spezielle Annotations wie @Analytics.dataExtraction.delta.changeDataCapture delta-fähig gemacht werden können.
- Durch diese Annotation kann SAP erkennen, dass Sie einen inkrementellen Abruf benötigen.
Beispiel:
@Analytics.dataExtraction.delta.changeDataCapture: { enabled: true, type: #CHANGE_LOG }
@AbapCatalog.sqlViewName: 'ZMYCHANGE_LOG_VIEW'
define view ZMyChange_Log_View as select from YourTable
{
key YourTable.ID,
YourTable.Field1,
YourTable.Field2,
YourTable.CHANGE_LOG_FIELD
}
- In einigen Fällen unterstützt SAP nativ Changelog-Tabellen für bestimmte Standardtabellen. Sie können diese Tabellen als Datenquelle für Ihre CDS-Views verwenden, um nur die Änderungen seit dem letzten Abruf zu erhalten.
- Falls keine Changelog-Tabelle existiert, können Sie eine Change-Pointer-Lösung verwenden oder eine Änderungsüberwachung in Eigenentwicklung implementieren.
- Für komplexe Szenarien, bei denen die Standard-CDS-Logik nicht ausreicht, können Sie AMDP verwenden. Diese erlauben es Ihnen, benutzerdefinierte SQL-Prozeduren auf der HANA-Datenbank auszuführen, um nur geänderte Daten zu extrahieren.
- Sie erstellen dann eine CDS-View, die AMDP aufruft und Delta-Daten zurückgibt.
- SAP Event Mesh ermöglicht eine ereignisgesteuerte Architektur. Wenn bestimmte Änderungen in den Daten auftreten, können diese als Ereignis an den Event Mesh gesendet werden.
- Die Daten werden dann über eine API oder einen Service abgerufen, der als Data Source in der CDS-View integriert werden kann, um nur aktuelle Änderungen zu erhalten.
1. Identifizieren Sie die Delta-Felder (wie LAST_CHANGE_TIMESTAMP) in Ihrer Datenquelle.
2. Erstellen Sie eine CDS-View, die nur die geänderten Daten abruft, indem Sie einen Filter auf das Delta-Feld anwenden.
3. Automatisieren Sie die Extraktion: Setzen Sie in Ihrem Abrufprozess den Zeitpunkt des letzten Abrufs, um bei jedem Lauf nur die neuen Änderungen zu erfassen.
4. Nutzen Sie ggf. zusätzliche Tools wie SAP SLT oder SAP Event Mesh, falls eine komplexere Integration erforderlich ist.
Diese Methoden helfen Ihnen dabei, eine leistungsfähige CDC-Lösung in SAP zu implementieren, die auf CDS-Views basiert und gleichzeitig inkrementelle (Delta-)Daten effektiv erfasst.
ABAP Core Data Services (CDS) sind eine moderne Möglichkeit in SAP ABAP, Datenbankabfragen und Datenmodelle zu definieren.
Sie sind ein semantisches Schichtmodell auf der Datenbank, mit dem man Daten deklarativ beschreibt, statt rein prozedural in ABAP zu programmieren.