Skilirium

Stage 8: Generate and review DDL

Knobit of Data modelling · K-812 · Skill

Recognises a type meaning something else on another engine

What it means

One modelled type rendering to a different meaning per engine. `TIMESTAMP` is a row-version counter in T-SQL (emitted `DATETIME2(6)`) and 32-bit, 2038-bounded and session-time-zone-converting in MySQL (emitted `DATETIME`); `BOOLEAN` becomes `NUMBER(1)` on Oracle and `TINYINT(1)`, which accepts 42, on MySQL; Databricks collapses `VARCHAR(n)` to `STRING`.

How it is assessed

Flags the deficient case and passes the acceptable one. Deficient: `is_business_day BOOLEAN` on MySQL becomes `TINYINT(1)` with no check and a loader writes `2` for a half day. `account_number VARCHAR(20)` on Databricks accepts a 34-character value, and the joins to `fact_payment` start missing Acceptable: A check constraint for the 0/1 domain wherever the engine has no boolean, and the modelled length kept as a DQ rule on every target that does not enforce it — the header note says which ones those are

Builds on

Needed by

  • None