Dataddo alternative — Dataddo vs Skippr
Dataddo is SaaS data movement. You buy flows: one source (or a blend) to one destination. Data Anywhere starts at $99 a month for three flows. The same source to a second destination is a second flow. Volume and sync frequency do not move that meter. They have 400+ connectors they maintain, log-based CDC on Postgres, MySQL, SQL Server, Oracle, and MongoDB, reverse ETL, and an Iceberg REST Catalog destination (Polaris, Unity, Glue's REST endpoint, and others). Enterprise can put the data plane on-prem or in an EU sovereign cloud. Data to AI is a separate seat product, from $10.49 a month billed yearly, three seats minimum.
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 flow pack. ELT into a warehouse is one path, not the product.
| Feature | Skippr | Dataddo |
|---|---|---|
| Deploy | Single Rust binary, your VPC or on-prem | SaaS. Enterprise adds on-prem / hybrid / EU sovereign data plane |
| Schema | In-stream evolution, sibling columns | Schema-drift handling they own on the connector |
| Storage | Open Iceberg on Parquet you own | Warehouse, dashboard, app, or Iceberg REST Catalog they write |
| CDC | Log-based; fails closed if the dest cannot honour | Log-based on supported databases. Streaming to Kafka / Event Hubs |
| Query | skipprd query on Iceberg ∪ WAL; history in any Iceberg engine | Destination after the flow. No engine-side live SQL |
| Pricing | Free self-hosted engine | From $99/month for 3 Data Anywhere flows. See their pricing. |
What Dataddo is good at
A flow is easier to budget than MAR. Ads into BigQuery, HubSpot into Sheets, a database into Snowflake: each is one line, not a row counter. They will build a missing connector, typically in about four weeks. The Iceberg REST destination is real. You can land Parquet they commit through your catalog. EU residency and an on-prem data plane exist if you buy Enterprise. For a marketing or ops team that wants Looker Studio without a warehouse, Data to Dashboards at $99 for ten flows is the narrower product.
Where the job is wider
Fan-out is the tax. Google Ads to BigQuery is one flow. The same extract to Snowflake is two. Reviewers mention that double charge. Advanced configuration is less obvious than the first flow. Complex joins in their plane are limited. Headless and embedded switch the meter to integration units (rows and actions), so the "no volume tax" story is for the standard flow plans.
Dataddo's Iceberg write is still their SaaS talking to your catalog. You do not run the engine. There is no skipprd query over in-flight WAL. On-prem is Enterprise. Data to AI is seats, not the pipeline.
Skippr will not give you Dataddo's dashboard destinations, MCP seats, or a four-week custom connector desk. If the job is "three SaaS-to-warehouse flows on a $99 bill," Dataddo is the narrower tool. If the job is live SQL on Iceberg you run, Dataddo 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.
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-1skipprd --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_schemafrom 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")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 Dataddo if you want a flow-priced SaaS, they already have the connector, and writing Iceberg through their REST destination is enough.
Choose Skippr if you want one binary, no flow pack, live SQL, and Iceberg files that stay yours.
Install from Install. Connector and query reference live in Developer Docs. For optional onboarding in your VPC, Enterprise Jumpstart or Contact.
