Hay muchos tutoriales que te enseñan a hacer dbt run.
Muy pocos te explican cómo cargar los datos antes de eso:
- configurar stages,
- crear tablas landing,
- gestionar exportaciones completas que crecen sin control,
- o decidir qué hacer cuando el sistema fuente borra registros o te manda varias versiones del mismo dato en una sola carga.
Este capítulo del libro Data Engineering with dbt hace precisamente eso: explicar macros reutilizables y patrones probados en producción.
De stage a landing table: la ingesta completa
Empezamos por lo básico: las opciones de carga en Snowflake, cuándo usar cada una, y cómo configurar stages, file formats e integraciones de almacenamiento.
Pero no nos quedamos en la teoría.
Veremos un sistema completo de macros modulares parametrizadas y listas para adaptar.
También abordaremos un problema que todo el mundo ignora hasta que le explota: cómo limpiar las tablas landing cuando recibes exportaciones completas diarias y la tabla crece sin límite.
Patrones de histórico para cada situación
La segunda mitad del capítulo es una colección de macros para gestionar datos históricos, cada una pensada para un escenario distinto:
- Detección de borrados sin aviso: Cuando el sistema fuente elimina registros y tú tienes que descubrirlo comparando lo que recibes con lo que ya tienes.
- Borrados con lista explícita: Cuando recibes una lista de claves eliminadas. Más eficiente porque evitas comparar exportaciones completas.
- Múltiples versiones por carga: Cuando el sistema fuente te manda varias actualizaciones del mismo registro en una sola exportación y necesitas guardarlas todas, en orden, sin perder cambios intermedios.
Cada patrón incluye la macro completa, explicación de cada CTE, y cuándo usarlo.
Datos personales y cambios de esquema
El capítulo cierra con dos patrones que rara vez se documentan pero que aparecen en cualquier proyecto real:
- Gestión de PII: Cómo sustituir datos personales por surrogates desde la capa de staging, crear tablas de mapeo reversibles, y garantizar que el dato desaparece de tu plataforma cuando se elimina del origen.
- Cambios de esquema en tablas históricas: Qué hacer cuando la estructura de los datos cambia de forma incompatible. El patrón de congelación y versionado permite mantener datos antiguos y nuevos unificados en la capa refined.
¡A por ello! 🫡
Patrones de carga de datos