Strata 7

Semantic & Metrics Layer

Finance and growth report different revenue for the same month, because each team rebuilt “the” customer table its own way. Modeling is not academic — it is why your numbers do or don't reconcile.

This stratum covers dimensional modeling end to end: star schemas and the Kimball bus matrix, slowly changing dimensions (SCD Type 1 and 2), Data Vault 2.0, One Big Table and wide-table designs, conformed dimensions, and how to choose a modeling style for a real warehouse.

See these SCD types in action — live. Replay a change timeline and watch the dimension transform under Type 0/1/2/3/4/6, then explore the join trap, storage cost, and bitemporal corrections — 100% in your browser. Open the SCD Playground

What you'll learn

  • Design star schemas, fact and dimension tables, and a conformed bus matrix
  • Implement slowly changing dimensions (SCD Type 1 and 2) correctly
  • Know when Data Vault 2.0, One Big Table, or classic Kimball fits the problem
  • Make different teams' metrics reconcile through conformed dimensions

Tracks & courses

Full navigation is in the sidebar. Here's what each track gives you and the courses inside it.

Dimensional Modeling Foundations

The shared vocabulary every metrics layer assumes — grain, facts, dimensions, SCDs, conformed dimensions, and the bus matrix.

Dimensional Modeling Fundamentals

Grain, facts, dimensions, measures, keys — the engine-agnostic vocabulary every metrics layer assumes. Build the words you'll use for the rest of Strata 7.

10 ch · 2h 27m

1 free

Slowly Changing Dimensions

When a customer changes their region, every historical fact silently lies — unless you've modeled the change. SCD types 1/2/3/6, effective-dating, bitemporal, and the production anti-patterns that bite teams in their first year.

8 ch · 1h 44m

1 free

Conformed Dimensions & the Bus Matrix

Kimball's organizational technology: how to keep 'customer' meaning one thing across marketing, finance, and product — and how the bus matrix turns conformance from a Slack-thread into a treaty.

6 ch · 1h 16m

1 free

Cumulative Table Design

The pattern behind dim_all_users: full-outer-join yesterday to today, coalesce, and carry all of history in one row. Complex types (struct, array, map), the compactness-vs-usability tradeoff, temporal cardinality explosions, why run-length encoding is the reason Parquet won, and how to collapse cumulative history into an SCD Type 2 with window functions and a hand-rolled incremental merge.

4 ch · 1h 42m

1 free

Fact Data Modeling

Facts are the biggest data you'll ever touch: immutable events at 10-100x the volume of your dimensions. What makes a fact atomic, why raw logs aren't fact data, when denormalization is the fix (not the bug), deduplication at trillion-row scale, and the blurry line where aggregated facts become dimensions.

6 ch · 2h

1 free

Datelists and Reduced Facts

The compression patterns behind Facebook-scale activity analytics: cumulate user activity into date arrays, pack 30 days of history into one integer with bit math, and reduce daily fact volume 30x with value arrays, turning decade-long analyses from weeks of pipeline time into hours.

4 ch · 1h 48m

1 free

Modeling Alternatives: Data Vault & OBT

When stars aren't the answer. Data Vault for audit-heavy, source-volatile environments; OBT for columnar engines with low-cardinality joins; and how to choose between styles.

Metrics Layer Foundations

The engine- and tool-agnostic concepts behind every metrics store. Why metric drift happens, what a semantic layer actually is, the four primitives (measure, metric, entity, dimension), and how a metrics engine compiles a request into SQL over a semantic graph.

Related topics

Start Semantic & Metrics Layer free

The first chapters of every course are free to read — no account needed.