Skip to content

CData Sync alternative — CData Sync vs Skippr ​

CData Sync is replication. You pick a source from CData's driver catalog, pick a destination, and a job copies rows on a schedule. Standard licensing is incremental replication: watermark or change-tracking queries, schema follow, up to five standard connections and 100 million processed rows a month for 7,999 USD a year, cloud or on-prem. Log CDC is a different SKU. It reads WAL, redo, binlog, or native change tracking, keeps an LSN, and is listed under "other configurations" as quote, next to unlimited rows, premium connectors, transforms, RBAC, SSO, and the REST API. v26 (January 2026) writes Iceberg to S3, Azure Blob, ADLS, and GCS, and still writes Delta. AWS AMI hourly is 2.74 USD for Professional (10 connections) and 4.87 USD for Enterprise (20). The same page sells reverse ETL. Sync is not a Streamhouse. There is no SQL engine in the job.

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 row-band meter. ELT into a warehouse is one path, not the product.

FeatureSkipprCData Sync
DeploySingle Rust binary, your VPC or on-premSync Cloud, on-prem, or AWS/Azure AMI
SchemaIn-stream evolution, sibling columnsAutomated schema change on the job
StorageOpen Iceberg on Parquet you ownWarehouse, Delta, or Iceberg on object storage (v26)
CDCLog-based; fails closed if the dest cannot honourQuote add-on. Standard is incremental, not log CDC
Queryskipprd query on Iceberg ∪ WAL; history in any Iceberg engineDestination after the job. No lake SQL in Sync
PricingFree self-hosted engine7,999 USD/year Standard (5 connections, 100M rows/month). CDC is quote.

What CData Sync is good at ​

A source CData already ships a driver for. That is the product. Salesforce, SAP, IBM i, and a long tail of SaaS land in Snowflake or SQL Server without you writing JDBC. Incremental jobs are cheap to stand up. Iceberg in v26 means the same job can write an open table on S3 instead of only a warehouse. If the job is "this obscure app into a table tonight," that is a real product.

Where the job is wider ​

Sync is a replicator. 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 Snowflake or Athena.

CDC is the ops. The 7,999 USD card is incremental. Log CDC, unlimited rows, and premium connectors are quote. A processed-row band is not a log. Enhanced CDC for SAP HANA and IBM Db2 exists; it is still that add-on. Hourly AMI looks small until the instance runs all month.

Skippr will not match CData's SaaS driver catalog. Skippr also will not reverse-ETL a warehouse back into Salesforce. If the job is "driver we already have, scheduled copy," Sync is the narrower tool. If the job is live SQL on Iceberg you run, Sync 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 CData Sync if you need a CData driver into a warehouse or Iceberg files, and a scheduled job is enough.

Choose Skippr if you want one binary, live SQL, and Iceberg files that stay yours. Skippr will not ship CData's SaaS catalog.

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