Supported databases
How it works
- Ingest Engine takes an initial snapshot when the selected snapshot mode requires one.
- Debezium continues from the corresponding binlog position or PostgreSQL LSN.
- Changes are grouped by source table and written to that table’s Iceberg destination.
- Source progress and Iceberg data and delete files are coordinated through Ingest Engine checkpoints.
- A checkpoint completes only after the Iceberg catalog commit succeeds.
Write modes
Multi-table Iceberg supports two write modes. Choose the mode based on whether the destination should retain change history or expose the latest state of each source row.Append-only
Append-only mode writes every captured change as a new Iceberg row. Inserts, updates, deletes, and snapshot reads remain available as a change history with operation metadata. Use append-only mode for:- audit and history tables;
- downstream change processing;
- replayable raw data layers;
- the highest write throughput when a current-state table is not required.
Full CDC
Full CDC mode maintains the current state of every source row in Iceberg. Source tables must have a stable primary key. Ingest Engine writes new row versions and removes the replaced or deleted versions as part of the same checkpoint. Ingest Engine selects the appropriate Iceberg delete representation for the target table:- Equality deletes match rows in previously committed data files by primary key.
- Position delete files target recent rows when Ingest Engine knows their data file and row position. This is the position-based representation used by Iceberg v2 tables.
- Deletion vectors encode position-based deletes for Iceberg v3 tables when the catalog and query engines support them.
Create a CDC source
Create CDC sources through the API. The source schema is discovered from the database, so the request does not repeat every source column.MySQL
database. You can also use fully qualified names such as ecommerce.orders.
PostgreSQL
schema. Use distinct replication slot and publication names for independently running CDC sources.
Source configuration
Snapshot modes
Snapshot mode values are passed to the bundled Debezium connector. Common modes are:Configure multi-table Iceberg
EnablemultiTable on the Iceberg sink. Ingest Engine derives a destination table name from each captured source table and creates the table when it first receives data.
Include the database and schema in the template when the same table name may appear in multiple source namespaces.
See Apache Iceberg for catalog authentication, object-store credentials, Parquet settings, and table properties.
Exactly-once commits
Ingest Engine coordinates database progress with Iceberg through checkpoint barriers and two-phase commits:- Writers finish the data files and delete information produced for the checkpoint.
- The checkpoint records the corresponding database position.
- Ingest Engine commits the files as one atomic Iceberg snapshot for each target table.
- The checkpoint is acknowledged only after the catalog accepts the snapshot.