Problem
Raw data lands in a lake in many shapes, and consumers query it directly with inconsistent cleaning and business rules. Quality problems surface in dashboards instead of at ingestion.
Also known as: bronze-silver-gold, multi-hop-architecture
Organize lakehouse data into progressively refined bronze, silver and gold layers.
Raw data lands in a lake in many shapes, and consumers query it directly with inconsistent cleaning and business rules. Quality problems surface in dashboards instead of at ingestion.
Medallion architecture, popularized by Databricks, is a layering convention for lakehouse tables. Bronze is raw, silver is validated and conformed, gold is curated for consumption. Each layer has a defined quality bar and owner.
Ingestion appends records exactly as received, plus load time and source file. Silver jobs read bronze incrementally, apply rules, and merge into keyed tables. Gold jobs aggregate for dashboards, ML features or data products.
sources --> BRONZE (raw, append-only)
--> SILVER (deduped, typed, validated)
--> GOLD (aggregates, star schemas)
A typical silver step in SQL:
MERGE INTO silver.orders s
USING (SELECT * FROM bronze.orders WHERE _load_ts > :watermark) b
ON s.order_id = b.order_id
WHEN MATCHED THEN UPDATE SET *
WHEN NOT MATCHED THEN INSERT *;
Quality rules, such as not-null keys or valid ranges, run between layers. Failing records go to a quarantine table instead of blocking the pipeline.
Medium - storage multiplied per layer
Medium - many pipelines and checks
Low - easy to explain
Consumers bypass silver and read raw bronze
Bad data promoted because quality checks are missing
Gold tables diverge in metric definitions