Capítulo 13. Patrones modulares en plataformas de datos

Cuando un proyecto dbt crece, el código repetido se multiplica.

Las mismas transformaciones en staging, la misma lógica para leer snapshots, los mismos joins en cada mart.

Sin modularidad, cada cambio se convierte en una operación de buscar y reemplazar con riesgo de romper algo.

Este capítulo del libro Data Engineering with dbt te da los patrones concretos para evitarlo, capa por capa.

Modularidad aplicada a cada capa

No se trata de modularizar por modularizar.

Cada capa tiene sus propios componentes reutilizables.

  • En almacenamiento: pipelines de carga independientes por source, módulos de staging separados, y cuándo usar un modelo HIST en lugar de un snapshot.
  • En refinado: modelos REF componibles jerárquicamente, agregados desacoplados de la lógica base, mapeos entre sistemas, y transformaciones intermedias tratadas como modelos privados.
  • En entrega: hechos, dimensiones, modelos REPORT para tablas anchas, y un patrón de filtros encapsulados que evita mezclar reglas de filtrado específicas dentro de los FACT.

Claves y Master Data: la identidad de tus datos

Veremos también cómo gestionar claves correctamente.

  • Cuándo usar surrogate keys,
  • cómo manejar claves compuestas en tablas de hechos, y
  • por qué la distinción entre seguimiento de cambios y series temporales cambia la definición de tu primary key.

También hablaremos de Master Data Management dentro de dbt:

  • qué son las MDD (golden records),
  • cómo funcionan las tablas de mapeo entre dominios, y
  • por qué la direccionalidad del mapeo no siempre es uno a uno.

Macros para datos históricos: save_history y current_from_history

La parte más práctica del capítulo.

Dos macros que resuelven el patrón más repetido en proyectos de datos: guardar histórico y obtener la versión actual.

  • save_history crea modelos incrementales insert-only que comparan hashes para detectar cambios, con soporte para filtros de entrada, high watermark y optimización de escritura.
  • current_from_history extrae la versión más reciente de cada entidad usando funciones de ventana, lista para alimentar modelos REF, DIM o REPORT.

Ambas están parametrizadas y listas para adaptar a tu proyecto.

¡Empezamos! 🚀

Modularidad en dbt: patrones por capa, claves y macros para datos históricos

Membresía requerida

Este contenido está disponible únicamente para suscriptores.

Puedes apuntarte a la plataforma en este enlace

¿Ya eres un ninja? Accede aquí

Accede a todo el contenido premium

Ya no necesitas pagar cientos de euros por un Bootcamp para convertirte en ninja de los datos. Por solo 17€/mes (o menos 🤯), obtén acceso al podcast premium, a todos los tutoriales y a los resúmenes de los libros más top sobre Machine Learning y Ciencia de datos y aprende a tu ritmo.
¡Empieza ahora!
Copyright © 2026  · Datos 🥷 · Todos los derechos reservados