Data Lineage
Data Provenance, Trazabilidad de Datos
El Data Lineage es la capacidad de reconstruir el recorrido completo de un dato: dónde se origina, por qué sistemas transita, qué transformaciones sufre y dónde termina. En un data warehouse moderno, donde los datos atraviesan pipelines ETL/ELT, staging layers y marts dimensionales, esta trazabilidad es un requisito operativo, no un complemento opcional.
Cómo funciona #
El lineage se captura en dos niveles de granularidad:
- Column-level lineage: rastrea cada columna individual a través de las transformaciones SQL. Herramientas como dbt exponen este nivel de forma nativa mediante su grafo de dependencias.
- Table-level lineage: mapea las dependencias entre tablas o datasets, suficiente para impact analysis y documentación.
Con dbt, cada modelo .sql genera automáticamente metadatos de lineage accesibles mediante dbt docs generate. A nivel de plataforma, Apache Atlas y OpenLineage (estándar abierto) permiten agregar lineage de fuentes heterogéneas.
-- dbt model: marts/finance/revenue.sql
-- El lineage rastrea automáticamente la dependencia de staging.orders y staging.payments
SELECT
o.order_id,
p.amount AS revenue
FROM {{ ref('stg_orders') }} o
JOIN {{ ref('stg_payments') }} p ON o.order_id = p.order_id
Cuándo se usa #
Tres escenarios justifican la inversión en Data Lineage:
- Auditoría regulatoria (GDPR, SOX, DORA): demostrar el origen y las transformaciones de datos sensibles o financieros exige un lineage documentado y verificable.
- Troubleshooting: un KPI incorrecto en un informe se puede rastrear hacia arriba — qué transformación introdujo el error, qué tabla fuente estaba corrupta.
- Impact analysis: antes de modificar una tabla fuente, conocer cuántos modelos downstream dependen de ella evita regresiones silenciosas.
El coste de implementación escala con la granularidad: el lineage a nivel de columna requiere herramientas dedicadas o plataformas que lo soporten de forma nativa.