Data Engineering · Cluster

Data Modeling

Dimensional design and slowly changing dimensions.

  1. 01 Grain: What One Row of a Fact Table Means Why the grain declaration precedes every column choice, how it fixes which measures can be summed, and what a join at the wrong level does to a count. foundational · Oct 10, 2024
  2. 02 Star Schemas and the Cost of Normalizing a Dimension What denormalizing a dimension into one wide table buys at query time, what it costs in update work, and why snowflaking usually loses on columnar storage. foundational · Oct 31, 2024
  3. 03 Conformed Dimensions and the Bus Matrix Why two fact tables can only be compared when they share identical dimension keys and members, and how a bus matrix plans those dimensions before any table is built. foundational · Jan 2, 2026
  4. 04 Type 2 Slowly Changing Dimensions: Versions, Validity and Lookups How a dimension row is versioned with surrogate keys and effective dates, why the load-time lookup is the hard part, and how facts join to the version that was current when they occurred. intermediate · Apr 13, 2024
  5. 05 Choosing Between SCD Types 1, 2, 3 and 6 The cost of overwriting an attribute, the cost of versioning it, and the cost of keeping a previous value in a column, set against the questions each type can and cannot answer. intermediate · Jun 10, 2026
  6. 06 Mini-Dimensions and Junk Dimensions: Narrowing a Wide Fact Table How to keep fast-changing attributes out of a versioned dimension, and how to collapse a handful of low-cardinality flags into one key instead of a dozen foreign keys. intermediate · Feb 9, 2026
  7. 07 Accumulating Snapshot Fact Tables: One Row Per Process, Updated in Place How a fact row can be rewritten as an order moves through picking, shipping and delivery, which measures stay additive, and why the row must be created before the process finishes. intermediate · Sep 20, 2025
  8. 08 Late-Arriving Dimensions and Inferred Members What happens when a fact references an entity the dimension has never seen, how inferred rows let the fact load proceed, and why the placeholder key is a debt with an interest rate. advanced · Apr 7, 2026
  9. 09 Bitemporal Dimension History: Effective Time and Assertion Time Why a single validity interval cannot express both when an attribute was true and when the warehouse believed it, and what two intervals cost in keys, joins and corrections. advanced · Sep 14, 2023
  10. 10 Evolving a Dimensional Model Without Rewriting Its History Which schema changes are additive, which silently change a measure's meaning, and how to refine a grain or retire a column while old and new consumers coexist. advanced · Aug 4, 2026