Field note · February 8, 2025
Cutting a lesson down — Schema drift, and the contract that prevents it
Your pipeline will break because someone upstream renamed a column on a Thursday and told nobody. Here is how to make that a caught error instead of a silent one.
A note from writing Schema drift, and the contract that prevents it, which took three passes to get to something short.
Your pipeline will break because someone upstream renamed a column on a Thursday and told nobody. Here is how to make that a caught error instead of a silent one.
The hard part of writing this was cutting it. The first version covered every case; the useful version covers the case you hit on a Tuesday and names the rest in a sentence. Completeness is a property of reference material, not of teaching material, and confusing the two produces something nobody finishes.
It sits in the Getting the data in module, and the exercise runs against dirty-customers. That pairing is deliberate: the dataset was built with the trap the lesson describes already in it, so the exercise fails in the instructive way rather than the confusing one.
Ordering matters here more than in most courses. It follows Idempotency, backfills, and yesterday arriving twice and leads into Facts, dimensions, and picking a grain, and reading it out of sequence mostly works but costs you the setup.
Free means free, and it also means we can rewrite it whenever it is wrong. No edition, no errata PDF, nothing to repurchase. The whole course is 36 lessons and the fixes land the day we find them.