Gabriel Herencia

~/insights / Cloud & DevOps

Arquitectura Medallion: ordenar los datos por capas de confianza

Qué es la arquitectura Medallion (Bronze, Silver y Gold), cómo la aplico en Google Cloud con BigQuery y Dataform, y qué otras metodologías existen para modelar un data warehouse.

·4 min de lectura
Cloud & DevOpsBigQueryArquitectura MedallionData EngineeringDataformGoogle CloudModelado de datos

La arquitectura Medallion es una forma de organizar un data warehouse o un lakehouse en tres capas: Bronze, Silver y Gold. Cada capa sube un nivel de calidad y confianza respecto de la anterior. El término lo popularizó Databricks, pero la idea es más antigua y no depende de ninguna herramienta: separar ingerir, limpiar y servir.

La regla que más me ayuda a explicarla es esta: el caos se queda arriba. A medida que el dato baja de capa, hay menos desorden y más significado de negocio.

Animación de la arquitectura Medallion: datos crudos en Bronze, limpieza en Silver y modelos de negocio en Gold

Las tres capas

🟠 Bronze: el dato tal como llegó

Es la zona de aterrizaje. El dato entra crudo, sin validar e inmutable, en el formato en que lo entregó la fuente: JSON de una API, CSV de un ERP, eventos de una cola o exportaciones de plataformas de anuncios.

  • Se agregan datos, pero no se modifican (append-only).
  • Se guardan metadatos de carga: fecha de ingesta, fuente y archivo de origen.
  • No se corrige nada. Su valor está en que siempre puedes reprocesar desde aquí si una regla de más abajo estaba mal.

⚪ Silver: estructura y confianza

Aquí se impone el orden. Son dos trabajos principales:

  1. Establecer el esquema: tipos explícitos, nombres consistentes, fechas en un solo huso horario y llaves bien definidas.
  2. Depurar datos corruptos: deduplicar, normalizar valores (" sku-jn-11" → "SKU-JN-11"), manejar nulos y aplicar reglas de calidad.

Un detalle importante: un registro inválido (por ejemplo, un precio de -999) no se borra en silencio. Se manda a una tabla de cuarentena para revisarlo. Así no pierdes evidencia y puedes medir cuánta basura trae cada fuente.

🟡 Gold: listo para el negocio

Es la capa que consume el negocio: modelos optimizados para responder preguntas concretas. Por lo general son tablas de hechos y dimensiones, agregados y KPIs. Entre Silver y Gold ocurren tres cosas:

  • Optimización por caso de uso: particionado y clustering según cómo se consulta el dato.
  • Transformación para consumo: modelos pensados para quien los usa (un analista, un modelo de ML o una API).
  • Lógica de dominio: las reglas del negocio (qué es una venta neta, cómo se calcula el stock disponible) viven en un solo lugar y no repartidas en diez dashboards.

De Gold se alimentan tres tipos de consumo: Data Science y ML, BI y reporting, y activación (enviar audiencias o conversiones de vuelta a las herramientas operativas).

Cómo la aplico en Google Cloud

Mi implementación habitual usa muy pocas piezas:

CapaDónde viveConvención
BronzeBigQuery (carga desde Cloud Storage, Pub/Sub o APIs con Cloud Run)raw_*
SilverBigQuery, modelado con Dataformstg_* e int_*
GoldBigQuery, modelado con Dataformfct_*, dim_*, kpi_*

Algunas prácticas que mantengo en todos los casos:

  • Un dataset por capa, con permisos distintos: el negocio solo lee Gold.
  • Assertions de Dataform (uniqueKey, nonNull, rowConditions) en Silver, para frenar el pipeline antes de que un error llegue a un dashboard.
  • Cargas incrementales en las tablas grandes, y particionado por fecha desde Silver hacia abajo.
  • Linaje explícito: cada tabla Gold puede rastrearse hasta su fuente en Bronze, lo que hace que depurar sea cuestión de minutos.

La ventaja práctica es el diagnóstico. Cuando un número se ve raro, sabes exactamente en qué capa buscar: si el dato llegó mal (Bronze), si se limpió mal (Silver) o si la regla de negocio está mal (Gold).

Medallion no es la única opción

Medallion es más un patrón de organización por calidad que una metodología de modelado. De hecho, se combina muy bien con otras. Estas son las alternativas y complementos más comunes:

  • Kimball (modelado dimensional): esquemas en estrella con hechos y dimensiones, orientados al análisis. Es casi el estándar dentro de la capa Gold.
  • Inmon (Corporate Information Factory): un data warehouse corporativo normalizado (3NF) como fuente única, y data marts derivados para cada área. Es más riguroso y más lento de construir.
  • Data Vault 2.0: modela con hubs, links y satellites. Es muy bueno para historizar todo y absorber cambios en las fuentes sin rehacer el modelo. Suele ocupar el lugar de Silver en entornos grandes o muy regulados.
  • Capas staging → intermediate → marts: la convención popularizada por dbt. En la práctica es Medallion con otros nombres, y es la que sigo en Dataform.
  • Lambda y Kappa: no organizan por calidad sino por latencia. Lambda combina un camino batch con uno de streaming; Kappa trata todo como un stream. Responden a otra pregunta y pueden convivir con Medallion.
  • Data Mesh: es más organizacional que técnico. Cada dominio es dueño de sus datos como producto. Dentro de cada dominio puedes seguir usando Medallion.

¿Cuándo usar Medallion?

Funciona muy bien cuando tienes muchas fuentes heterogéneas, un equipo pequeño o mediano y necesitas llegar rápido a datos confiables sin diseñar un modelo corporativo completo desde el día uno. Si el entorno exige historización total y auditoría estricta, vale la pena evaluar Data Vault para la capa intermedia. Y si lo que pesa es la latencia, piensa en cómo encaja el streaming.

En resumen: Bronze acepta todo, Silver decide qué es confiable y Gold solo responde preguntas de negocio.