openlineage

Emit OpenLineage RunEvent/Job/Dataset facets to Marquez for lineage tracking.

14|1|Updated May 5, 2026
One-click install
npx skills add https://github.com/ivanshamaev/de-agent-skills --skill openlineage
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: openlineage
Source: https://github.com/ivanshamaev/de-agent-skills/tree/main/skills/openlineage
Command: npx skills add https://github.com/ivanshamaev/de-agent-skills --skill openlineage

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you capture and visualize end-to-end data lineage so you can understand how datasets are produced, how columns flow through transformations, and what would be impacted by changing upstream data.

Core Features & Use Cases

  • OpenLineage-ready lineage events: Model and emit RunEvent/Job/Dataset relationships with correct START/COMPLETE/FAIL semantics.
  • Marquez backend setup & API workflows: Run a local/reference lineage backend and query namespaces, jobs, datasets, and lineage graphs for impact analysis.
  • Integration across Airflow, Spark, and dbt: Configure common emitters and enrich events to link parent orchestration runs to child execution runs.
  • Column-level lineage and facets: Attach schema facets, columnLineage mappings, SQL facets, and output statistics for fine-grained impact analysis and auditing.
  • Custom emitters: Build bespoke OpenLineage clients in Python to emit lineage when tooling does not provide automatic instrumentation.

Quick Start

Run this skill for a Spark/airflow pipeline by installing and configuring the OpenLineage integration to send lineage events to a Marquez backend, then query the lineage graph for the affected dataset.

Frequently Asked Questions about openlineage

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I track data lineage across Airflow, Spark, and dbt pipelines?

Data lineage tracking across Airflow, Spark, and dbt pipelines is done by configuring OpenLineage integrations to emit RunEvent, Job, and Dataset relationships with proper START and terminal state semantics to a backend for persistence.

What is column-level lineage and how does it support impact analysis?

Column-level lineage tracks how individual columns flow through transformations by attaching schema facets and columnLineage mappings to datasets, providing fine-grained impact analysis to understand exactly which downstream fields are affected by upstream data changes.

How do I set up a Marquez backend to query lineage graphs?

To set up a Marquez backend to query lineage graphs, run a local or reference backend instance, configure your OpenLineage transport to persist events there, and query namespaces, jobs, datasets, and lineage graphs via the API for impact analysis.

Can I build a custom OpenLineage emitter for a tool without automatic instrumentation?

Yes, you can build a custom OpenLineage emitter by creating a bespoke client in Python to manually emit RunEvent, Job, and Dataset facets, ensuring lineage is captured when your tooling lacks automatic instrumentation support.

Why does my OpenLineage event modeling require namespace consistency?

OpenLineage event modeling requires namespace consistency to reliably correlate RunEvent, Job, and Dataset facets across orchestrator and compute layers, ensuring lineage graphs persist and query correctly without disconnected or missing pipeline execution nodes.