OpenLineage
Judgement: Adopt
The lineage-emission standard, with column-level support.
Open standard for collecting lineage metadata from data pipelines, including column-level lineage. Producers emit OpenLineage events; consumers (Marquez, catalogs, custom UIs) ingest them.
For runtime lineage details — how the pipeline actually works — OpenLineage traces are the answer, not the data contract. Use both: contracts for design, OpenLineage for execution.
Example
A run event: which job ran, which datasets went in, which came out. Emitted by the pipeline, not scraped after the fact.
{
"eventType": "COMPLETE",
"eventTime": "2026-01-14T10:15:30.000Z",
"producer": "https://github.com/OpenLineage/OpenLineage/tree/1.0.0/integration/spark",
"run": { "runId": "d46e465b-d358-4d32-83d4-df660ff614dd" },
"job": { "namespace": "spark", "name": "orders_by_city" },
"inputs": [{ "namespace": "postgres://db:5432", "name": "public.orders" }],
"outputs": [{ "namespace": "s3://warehouse", "name": "marts.orders_by_city" }]
}
At a glance
- Category
- Lineage
- Governance
- Linux Foundation
- Status
- Stable; growing integration list
- First released
- 2020
Links
Related standards
Other standards in Lineage.
- PROV — Provenance Family
See OpenLineage in context
Open the interactive Data Landscape to compare OpenLineage against every other open standard, or grab the raw JSON. Spotted something wrong? Open an issue.