Slowly Changing Dimensions (SCD) is a data warehousing concept describing how dimension table records (like customer, product, or employee records) change over time, and the strategies for managing those changes in a way that preserves historical analytical accuracy. The term was formalized by Ralph Kimball and remains foundational to dimensional data modeling in modern lakehouses.

The SCD Types

SCD Type 2 and Apache Iceberg

Implementing SCD Type 2 historically required complex ETL logic: identify changed rows, close existing records by setting end dates, and insert new rows with new effective dates. Iceberg's MERGE INTO statement simplifies this significantly. A single MERGE can atomically update existing rows (close them) and insert new rows (open new versions) in a single ACID transaction, eliminating the multi-step approach that was error-prone in traditional data lake implementations. Iceberg's time travel also provides an alternative to SCD Type 2 for some use cases: instead of maintaining separate rows for each version, queries can use AS OF TIMESTAMP to examine the dimension table's state at any past point in time.

Master the Agentic Lakehouse

Architecting an Apache Iceberg Lakehouse

Architecting an Apache Iceberg Lakehouse

Buy on Manning
The AI Lakehouse

The AI Lakehouse

Buy on Amazon