DE Mastery GitHub

Lakehouse & open table formats · LKH-04

Row-level changes — SCD2, CoW & MoR

From your world. Your SCD2 dimension snapshots and Redshift upserts

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

1Why can't Iceberg update a row by editing the Parquet file in place?
2What is the core trade-off between copy-on-write and merge-on-read?
3After DELETE FROM t WHERE id=2 on a merge-on-read v2 table, what do you expect in SELECT content, count(*) FROM t.files GROUP BY content?
4After the same DELETE on a copy-on-write table, how do you detect that the data file was rewritten?
5In SCD2, what happens to the previously-current row when a tracked attribute changes?
6Which of these are classic SCD2 bugs the tests must catch? (select all) (select all that apply)
7Why check SCD2 output against a DuckDB oracle instead of a hand-written expected table?
8When is merge-on-read the wrong choice?