En todo proyecto dbt llega un momento en que empiezas a copiar y pegar.
Las mismas transformaciones de fechas, la misma lógica para leer snapshots, los mismos patrones una y otra vez.
Es ahí donde las macros marcan la diferencia.
Este capítulo del libro Data Engineering with dbt te enseña a escribirlas y a aprovechar las que ya existen.
Las macros en dbt usan Jinja, un lenguaje de plantillas que se mezcla con SQL.
El capítulo cubre los elementos esenciales: delimitadores para estructuras de control ({% %}), para expresiones ({{ }}), condicionales, bucles, asignaciones con set, y las funciones clave como run_query() y return().
También explica las trampas habituales, como que los bucles crean un nuevo scope y las variables asignadas dentro no afectan a las de fuera.
Veremos también ejemplos prácticos: una macro que extrae la versión actual de un snapshot excluyendo los metadatos de dbt, cómo llamarla desde un modelo, y cómo parametrizarla para que sirva en diferentes contextos.
El patrón es siempre el mismo: identificar repetición, extraer a macro, y llamarla donde haga falta.
La segunda mitad del capítulo entra en dbt packages.
Cómo instalarlos, cómo gestionar tokens de forma segura con env_var(), y un repaso de los paquetes más útiles.
¡Empezamos! 🚀