Core Architectural Mandate: In SAP S/4HANA Clean Core, external analytics systems (Snowflake, Databricks, SAP Datasphere, Google BigQuery) must never extract data via direct database queries, obsolete RFC function modules (RFC_READ_TABLE), or trigger-based SLT on standard tables. Instead, Clean Core enforces high-performance Change Data Capture (CDC) using released Core Data Services (CDS) view entities annotated with @Analytics.dataExtraction.
In legacy SAP ECC and initial S/4HANA deployments, data engineering teams frequently connected third-party ETL pipelines directly to the SAP underlying database or leveraged trigger-based replication (SAP SLT). This practice violated core decoupling:
| Extraction Approach | Upgrade Stability | Locking & Concurrency Impact | Clean Core Status |
|---|---|---|---|
| Direct DB / JDBC Access | Zero stability (bypasses application logic, breaks on table schema updates) | Heavy table scans, read lock contention | ❌ Strictly Forbidden |
| RFC_READ_TABLE / Custom RFCs | Low stability (unmanaged memory usage, fails on 512-byte row limit) | High application server CPU spikes | ❌ Deprecated |
| Trigger-Based SLT on Standard Tables | Medium stability (DB triggers fail during system upgrades/S/4 conversion) | Trigger execution adds write overhead to transactional tables | ⚠️ Phase-Out Mandate |
| CDS CDC (@Analytics.dataExtraction) | 100% Upgrade-Stable (Public stable interface C1 contract) | Zero Lock Contention (ODP buffer page streaming) | ✅ Official Clean Core Standard |
To enable delta extraction, developers define a CDS View Entity in ABAP Cloud with the @Analytics.dataExtraction annotation suite. There are two primary delta extraction paradigms:
The most common and efficient mechanism. The CDS view designates an indexed UTC timestamp or change counter field. During each extraction run, the SAP Operational Data Provisioning (ODP) framework only reads rows where the timestamp is strictly greater than the last recorded high-watermark:
@EndUserText.label: 'Sales Order CDC Delta Extract'
@AccessControl.authorizationCheck: #CHECK
@Analytics.dataCategory: #FACT
@Analytics.dataExtraction: {
enabled: true,
delta.byElement: {
name: 'LastChangeDateTime',
maxDelayInSeconds: 15,
detectDeletedRecords: false
}
}
define view entity ZC_SalesOrderDelta
as select from I_SalesOrder
{
key SalesOrder,
SalesOrderType,
SoldToParty,
TotalNetAmount,
TransactionCurrency,
// Mandatory UTC high-watermark field
LastChangeDateTime
}
For entities requiring exact delete tracking and before/after image reconciliation, SAP S/4HANA supports full CDC table logging mapped through CDS annotations. This generates a standard RecordMode field:
N: New / Inserted recordU: Updated record (after-image)X: Updated record (before-image)D: Deleted record (tombstone)Discover complete production blueprints for CDS view optimization, ODP delta queue governance, SAP Datasphere federation, and Event-Driven Architectures in The SAP Enterprise Architecture Suite.
Get the Architecture Suite (FLASH80 - 80% Off) →When an external client (such as SAP Datasphere or an OData consumer) requests an extraction, SAP buffers the delta packages in the Operational Delta Queue (ODQ).
ODQ_CLEANUP to prune expired delta spools after 7 days.In side-by-side architectures (e.g., Python microservices, Databricks pipelines, or AWS Glue), the CDS delta view entity is exposed via an OData V4 Web API.
The client triggers an initial read with the query parameter $deltatoken. The SAP OData V4 gateway returns the current data snapshot alongside an @odata.deltaLink header containing the encrypted cryptographic token. On subsequent calls, the client queries the delta link, receiving only mutations that occurred since the token was issued.
LastChangeDateTime is backed by a database index.