Hace poco, conversando con un amigo sobre cómo organiza sus datos, comenzó a hablarme de carpetas Bronze, Silver y Gold, archivos Parquet y procesos que ejecutaba con un archivo .bat.

Los términos eran nuevos para mí, pero la lógica no.

Mientras me explicaba el proceso, me di cuenta de que durante años había trabajado con una idea bastante parecida, solo que dentro de bases de datos SQL y sin ponerle esos nombres.

Eso fue lo que me llevó a conocer la arquitectura Medallion.

La idea es bastante sencilla

Medallion Architecture es una forma de organizar el procesamiento de datos en capas.

La información va avanzando desde su estado original hasta convertirse en información limpia, estructurada y finalmente preparada para responder preguntas del negocio.

La representación más común es:

Bronze → Silver → Gold

No necesariamente tienen que ser carpetas. Pueden ser tablas, bases de datos, archivos o incluso capas dentro de una plataforma de datos.

Lo importante es la función que cumple cada una.

Bronze: conservar el dato original

La capa Bronze contiene los datos tal como llegan desde la fuente.

Pueden venir de un ERP, un servidor SQL, un archivo Excel, un CSV, una API o cualquier otro sistema.

La regla general es intervenirlos lo menos posible.

Por ejemplo:

Bronze
│
├── ventas
├── inventarios
├── clientes
└── vendedores

La ventaja de conservar esta capa es que siempre tenemos un punto de partida.

Si mañana descubrimos que una transformación estaba equivocada, podemos volver al dato original y reconstruir el proceso.

Silver: convertir datos en información confiable

En Silver comienza el verdadero trabajo de transformación.

Aquí podemos:

  • corregir tipos de datos;
  • eliminar duplicados;
  • homologar nombres;
  • relacionar diferentes fuentes;
  • aplicar reglas de negocio;
  • limpiar registros;
  • validar información;
  • crear campos derivados.

Por ejemplo, un vendedor podría aparecer de tres maneras diferentes en el sistema fuente.

Bronze podría conservar las tres.

Silver debería determinar que las tres representan a la misma persona.

La capa Silver busca responder una pregunta fundamental:

¿Puedo confiar en estos datos para analizarlos?

Gold: información preparada para tomar decisiones

La capa Gold está construida pensando en el usuario final.

Aquí ya no estamos preocupados principalmente por cómo venían los datos, sino por las preguntas que queremos responder.

Por ejemplo:

Gold
│
├── ventas_por_equipo
├── margen_por_marca
├── disponibilidad
├── rotacion_inventario
└── indicadores_gerenciales

Esta información puede alimentar un dashboard, Power BI, un reporte automatizado o simplemente terminar en un Excel.

Gold no significa necesariamente “Excel”.

Significa información preparada para consumo y toma de decisiones.

Cuando descubrí que ya hacía algo parecido

Mi experiencia ha sido principalmente con una arquitectura basada en bases de datos.

Durante años he trabajado con SQL Server creando tablas auxiliares, procedimientos almacenados, vistas y capas de información que terminan alimentando reportes y herramientas de análisis.

Simplificando mucho, algo de este tipo:

Sistema fuente
      ↓
Tablas originales
      ↓
Tablas auxiliares y reglas
      ↓
Vistas de negocio
      ↓
Power BI / Excel / reportes

Cuando conocí el concepto Bronze, Silver y Gold, fue fácil reconocer la lógica.

Una tabla que conserva información prácticamente como viene de la fuente tiene una función cercana a Bronze.

Las tablas auxiliares, homologaciones y transformaciones se parecen a Silver.

Y las vistas diseñadas específicamente para indicadores, reportes o análisis cumplen muchas veces una función cercana a Gold.

No son arquitecturas idénticas, pero comparten una idea importante:

separar el dato original, la transformación y la información que consume el negocio.

Esa separación hace que los sistemas sean más fáciles de entender, mantener y corregir.

Database-based vs. file-based

Otra cosa que me llamó la atención fue que el proceso que me describieron estaba construido principalmente con archivos.

Algo como:

/data

   /bronze
   /silver
   /gold

En cada etapa se generan nuevos archivos.

Mi experiencia tradicionalmente ha sido diferente:

SQL Server

   tablas fuente
        ↓
   tablas auxiliares
        ↓
   vistas
        ↓
   reportes

Podríamos llamar al primero un enfoque principalmente file-based y al segundo uno database-based.

Ninguno es automáticamente mejor.

La elección depende del volumen de información, infraestructura disponible, frecuencia de procesamiento, cantidad de usuarios y complejidad del proyecto.

Para muchas aplicaciones empresariales, una base de datos sigue siendo una excelente solución.

Pero los formatos de archivo modernos y las herramientas actuales han hecho que trabajar directamente con archivos sea mucho más poderoso de lo que era hace algunos años.

¿Y dónde entra Parquet?

En arquitecturas basadas en archivos aparece frecuentemente Parquet.

Parquet es simplemente un formato para almacenar datos, así como CSV o Excel son formatos de archivo.

Pero está diseñado específicamente para análisis de grandes cantidades de información.

Entre otras cosas, permite una compresión eficiente y facilita leer solamente las columnas necesarias para un análisis.

Por eso es frecuente encontrar estructuras como:

Bronze
   ventas_originales.csv

Silver
   ventas.parquet

Gold
   ventas_por_equipo.parquet

Y posteriormente generar desde Gold un Excel o un dashboard.

Parquet no es la arquitectura.

Es solamente uno de los formatos que podemos utilizar dentro de ella.

¿Cómo se ejecuta todo esto?

Aquí aparece otro término que inicialmente puede confundir: los archivos .bat.

Un archivo BAT es simplemente un archivo de comandos de Windows.

Puede utilizarse para ejecutar varias instrucciones automáticamente.

Por ejemplo:

python cargar_bronze.py
python crear_silver.py
python crear_gold.py
python generar_excel.py

Entonces el usuario podría tener un archivo llamado:

Actualizar_Reportes.bat

hacer doble clic y poner a correr todo el proceso.

Desde afuera parece una caja negra:

Datos
  ↓
Actualizar_Reportes.bat
  ↓
Procesamiento
  ↓
Excel final

Pero el BAT no realiza necesariamente las transformaciones.

Puede simplemente coordinar programas escritos en Python, SQL, PowerShell u otras herramientas.

Por eso tampoco considero los archivos BAT como parte de Medallion Architecture.

Son, más bien, una posible forma de automatizar su ejecución.

Más importante que los nombres

Lo que más me interesa de esta arquitectura no son los nombres Bronze, Silver y Gold.

Es la disciplina que propone.

No mezclar en un mismo lugar:

  • el dato original;
  • las correcciones;
  • las reglas de negocio;
  • y el reporte final.

Cuando todo eso termina mezclado, modificar un indicador puede convertirse rápidamente en un problema.

Cuando las responsabilidades están separadas, es mucho más fácil entender de dónde salió un número.

Y para quienes trabajamos tomando decisiones con datos, esa pregunta probablemente sea una de las más importantes:

¿De dónde salió este número?

Bronze, Silver y Gold ofrecen una forma bastante elegante de responderla.