Ecoservity · Independent Benchmark · January 2024

AWS S3 + STREAM Engine: 90% cost reduction on SAP to AWS integration

ETL extracts 212 raw database tables and calls it a business object. STREAM reads the business object directly. That architectural difference (not cloud choice) explains the entire cost gap. Verified on AWS S3 and Azure ADF with identical results.

90%
Cost reduction
59%
Time reduction
$1.1M
Saved on 5 TCODEs
AWS S3
Validated destination
SAP NetWeaver Certified Microsoft Certified AWS S3 Validated AWS Pre-signed URL Security USPTO Patented

ETL copies tables. STREAM reads business objects. That is the entire cost gap.

AWS Glue, AWS DMS, FiveTran, and any other ETL pipeline share the same architectural constraint: they extract database tables. SAP does not organize business data in tables: it organizes it in business objects (TCODEs, reports, transactions) that each touch dozens or hundreds of underlying tables. The STREAM Engine reads at the object level, not the table level. This single difference eliminates the Build phase entirely.

ETL approach (AWS Glue / DMS / FiveTran)

You ask for MB51. The pipeline extracts 212 tables.

ETL tools access SAP at the database layer. MB51 (Material Document List) is one SAP transaction, but it reads 212 underlying database tables. Every ETL tool must extract all of them, then engineers reconstruct the business logic in AWS Glue, Databricks, or Redshift. That reconstruction is Phase 3 (Build), costing $974,368 for 5 TCODEs.

1Extract 212 raw tables per TCODE
2Stage in AWS S3 as raw files
3Build ETL jobs to join and transform
4Map SAP column names to business names
5Rebuild filter logic SAP already computed
6Validate output against SAP source
vs
STREAM Engine (USB4SAP) approach

You ask for MB51. The STREAM Engine delivers MB51.

USB4SAP STREAM Engine connects at the SAP application layer, not the database layer. It reads the same output that SAP already produces for MB51, complete with business column names, filter logic, and computed fields, and streams it directly to AWS S3 via a standard REST call. No tables. No reconstruction. No Build phase.

1Extract 212 raw tables per TCODE
2Stage in AWS S3 as raw files
3Build ETL jobs to join and transform
4Map SAP column names to business names
5Rebuild filter logic SAP already computed
1REST call with object type, name, variant → MB51 output lands in S3
Steps 1 through 5 of ETL are the Build phase. They cost $974,368 for 5 TCODEs and 7 weeks of engineering time. STREAM Engine eliminates all five steps with one architectural decision: read from the SAP application layer, not the database layer. $974,368 becomes $704. 7 weeks becomes 2 weeks.

The scenario

Same customer, same project scope as the Azure ADF benchmark. The AWS comparison was run independently to verify the result is not cloud-specific. It is not.

Customer

  • Global manufacturer, plants in 17 countries
  • Part of a US$65B conglomerate
  • SAP ERP (ECC) and SAP BW in production
  • Needed SAP operational data in AWS for analytics and AI

What they needed to extract

  • SAP TCODE MB51 (material movements) with report variant
  • Z-reports (custom customer reports)
  • SAP BW reports and tables
  • Destination: AWS S3 data lake

Benchmark scope

  • 5 SAP TCODEs and 100 underlying tables
  • MB51 alone accesses 212 DB tables (SQL trace verified in SAP)
  • Standard AWS tools extract underlying tables only, not the TCODE output
  • 10% of tables used as baseline for comparison estimation

Why both clouds, identical result

  • The Build cost is not a cloud problem: it is an architecture problem
  • AWS Glue and ADF both extract tables. Both require the same reconstruction work.
  • STREAM Engine eliminates reconstruction on both clouds with the same REST API
  • Security layer differs: AWS uses pre-signed URL. Azure uses SAS tokens. Both zero-credential.
✓

Cross-cloud validation: same numbers on Azure ADF and AWS S3

The benchmark was run independently on both Microsoft Azure Data Factory and AWS S3. The cost result is $1,149,630 versus $112,093 (90% reduction) on both clouds. The time result is 21 weeks versus 10 weeks (59% reduction) on both clouds. The gap is architectural, not cloud-specific. See the ADF + USB4SAP benchmark for the Azure comparison.


Phase-by-phase breakdown

Every project phase on AWS alone versus AWS with the STREAM Engine plug-in. The Build phase tells the entire story.

AWS Cost comparison (US$): 5 TCODEs / 100 tables
Phase AWS ETL alone AWS + STREAM Engine $ saved % saved
1 · Plan $1,920 $640 $1,280 67%
2 · Setup $1,664 $576 $1,088 65%
3 · Build $974,368 $704 $973,664 100%
4 · Go-live $6,566 $2,560 $4,006 61%
5 · Operations $165,111 $107,613 $57,498 35%
Total $1,149,630 $112,093 $1,037,537 90%
AWS Time comparison (weeks): same result on Azure
Phase AWS ETL alone AWS + STREAM Engine Wks saved %
1 · Plan 4 wks 2 wks 2 wks 50%
2 · Setup 6 wks 2 wks 4 wks 80%
3 · Build 7 wks 2 wks 5 wks 73%
4 · Go-live 4 wks 4 wks 0 0%
Total 21 wks 10 wks 11 wks 59%
Go-live phase unchanged: STREAM Engine does not alter cutover or hypercare. Savings occur entirely in the engineering phases (Plan, Setup, Build).
$974,368 is the price of ETL's architectural constraint. Every dollar of Phase 3 (Build) cost exists because AWS ETL tools cannot read SAP business objects, only the database tables underneath them. Engineers must write code to join, filter, and translate 212 tables back into one MB51 report. Multiply that by every TCODE, report, and BW object in scope. At 400 objects, AWS ETL total cost exceeds $20M. STREAM Engine stays near-flat because the application-layer read scales differently from per-table custom code.

