I used AI tools to help draft and edit this post. I checked the facts and the wording, and the original lives at geekindata.com . The diagrams are on that page.
Parity as a contract
Key takeaways
Treat migration as written semantic equivalence, not a file move into Delta.
Write NULL, empty, and zero rules by column class before cutover.
Automate compares on key tables with named tolerances; row counts alone lie.
Pin Spark rebase, timezone, and type policy in jobs that write history.
Type as early as practical in silver; gold should not invent the first decimal.
Include a measure and relationship pack in definition of done, with reviewer sign-off.
Copying tables into a lakehouse is the easy part. The hard part is whether 0 means zero or was null in the legacy system, and whether a 0.01 drift is rounding or a bug.
I treat migration as a semantic contract, not a file move. Nobody celebrates that Delta exists.…