Db2 to Snowflake replication tools and what CDC really costs in Snowflake credits
9 min read Migration The Adapters team
Field mapping auto-plugged · tap a port to rewire
Plug a source port into
Transform on this cable
JSON in
JSON out
5 sample records ready
There are four ways to replicate Db2 to Snowflake: log-based CDC from IBM Data Replication or Qlik Replicate, AWS DMS into S3 followed by Snowpipe, a managed ELT connector such as Fivetran, or an incremental sync on a key column. Snowflake ships no Db2 connector of its own. The tool is only one of three bills. How often you merge changes into Snowflake decides how long a warehouse runs, and on a tight schedule that can cost more than the replication tool.
Key takeaways
- No first-party feed. Snowflake's Openflow connector list covers six databases and Db2 is not one of them.
- DMS cannot write to Snowflake. It is not in the DMS target list, so the AWS path is DMS to S3 plus a load job you own.
- Ingestion is cheap. Snowpipe now bills 0.0037 credits per GB, so 100 GB of changes is well under one credit.
- Merging is not. Each warehouse resume bills at least 60 seconds. Merging every minute keeps it running all month.
- Snowflake will not stop duplicates. It enforces NOT NULL and no other declared constraint, so the merge has to dedupe.
How do I replicate Db2 to Snowflake?
Pick one of four methods based on your Db2 platform, how fresh Snowflake has to be and who will run the pipeline. Log-based capture reads the Db2 recovery log and is the only class that handles mainframe volumes. The AWS route stages changes in S3. Managed connectors trade control for a meter. An incremental sync on an updated-at column needs no log access at all, which matters more than it sounds in a bank where the DBA team owns every log setting.
| Method | Tools | Needs on Db2 | What bills | Watch |
|---|---|---|---|---|
| Log-based CDC | IBM Data Replication, Qlik Replicate | Recoverable database, DATA CAPTURE CHANGES, a capture user with high authority | Quoted license, plus servers to run it | Heaviest setup, best for z/OS and volume |
| DMS to S3, then Snowpipe | AWS DMS plus your COPY or Snowpipe job | Same log settings on Db2 LUW. z/OS is full load only | DMS instance hours, S3, Snowpipe per GB | No Snowflake target, DECFLOAT changes ignored |
| Managed ELT connector | Fivetran, Airbyte, CData Sync | Read access, log access for change capture modes | Monthly active rows, credits or edition | Bill follows change volume |
| Incremental sync on a key | Adapters, ingestr | Read access and an updated-at or increasing key column | Flat plan, or your own servers | Deletes need a soft-delete flag or a sweep |
What does Db2 to Snowflake replication cost?
Three meters run at once: the replication tool, Snowflake ingestion and the Snowflake compute that merges changes into the target tables. Vendors quote the first. The second is now small, because Snowpipe has billed a flat 0.0037 credits per GB on every edition since 8 December 2025, measured on uncompressed size for CSV and JSON. The third is the one that surprises finance, because it depends on a schedule somebody picked in a setup screen.
Snowflake bills a running warehouse per second, but every time a warehouse starts or resumes it is billed for at least 60 seconds. A merge that takes 20 seconds on a warehouse set to auto-suspend after 60 seconds bills about 80 seconds. Run that every minute and the warehouse never gets a chance to suspend. The table below is the arithmetic for an X-Small warehouse at 1 credit per hour, a 20-second merge, AUTO_SUSPEND of 60 and a 30-day month. Multiply by your contract's price per credit. Larger warehouses multiply it again.
| Merge cadence | What the warehouse does | Billed hours per day | Credits per month |
|---|---|---|---|
| Every minute | Never suspends | 24.0 | 720 |
| Every 5 minutes | 288 cycles of 80 s | 6.4 | 192 |
| Every 15 minutes | 96 cycles of 80 s | 2.1 | 64 |
| Hourly | 24 cycles of 80 s | 0.5 | 16 |
| Daily | 1 cycle of 80 s | 0.02 | under 1 |
Going from every minute to every 15 minutes cuts that line by more than 90 percent, and for most reporting on Db2 data nobody can tell the difference. Ask the people who read the dashboards how stale is too stale before the pipeline is built, not after the first invoice. If the warehouse already runs all day for BI queries, the marginal cost of merging into it is much lower, which is the honest case for sharing one. Either way, put a Snowflake resource monitor on it and a real-time alert on cloud spend so a changed schedule shows up the next morning rather than at month end.
For the tool line itself, the billing units differ more than the totals do. Fivetran meters monthly active rows, so a Db2 table with heavy updates costs more than a larger table that only grows. IBM and Qlik quote licenses and need servers you run. Our plans are flat, from $49 a month with no per-row overage fees, and the comparison of every tool on this route is on the Db2 to Snowflake migration tools page.
What does log-based CDC need on Db2?
On Db2 LUW it needs a recoverable database and capture enabled on every table. Qlik's prerequisites say the database is recoverable when LOGARCHMETH1 or LOGARCHMETH2 is not OFF, that source tables need DATA CAPTURE CHANGES, with INCLUDE LONGVAR COLUMNS if long columns must be captured, and that its user needs SYSADM or DBADM plus DATAACCESS. Those are change tickets in most regulated shops, so raise them in the first week rather than the week of the cutover.
The platform matters as much as the settings. AWS DMS reads Db2 for z/OS as full load only, with no change capture, so it cannot keep Snowflake current from a mainframe. It also documents that changes to DECFLOAT columns are ignored during ongoing replication from Db2 LUW. IBM Data Replication lists Db2 and Db2 for z/OS among its sources and Snowflake among its targets, which is why it is the usual answer when the system of record is on the mainframe.
Which Db2 to Snowflake replication tool is best for my setup?
For Db2 for z/OS with a live feed, IBM Data Replication. For Db2 LUW at high change volume with an existing Qlik estate, Qlik Replicate. For an AWS shop that already stages data in S3 and has no DECFLOAT columns, DMS plus Snowpipe. For a team on Fivetran with a modest change rate, its Db2 connector. For typed Snowflake tables fed every few minutes during a long cutover, with a bill that does not move when updates spike, an incremental sync on a declared mapping.
Whatever the tool, test DECFLOAT first. Snowflake now has a native DECFLOAT with 38 digits that holds Db2's 34 exactly, but it does not accept the INFINITY and NAN values Db2 allows, and it needs recent client drivers. A connector on an older driver, or one that maps DECFLOAT to FLOAT, changes money values without raising an error.
Can Snowflake reject duplicate rows from replication?
No. Snowflake lets you declare primary and unique keys but enforces only NOT NULL on standard
tables, so a batch that replays after a network error lands twice and nothing complains. The fix
belongs in the merge: MERGE on the declared key, keep the latest change per key in the source of the
merge, and run a weekly GROUP BY key HAVING COUNT(*) > 1 on every replicated table.
At-least-once delivery is normal for every tool on this list. Silent duplicates are a design choice.
How do I check that Db2 and Snowflake still match?
Reconcile on values rather than row counts. Each day, compare the SUM of every numeric column, MIN and MAX of every timestamp and a count of distinct keys between Db2 and Snowflake for a closed window such as yesterday. Run the DECFLOAT columns separately if DMS is anywhere in the path. A row count that matches is the most misleading green light in replication, because it passes on a pipeline that froze one column or doubled one batch.
If Snowflake is the destination and Db2 is being retired, the type decisions that have to hold on every sync are listed on the landing page above, and the same source into an operational database is covered in our guide to converting Db2 data types to PostgreSQL. For the capture tools across every source, see change data capture tools, and for what the rest of the warehouse stack costs, Snowflake ETL tools.
Feed Snowflake from Db2 on a schedule you choose, at a price that does not move
Declare the columns once with DECFLOAT kept exact, run the backfill, then let the same mapping merge on your key every few minutes with retries, alerts and per-record logs. From $49 a month, with no per-row overage fees.
The live demo needs no card, and Starter is $49 a month.