SQL Dojo Beta
Modelado

Staging, intermediate, marts

Cada definición vive en una sola capa: nombres y tipos en staging, lógica compartida en los modelos intermediate, entidades de negocio en los marts.

Staging: un modelo por tabla de origen, renombrado (<entity>_id, el mismo nombre en todas partes), tipado, convertido; sin JOIN. Solo staging lee las fuentes. Intermediate: JOIN, cambios de granularidad, lógica que comparten varios marts, escrita una sola vez. Marts: entidades y eventos con una granularidad clara, uno por concepto, compartidos por todos los equipos, con un contrato cuando otros dependen de ellos.

-- A staging select: one source table, renamed, typed, converted; no join.
WITH raw_orders("ordId", "AMOUNT_CENTS", "State") AS (VALUES
  ('17', 4290, ' Paid'), ('18', 1850, 'cancelled '), ('19', 960, 'PAID'))
SELECT CAST("ordId" AS INTEGER) AS order_id,
       CAST("AMOUNT_CENTS" * 0.01 AS DECIMAL(10,2)) AS amount,
       lower(trim("State")) AS status
FROM raw_orders
ORDER BY order_id;
order_idamountstatus
1742.90paid
1818.50cancelled
199.60paid
Probarlo en Randori