Antes de dbt, transformar datos en un data warehouse era un caos: scripts SQL sin versionado, sin tests, sin documentación, y nadie sabía cuáles modelos dependían de cuáles. dbt llegó en 2016 y resolvió todo eso aplicando las prácticas de ingeniería de software a la transformación de datos.
Qué es dbt
dbt (data build tool) es una herramienta open-source para la capa de transformación del stack de datos. Solo necesitas saber SQL para usarlo. dbt compila tus archivos SQL, gestiona dependencias entre modelos, ejecuta los transformaciones en el orden correcto y puede correr tests de calidad de datos automáticamente.
La filosofía de dbt es: las transformaciones deben estar en el data warehouse (no en ETL tools externas), deben estar versionadas en Git, y deben tener tests. dbt hace posible tratar los modelos SQL como código de ingeniería: con CI/CD, code reviews y documentación automática.
Cómo funciona dbt
Cada modelo en dbt es un archivo SQL con un SELECT. No escribes CREATE TABLE — dbt se encarga de materialization. Puedes configurar si el modelo se materializa como tabla, vista, tabla incremental o ephemeral (solo usada en compilación).
Las referencias entre modelos se hacen con `{{ ref('nombre_modelo') }}`. dbt construye automáticamente el DAG de dependencias y ejecuta los modelos en el orden correcto. Si cambias un modelo upstream, dbt sabe qué modelos downstream necesitan re-ejecutarse.
El stack moderno de datos con dbt
dbt vive en la capa T del ELT (Extract-Load-Transform). El flujo típico hoy: extracción con Fivetran, Airbyte o Stitch → carga en BigQuery, Snowflake o Redshift → transformación con dbt → visualización con Looker, Power BI o Tableau. dbt se conecta directamente al warehouse via adaptadores (dbt-bigquery, dbt-snowflake, dbt-redshift, dbt-databricks).
Tests en dbt: calidad de datos automatizada
dbt incluye tests genéricos out-of-the-box: not_null (la columna no tiene nulls), unique (los valores son únicos), accepted_values (los valores están dentro de un set esperado) y relationships (la clave foránea existe en otra tabla). También puedes escribir tests personalizados en SQL. Con `dbt test` ejecutas todos los tests y detectas problemas de calidad antes de que lleguen a los reportes.
dbt Core vs dbt Cloud
dbt Core es open-source y se instala con pip. Lo usas desde la terminal. dbt Cloud es el SaaS de dbt Labs: tiene IDE web, scheduler para ejecutar jobs automáticamente, observabilidad y integración con GitHub. Para equipos y producción, dbt Cloud simplifica mucho la operación. El plan Developer es gratuito (1 developer, 1 proyecto).
dbt es parte del stack del Bootcamp Data Engineer de DataPath. También lo trabajamos en el curso de BigQuery de cero a héroe con proyectos reales de Analytics Engineering. Todo disponible en la Ruta Data Engineer.