Tu Data Lake Documentado
¿Harto de wikis desactualizadas? dbt lee tus archivos .sql y .yml para generar un sitio web estático con el diccionario de datos y el linaje completo.
# 1. Compilar la documentación (lee schema.yml)
dbt docs generate
# 2. Servir el sitio web localmente (localhost:8080)
dbt docs serve
El Grafo de Linaje (DAG)
El sitio web de dbt muestra gráficamente de dónde viene cada dato. Si un dashboard de ventas falla, puedes rastrear hacia atrás hasta el archivo fuente original en segundos.
Viajando en el Tiempo
SNAPSHOTS & SCD TYPE 2
Los datos cambian. Si un cliente cambia de dirección hoy, ¿pierdes su dirección anterior? Con dbt Snapshots, implementamos Slowly Changing Dimensions Type 2 automáticamente. dbt guarda el historial completo.
Tabla Fuente (Mutable)
| ID | Estado |
|---|---|
| 101 | Inactivo |
Se sobrescribió el valor 'Activo'.
dbt Snapshot (Histórica)
| ID | Estado | Valid_To |
|---|---|---|
| 101 | Activo | 2023-01-01 |
| 101 | Inactivo | NULL |
Conserva ambas versiones con fechas de vigencia.
{% snapshot clientes_snapshot %}
{{
config(
target_schema='snapshots',
unique_key='id',
strategy='timestamp',
updated_at='fecha_actualizacion'
)
}}
select * from {{ source('crm', 'clientes') }}
{% endsnapshot %}
Definición de Fuentes
SOURCES.YML
Para desacoplar tus modelos de las tablas físicas crudas, usamos sources. Esto permite documentar el origen y testear la "frescura" de los datos (Freshness).
version: 2
sources:
- name: crm
description: "Datos exportados del Salesforce"
database: raw_zone # Base de datos en Spark
tables:
- name: clientes
description: "Tabla maestra de clientes"
loaded_at_field: _ingest_timestamp
freshness:
warn_after: {count: 12, period: hour} # Alerta si no llegan datos en 12h
error_after: {count: 24, period: hour} # Falla si pasan 24h
Ejecuta dbt source freshness para verificar si tus datos de origen están actualizados antes de correr el pipeline.
Go Live!
PIPELINE FINAL
El ciclo completo de ingeniería de datos profesional se ve así en tu terminal:
# 1. Instalar dependencias
dbt deps
# 2. Verificar que los datos origen estén frescos
dbt source freshness
# 3. Capturar historia (CDC)
dbt snapshot
# 4. Correr modelos (Tablas/Vistas)
dbt run
# 5. Ejecutar tests de calidad
dbt test
# 6. Generar documentos
dbt docs generate
Misión Cumplida
Has configurado un Lakehouse moderno en tu máquina local usando Spark y dbt. Tienes computación distribuida, modelado modular, tests automáticos y documentación viva.
Volver al Inicio del Curso