HUB CENTRAL

SECCIÓN 10.dbt()

ANALYTICS ENGINEERING & PIPELINES

ADAPTER: SPARK

Ingeniería Analítica con dbt

Transforma tu Data Lake en un producto gobernado.
Usaremos dbt (data build tool) para compilar SQL modular en trabajos de Spark optimizados, aplicando calidad y linaje automáticamente.

01. ¿Qué es dbt?

dbt es el estándar moderno para transformación de datos. Permite a los analistas e ingenieros trabajar como ingenieros de software. Se conecta a Spark (via Thrift Server o Databricks) y ejecuta las transformaciones allí.

  • SQL + Jinja

    Escribe lógica de negocio en SQL (`SELECT...`). Usa Jinja (`{{ ref() }}`) para manejar dependencias y variables.

  • DAG Automático

    dbt analiza tus referencias `ref('tabla_bronce')` y decide el orden de ejecución correcto.

models/silver/ventas_silver.sql

-- Configuración del materializado
{{ config(materialized='table') }}

SELECT
    order_id,
    cast(amount as double) as total,
    customer_id
FROM
    {{ ref('ventas_bronze') }} -- Dependencia
WHERE
    amount > 0
                
dbt compila esto en código Spark nativo.

02. Calidad de Datos (Tests)

Unique

Garantiza que no hay duplicados en tu clave primaria.

- unique:column: id

Not Null

Asegura que campos críticos (IDs, fechas) siempre tengan valor.

- not_null:column: email

Accepted Values

Valida que una categoría solo tenga valores permitidos.

values: ['activo', 'baja']

03. El Proyecto

Estructuraremos nuestro proyecto dbt siguiendo las capas de refinamiento de datos.

graph LR Src[Fuente CSV] -|Seeds|-> B[Bronze Raw] B -|Clean|-> S[Silver Limpio] S -|Aggregate|-> G[Gold KPIs] style Src fill:#1e293b,stroke:#fff style B fill:#78350f,stroke:#fff style S fill:#475569,stroke:#fff style G fill:#854d0e,stroke:#fff