DE Mastery GitHub

Apache Flink · FLK-10

CDC & lake sinks — Debezium changelog to Iceberg, commit on checkpoint, schema evolution

From your world. loading your lakehouse: a CDC feed from an operational database landing as an upserted Iceberg table your dbt models read

Practice quiz with instant feedback. For a scored run that counts toward your local progress, use uv run de quiz FLK-10.

1How does a table declared with 'format'='debezium-json' map a Debezium update event (op=u) to Flink RowKinds?
2Why must the target Iceberg table be format-version 2 with a PRIMARY KEY for a CDC upsert sink?
3When does the Iceberg sink of Flink make its changes visible in the table?
4The source adds a new column 'region'. You run ALTER TABLE ... ADD (region STRING) on the Iceberg table. What happens to the rows that existed before the ALTER?
5After applying c(id=1), c(id=2), u(id=1), d(id=2) to an upsert Iceberg table, what is the final table state?
6What is the correct way to feed a deterministic CDC changelog into Flink for testing, without Docker?
7A Flink Iceberg CDC job crashes and recovers from its last checkpoint. Why does the job not commit rows twice to the table?
8Which are good reasons to prefer a continuous Flink CDC → Iceberg job to a nightly batch MERGE? Select all that apply. (select all that apply)