Capture and use data lineage with OpenLineage and Marquez — emitting run/job/dataset events from Airflow, dbt, and Spark, column-level lineage, and using lineage for impact analysis, debugging, and backfill scoping. Use when setting up data lineage, integrating OpenLineage, tracing what a change breaks downstream, or scoping the blast radius of an incident.
Scanned 9/1/2026
Install to Claude Code
npx -y skills add Unknown-333/awesome-data-engineering-skills --skill managing-data-lineage-openlineage --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Managing Data Lineage Openlineage?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/unknown-333-managing-data-lineage-openlineage)More formats (shields.io, HTML) on the badges page.
---
name: managing-data-lineage-openlineage
description: Capture and use data lineage with OpenLineage and Marquez — emitting run/job/dataset events from Airflow, dbt, and Spark, column-level lineage, and using lineage for impact analysis, debugging, and backfill scoping. Use when setting up data lineage, integrating OpenLineage, tracing what a change breaks downstream, or scoping the blast radius of an incident.
---
# Managing Data Lineage with OpenLineage
## When to use
- Setting up automated lineage across Airflow, dbt, and Spark.
- Answering "what breaks if I change this table?" (impact analysis).
- Scoping an incident's blast radius or a backfill's downstream footprint.
- Do NOT use for in-project dbt lineage only (dbt docs cover that; use this for
cross-tool, cross-system lineage).
## Core model
OpenLineage describes each pipeline run as **Job** (the transformation), **Run**
(one execution), and **Datasets** (inputs/outputs), optionally with **column-level**
mappings. Emitters send these events to a backend (e.g. Marquez) that builds the
graph.
## Workflow
```
- [ ] Add the OpenLineage integration to each producer (Airflow/dbt/Spark)
- [ ] Point emitters at a collector (Marquez or vendor endpoint)
- [ ] Verify jobs/datasets/edges appear with column-level detail where supported
- [ ] Use the graph for impact analysis before changes
- [ ] Use it during incidents to scope downstream impact and backfills
```
1. **Instrument producers.** Airflow (OpenLineage provider), dbt
(`dbt-ol`/native), and Spark (OpenLineage listener) emit events automatically —
prefer these over hand-rolled lineage.
2. **Centralize.** Send events to Marquez or a lineage platform so the whole graph
is queryable in one place.
3. **Validate coverage** — confirm datasets, edges, and column-level lineage render
for critical flows.
4. **Impact analysis** — before changing/deprecating a table, traverse downstream
to find affected models, dashboards, and owners.
5. **Incident scoping** — from a bad source dataset, list every downstream consumer
to size the fix and the backfill.
## Patterns
**Airflow emission** — enable the OpenLineage provider and set the transport
endpoint via env/config; DAG runs then emit job/dataset events without code
changes.
**Use lineage to scope a backfill** — the set of downstream datasets reachable from
the corrected table is exactly the set that must be reprocessed
(pairs with `designing-backfills-and-replays`).
**Column-level lineage** — when a single column is wrong, column mappings pinpoint
which downstream columns depend on it, narrowing the investigation.
## Common pitfalls
- **Manual lineage docs** — drift immediately; use automated emitters.
- **Partial instrumentation** — gaps make the graph misleading; instrument every
producer in a critical path.
- **Lineage without ownership** — knowing what breaks is only useful if you can
find who to tell; attach owners to datasets.
- **Ignoring column-level lineage** where available — table-level alone forces
broad, slow investigations.
- **Treating lineage as a diagram, not a tool** — wire it into change review and
incident response, not just a wiki page.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!