Connectors SAP S/4HANA to Google Cloud Storage

SAP S/4HANA to Google Cloud Storage: full history landed and reconciled, then kept current.

Lima Backbone reads SAP S/4HANA through released CDS views, types the data correctly on landing, writes it into Google Cloud Storage as parquet under raw/ and history/ prefixes, partitioned by date and key, and keeps it current from the source’s changes. Every run ends with a row count and a control total per table.

OUT OF SAP S/4HANAItemsI_Product · MARA · MARCBills of materialSTKO · STPO · MASTRoutings and production versionsPLKO · PLPO · MKALStock by statusMATDOC · MARDLIMA BACKBONEExtractReleased CDS views · Table reads through…Checknine checks before anything loadsShapetypes, keys, deletes, partitionsLoadParallel partitioned writes with a manif…INTO GOOGLE CLOUD STORAGEGoogle Cloud StorageParquet under raw/ and history/ prefixes…
The path from SAP S/4HANA to Google Cloud Storage. Objects come out through the source's methods, are typed and checked, land in Google Cloud Storage and are kept current from the source's changes.
220M rows
615 tables · ~30 GB in ~30 min on 64 vCPU
performance estimate
80 GB/day
moved and transformed every day
production · semiconductor enterprise
32 GB/day
changed rows across 4,218 tables; change feed 1m 48s behind
showcase estate
8
checks on landing
product
1
count and control total per table per run
product
What Google Cloud Storage expects

The model the load has to fit.

ModelParquet under raw/ and history/ prefixes, partitioned by date and key; BigLake tables optional.LoadParallel partitioned writes with a manifest; counts and control totals per table.BackRestore on demand into any target.
The hardest part of this path

Partition layout that suits BigQuery's external reads.

The Google Cloud Storage connector page →

What comes out of SAP S/4HANA

Objects and where they go.

The first load is assembled from these objects through released CDS views. Change capture (delta-enabled CDS views, change pointers, table-level change capture) keeps the daily volume small afterwards.

Planning objectSource objectsDestination in Google Cloud Storage
ItemsI_Product · MARA · MARCraw/ Parquet → history/; BigLake table
Bills of materialSTKO · STPO · MASTraw/ Parquet → history/; BigLake table
Routings and production versionsPLKO · PLPO · MKALraw/ Parquet → history/; BigLake table
Stock by statusMATDOC · MARDraw/ Parquet → history/; BigLake table
Open purchase ordersEKKO · EKPO · EKETraw/ Parquet → history/; BigLake table
Open sales ordersVBAK · VBAP · VBEPraw/ Parquet → history/; BigLake table
Production ordersAFKO · AFPOraw/ Parquet → history/; BigLake table
Planned independent requirementsPBIM · PBEDraw/ Parquet → history/; BigLake table
Customers and suppliersKNA1 · LFA1 · BUT000raw/ Parquet → history/; BigLake table
CalendarsTFACD · T001Wraw/ Parquet → history/; BigLake table
How SAP S/4HANA is read

Released CDS views, table reads through a named function module, BAPIs, change pointers and extractor delta queues. No ODP RFC (SAP Note 3255746), no RFC_READ_TABLE in production (SAP Note 382318), no reading of the HANA database log (SAP Note 2971304). No add-on is installed in SAP.

The path, step by step

Six steps, one report at the end.

ConnectRegister SAP S/4HANA and Google Cloud Storage with credentials from the vault; test both connections.
ExtractFirst load through released CDS views; then delta-enabled CDS views, change pointers, table-level change capture.
CheckNine checks run before anything loads; a failed row becomes an exception with an owner and the load continues with the valid rows.
ShapeTypes are set from the source, keys kept complete, deletes and late changes applied in order.
LoadParallel partitioned writes with a manifest; counts and control totals per table.
Keep currentChanges from SAP S/4HANA are applied on the schedule you set; every run ends with the same report.
The checks that run before anything loads

8 checks, each with a plain example.

Every check either passes a row or turns it into an exception record with an owner. Nothing is dropped silently.

CheckKindWhat it catches, with an example
Types set from the sourcetypingSAP dates and times stored as text become dates and times; currency decimals shifted by the currency's rule
Keys complete and uniquekeysclient or organisation columns kept in the key; zero-padded keys preserved
Deletes appliedconsistencyrows deleted in the source are marked or removed in the copy
Late changes land in orderconsistencya change that arrives after a later one is applied by its source timestamp
Wide and cluster tables completecompletenessevery column of a wide table lands; cluster tables read through the released module
Partitions cover the rangecompletenessevery date partition present; gaps reported
Counts and control totals matchreconciliationrows and amounts per table compared between source and target
Schema changes noticeddrifta new or changed column is flagged before it breaks a downstream query
Cadence and offer

How the copy stays current, and how the work is priced.

After the first landing, Google Cloud Storage receives the source's changes: delta-enabled CDS views, change pointers, table-level change capture. A migration month costs the same as a quiet month on the same tier.

Terms on this page

Plain meanings.

LandingWriting rows into the target's raw layer as they arrived, typed, before any business transformation.
Referential orderLoading parents before children so every row finds what it refers to.
Control totalThe sum of a key amount column compared between source and target, along with the row count.
Exception recordA row that failed a check: kept, routed to an owner, replayed once fixed.
Change captureReading only the rows that changed, from a log, change pointers or timestamps.
Questions

Asked about this path.

How long until the first load is live?

Days for the first tables; a full-history migration is sized by table count and volume, and read in partitions inside the run windows your administrators allow.

What does the data team see?

Counts per step, the check that stopped a row, the owner and the replay point, and the lineage of any number back to its source column.

Who runs it after go-live?

Your team, on the schedule you set, with the same report after every run; or your systems integrator; or Lima's team under the subscription.

Land your first tables in Google Cloud Storage.

One call scopes the dataset, the run window and the tier. The reconciliation report at the end is the acceptance test.