Skip to content

SAP Data Services alternative — SAP Data Services vs Skippr ​

SAP Data Services is on-prem ETL for SAP estates. Current docs are 4.3. You draw jobs, work flows, and data flows in Designer. A local repository holds the objects. A Job Server starts the engine: extract, transform, load, in batch. An Access Server sits in front of real-time services and queues messages across Job Servers. The Central Management Console from BI or IPS is the admin plane. The engine can push SQL down. CDC is a chapter, not a product: source-based or target-based, Oracle CDC tables, SQL Server CDC or Change Tracking, timestamp columns, Attunity on mainframe, or SAP Replication Server / SLT. BW Source and BW Target datastores are first-class. Enterprise Edition on many contracts also includes Information Steward and meters cores across that bundle. SAP does not publish a list price. Private-cloud reseller cards exist; they are quote. This is not SAP Integration Suite (iPaaS messages) and it is not Datasphere.

Skippr is an open Streamhouse you run as one Rust binary. Write skippr.yml (or the same thing in Python), discover, sync. You query live state over Iceberg ∪ WAL, and the history is ordinary Iceberg in your bucket. No Job Server. ELT into a warehouse is one path, not the product.

FeatureSkipprSAP Data Services
DeploySingle Rust binary, your VPC or on-premDesigner, repository, Job Server, Access Server, CMC
SchemaIn-stream evolution, sibling columnsDatastore metadata plus data-flow mapping
StorageOpen Iceberg on Parquet you ownTarget datastore. No Iceberg destination in 4.3
CDCLog-based; fails closed if the dest cannot honourSource- or target-based. Oracle, SQL Server, timestamp, SLT, Attunity
Queryskipprd query on Iceberg ∪ WAL; history in any Iceberg engineTarget after the job. No lake SQL in Data Services
PricingFree self-hosted engineQuote. Enterprise Edition cores, often with Information Steward.

What SAP Data Services is good at ​

SAP extractors without a third-party RFC shim. BW Source, ECC tables, and a push-down that stays in the database are why BW teams still run weekend loads here. Data quality transforms and Information Steward sit next to the job. If the job is "IDocs and BW into a warehouse we already own," that is a real product.

Where the job is wider ​

Data Services is a job studio. It is not a Streamhouse. There is no Iceberg ∪ WAL. There is no skipprd query on in-flight rows. The job ends; then you query the target.

CDC is several mechanisms. Timestamp CDC is a watermark. Oracle CDC is Oracle's tables. SLT is another SAP license. Attunity on mainframe is a third stack. Pick the wrong one and you still have a full extract.

Cores are the meter. Enterprise Edition shares them with Information Steward. A Job Server group licenses the hosts you stood up, not the rows you moved. Integration Suite is a different SKU and a different job (messages, 250 KB chunks). Datasphere is SAP's newer cloud warehouse path, not a Data Services rename.

Skippr will not call ODP, IDoc, or BW. Skippr also will not run a Data Services job. If the job is "SAP extractor into a warehouse," Data Services is the narrower tool. If the job is live SQL on Iceberg you run, Data Services was never that.

Getting started ​

Install skipprd from the install guide, or pip install skippr. The three tabs write the same skippr.yml. Then discover, sync, and query.

yaml
skippr:
  workspace: analytics
  skipprd_el_storage_mode: local

pipelines:
  orders:
    data_source: data_sources.app_db
    data_sink: data_sinks.lake

data_sources:
  app_db:
    Postgres:
      host: db.internal
      user: skippr_reader
      password: ${APP_DB_PASSWORD}
      database: app
      tables: [orders, customers]
      cdc_mode: snapshot_then_cdc

data_sinks:
  lake:
    AthenaIceberg:
      warehouse: s3://my-iceberg-warehouse/
      glue_database_name: analytics
      athena_workgroup_name: primary
      athena_results_s3_bucket: my-athena-results
      region: us-east-1
    schema_sink: schema_sinks.lake_schema

schema_sinks:
  lake_schema:
    AthenaIceberg:
      warehouse: s3://my-iceberg-warehouse/
      glue_database_name: analytics
      athena_workgroup_name: primary
      athena_results_s3_bucket: my-athena-results
      region: us-east-1
bash
skipprd --workspace analytics --storage-mode local connect data-source postgres \
  --pipeline orders \
  --name app_db \
  --host db.internal \
  --user skippr_reader \
  --password '${APP_DB_PASSWORD}' \
  --database app \
  --tables orders \
  --tables customers \
  --cdc-mode snapshot_then_cdc

skipprd connect data-sink athenaiceberg \
  --pipeline orders \
  --name lake \
  --warehouse s3://my-iceberg-warehouse/ \
  --glue-database-name analytics \
  --athena-workgroup-name primary \
  --athena-results-s3-bucket my-athena-results \
  --region us-east-1

skipprd connect schema-sink athenaiceberg \
  --pipeline orders \
  --name lake_schema
python
from skippr import (
    Config,
    DataSinkAthenaIceberg,
    DataSourcePostgres,
    DataSourcePostgresSourceCdcMode,
    EnvRef,
    LocalStorage,
    Pipeline,
)

cfg = Config().workspace("analytics").storage(LocalStorage())

app_db = cfg.data_source(
    "app_db",
    DataSourcePostgres(
        host="db.internal",
        user="skippr_reader",
        password=EnvRef("APP_DB_PASSWORD"),
        database="app",
        tables=["orders", "customers"],
        cdc_mode=DataSourcePostgresSourceCdcMode.SNAPSHOTTHENCDC,
    ),
)

lake = cfg.data_sink(
    "lake",
    DataSinkAthenaIceberg(
        warehouse="s3://my-iceberg-warehouse/",
        glue_database_name="analytics",
        athena_workgroup_name="primary",
        athena_results_s3_bucket="my-athena-results",
        region="us-east-1",
    ),
    schema_sink="lake_schema",
)

cfg.pipeline("orders", Pipeline(data_source=app_db, data_sink=lake))
cfg.save("skippr.yml")
bash
export APP_DB_PASSWORD='your-postgres-password'
skipprd discover --pipeline orders
skipprd sync --pipeline orders --once
skipprd query "SELECT count(*) FROM analytics.orders"

Which to choose ​

Choose SAP Data Services if you need BW or ECC extractors into a warehouse, and a job after Designer is enough.

Choose Skippr if you want one binary, live SQL, and Iceberg files that stay yours. Skippr will not call ODP or IDoc.

Install from Install. Connector and query reference live in Developer Docs. For optional onboarding in your VPC, Enterprise Jumpstart or Contact.