Problem
When a dashboard number looks wrong or a column must change, nobody knows which upstream jobs feed it or which downstream assets depend on it. Audits ask where personal data flows and answers take weeks.
Also known as: data-provenance, column-level-lineage
Record how data flows and transforms from sources to outputs to enable impact analysis, debugging and compliance.
When a dashboard number looks wrong or a column must change, nobody knows which upstream jobs feed it or which downstream assets depend on it. Audits ask where personal data flows and answers take weeks.
Data lineage is a map of where data comes from and where it goes. Nodes are datasets, jobs and runs; edges show reads and writes. It answers two questions: what feeds this table, and what breaks if I change it.
Each job run emits an event naming its inputs and outputs. A collector merges events into a graph.
raw.orders --\
job: build_orders_clean --> silver.orders --> job: daily_revenue --> gold.revenue --> dashboard
raw.refunds -/
An OpenLineage-style event contains the job name, run id, state, input datasets and output datasets, plus optional facets such as schema and row counts. Column-level lineage comes from parsing SQL to map output columns to source columns, which supports tracing a tagged personal data column to every downstream use.
Typical uses: before dropping a column, query all downstream consumers; during an incident, walk upstream from the broken table to the first failed or late run; for compliance, list every dataset derived from a regulated source and verify access controls.
Low - metadata storage
Medium - integrations and upkeep
Medium - graph and granularity concepts
Lineage graph misses jobs that run outside instrumented tools
Stale lineage misleads impact analysis
Dynamic SQL hides column dependencies