STREAM Engine on AWS: how it fits in your architecture

USB4SAP STREAM Engine plugs into your existing AWS infrastructure. No replacement of AWS Glue or your current pipeline. No on-premise agent to manage. SAP connectivity goes through STREAM Engine; everything downstream (API Gateway, S3, Lambda, Redshift, Bedrock) stays exactly as it is.

Batch path: full and delta SAP data to AWS S3

Scheduled or on-demand extraction of full tables and field-level CDC to S3 for data lake, analytics, and AI workloads.

SAP ECC / BW / CRM → STREAM Engine (USB4SAP) → AWS S3 → AWS Glue / Athena → Amazon Redshift / QuickSight / Bedrock

Live path: real-time SAP intelligence for AI agents and apps

On-demand REST calls for live SAP data, routed through Amazon API Gateway into downstream AI and automation services.

SAP ECC / BW / CRM → STREAM Engine (USB4SAP) → Amazon API Gateway → AWS Lambda / Step Functions → Amazon Bedrock / MCP Catalog

MCP Catalog layer enables AI agents to discover and call SAP data on-demand without pre-staging. Supports RAG architectures, agentic workflows, and real-time operational AI on live SAP data.


Security on AWS: two layers, zero credential exposure

The STREAM Engine's AWS security model combines SAP's own authorization layer with AWS pre-signed URL. No credentials stored outside either system, no custom security layer to build or maintain.

Layer 1: SAP native security

Your SAP authorizations govern every query

Every STREAM Engine request executes under the requesting user's SAP authorization profile. If a user cannot see a plant's material movements in SAP, they cannot see them through STREAM Engine either. No custom row-level security to build in AWS. No shadow copy of your SAP data without the security model attached.

Layer 2: AWS pre-signed URL

Temporary, scoped S3 access without stored credentials

STREAM Engine uses AWS pre-signed URLs to write to S3. A pre-signed URL grants time-limited, operation-scoped access to a specific S3 location. No AWS access key or secret stored in the STREAM Engine configuration. The URL expires after use. No persistent credentials. No blast radius if a URL is intercepted.

What this eliminates

No shadow credentials, no separate identity layer

Traditional ETL tools require AWS IAM credentials with broad S3 write permissions, stored persistently in the ETL platform configuration. STREAM Engine replaces this with pre-signed URLs scoped to the exact operation. Audit trail stays intact in both SAP and AWS CloudTrail simultaneously.

What you do not need to build

Zero custom security configuration in AWS

No custom VPC endpoint rules for SAP connectivity. No IAM role for the ETL platform with broad data access. No data masking layer in Glue because sensitive SAP fields were dumped into S3 without column-level filtering. STREAM Engine applies SAP's own column-level visibility before data leaves SAP.


What STREAM Engine adds to AWS that ETL cannot

The cost gap is a capability gap. These are the six things STREAM Engine delivers on AWS that any ETL pipeline architecturally cannot.

Capability 1

SAP business objects, not raw tables

TCODEs, ABAP reports, ALV output, BW extractors, CDS views all stream to S3 as complete business objects. Not 212 raw tables that must be joined: the final output, ready for Athena, Redshift, or Bedrock to query directly.

Capability 2

Field-level CDC on 850K+ SAP tables

Change Data Capture at field level, not table level. Only changed fields stream to S3, not a full table reload on every run. No change pointers activation in SAP required. Works on SAP ECC, S/4HANA, BW, and CRM on HANA or non-HANA databases.

Capability 3

Real-time REST for AI agents and Lambda

Standard REST API with no SAP SDK. AWS Lambda functions, Step Functions workflows, and Amazon Bedrock agents can query live SAP data on-demand, not from a staging copy in S3 that may be hours old.

Capability 4

MCP Catalog for agentic AI

STREAM Engine exposes SAP objects through MCP (Model Context Protocol), the standard that AI agents use to discover and call tools. Amazon Bedrock agents can query SAP inventory, orders, and financials without any custom connector development.

Capability 5

Non-SAP sources on the same API

The same STREAM Engine REST API handles non-SAP sources alongside SAP: Oracle Hyperion, IoT data streams, unstructured data. One API for mixed enterprise data landscapes, not separate ETL pipelines per source.

Capability 6

Zero custom code at any scale

At 5 SAP objects, STREAM Engine costs $112K versus $1.15M for ETL. At 400 objects, ETL exceeds $20M. STREAM Engine scales near-flat because the REST call is the same for any object. No per-object custom code that compounds the Build phase.


Run this on your SAP to AWS architecture

The $1.1M saving above is for 5 TCODEs and 100 tables. Every additional TCODE or BW report multiplies the ETL Build cost while STREAM Engine stays near-flat. Talk to us about your specific SAP object footprint and AWS target architecture.