Start here
A senior interviewer asks: forty dashboards use fct_orders. You must change its grain, or rename a column. How?
The answer is a process, not a trick. This chapter teaches the process for a warehouse model that many teams read.
Recap: the chapter Schema Evolution & Data Contracts covered the feed view. It taught safe and breaking changes in a feed, a YAML contract, and expand and contract. It also taught schema registries, and a change of meaning such as cents.
You already know the grain (what one row means), dbt layers and tests, and the fct_orders and dim_customer tables.
Here is fct_orders, with the keys from Modern Warehouse Modeling. A real customer_key is a long text hash. The table shows 1001 to 1006 to keep it short:
| order_id | customer_key | order_date | status | amount |
|---|---|---|---|---|
| 101 | 1001 | 2026-01-03 | paid | 40.00 |
| 102 | 1006 | 2026-01-10 | paid | 25.00 |
| 103 | 1002 | 2026-01-11 | refunded | 60.00 |
| 104 | 1003 | 2026-01-15 | paid | 15.50 |
| 105 | 1003 | 2026-01-20 | pending | NULL |
| 106 | 1004 | 2026-01-21 | paid | 80.00 |
What you will learn
- A dbt contract on a model: what it checks, and what it cannot check.
- Which changes are safe, and which break a query that already exists.
- How to find the people who depend on a model.
- How to ship a new version of a model and move people to it.
- Who owns a model, who may read it, and how to mask personal data.
