← Concepts

阅读中文版本

Medallion Architecture

Medallion architecture layers a lakehouse into bronze, silver, and gold stages that progressively clean, conform, and aggregate data.

data

Definition

The medallion architecture organises a data lake into three quality tiers. Bronze holds raw ingested data exactly as received, with lineage metadata. Silver holds cleaned, deduplicated, conformed entities with enforced schema. Gold holds business-level aggregates and feature tables shaped for reporting and ML. Each tier is a contract boundary: a consumer takes the guarantee of its tier and may re-derive the next from Bronze without re-extracting sources.

Context and scope

Common in lakehouse platforms built on Delta, Iceberg, or Hudi, where analysts, ML, and BI teams need different guarantees from the same raw data.

Common misconceptions

  • Three tiers always means three storage layers — a small platform may collapse tiers, but the guarantee boundaries still matter
  • Bronze must be immutable forever — retention policy decides; immutability is a choice that costs storage
  • Gold is the only tier worth governing — bad Silver silently corrupts every Gold aggregate downstream

Anti-patterns

  • Cleansing data before Bronze, so raw evidence is lost when a bug is discovered
  • Duplicating business logic in each Gold table instead of once in Silver
  • Promoting data to Gold without tests on the Silver contracts it depends on

Related concepts

Authoritative source

https://www.databricks.com/glossary/medallion-architecture

What it is

The medallion pattern names three tiers by metal. Bronze is the landing zone: append-only raw records tagged with source, ingestion time, and file. Silver conforms and cleans — parsing, deduplication, type coercion, and entity resolution — producing trustworthy tables with enforced schema. Gold reshapes Silver into the wide, aggregated marts that reports, dashboards, and feature stores consume.

Why it matters

Teams that cleanse during ingestion destroy the evidence needed to debug a transformation later. Separating raw from clean from aggregated means any tier can be rebuilt from the one beneath, a suspect Silver rule can be replayed against frozen Bronze, and each consumer chooses the guarantee it actually needs rather than inheriting the weakest one.

How to run it

Land data untouched into Bronze and record lineage. Build Silver with idempotent, replayable jobs and test them like code. Derive Gold with declarative transformations so aggregates stay consistent across reports. Apply contracts and quality checks at each promotion, monitor freshness per tier, and enforce retention so Bronze does not grow without bound.