
OpenLineage is an Open standard for metadata and lineage collection designed to instrument jobs as they are running. It defines a generic model of run, job, and dataset entities identified using consistent naming strategies. The core lineage model is extensible by defining specific facets to enrich those entities.
OpenLineage is an LF AI & Data Foundation Graduate project under active development, and we welcome contributions.
OpenLineage defines the metadata for running jobs and the corresponding events.
A configurable backend allows the user to choose what protocol to send the events to.
A facet is an atomic piece of metadata attached to one of the core entities. See the spec for more details.
The specification is defined using OpenAPI and allows extension through custom facets.
OpenLineage supports integrations with several systems.
| Name | Table-level lineage | Column-level lineage |
|---|---|---|
| Apache Spark | :white_check_mark: | :white_check_mark:1 |
| Apache Airflow | :white_check_mark: | :white_check_mark:2 |
| dbt | :white_check_mark: | :white_check_mark: |
| Flink | :white_check_mark: | :x: |
SELECT * queries with JDBC.See CONTRIBUTING.md for more details about how to contribute.
If you discover a vulnerability in the project, please open an issue and attach the "security" label.
SPDX-License-Identifier: Apache-2.0\ Copyright 2018-2026 contributors to the OpenLineage project
$ claude mcp add OpenLineage \
-- python -m otcore.mcp_server <graph>