For the complete documentation index, see llms.txt. This page is also available as Markdown.

Apache Airflow - Lineage

This article outlines the lineage coverage, configuration requirements, supported components, transformation support, supported scenarios, known limitations, and current functional status for lineage extraction in Apache Airflow.

The Airflow connector provides automated lineage extraction for Apache Airflow DAGs and SQL-based ETL tasks. It enables end-to-end visibility into orchestrated data flows by supporting table-level and column-level lineage across SQL pipelines spanning multiple database platforms.

Lineage Configuration Requirements

Successful lineage extraction depends on proper Airflow configuration, SQL metadata availability, and valid database connections. The following requirements must be satisfied to ensure accurate source-to-target lineage generation.

Configuration Requirements Table

Configuration
Required Detail

SQL Dialects

SQL dialects must be defined in CrawlerOption.supportingDialects.

Airflow Connection

Airflow connection configuration is required through connectionInfoId.

Task SQL

Task queries must be available in JSON format with embedded SQL.

Database Connections

Database or catalog connections must exist in OvalEdge for schema and table resolution.

Metadata Availability

SourceCode and Dataset metadata must be available for lineage processing.

Lineage Components

Component
Supported

DAGs

SQL-based Tasks

Static SQL Queries

Multi-dialect SQL Parsing

Table-level Lineage

Column-level Lineage

Views

PythonOperator

⚠️

BashOperator

⚠️

BigQuery SQL

⚠️

Oracle SQL

⚠️

Amazon Redshift SQL

⚠️

Dynamic SQL / Variables

Airflow Variables / Jinja Templates

File-based ETL (CSV, Parquet, JSON)

SparkSubmitOperator

HttpOperator / API Lineage

Kafka / Streaming Lineage

The ⚠️ icon indicates partially supported functionality with limited lineage coverage in applicable scenarios.

Column Creation Support

This section describes lineage support for SQL-based column creation and transformation scenarios.

Column Creation from Lineage

Transformation Type (SQL Queries Only)
Supported

Direct Column Mapping

Column Aliases

Expressions / Functions

Aggregations

CASE Statements

Window Functions

Join-based Columns

Derived Columns

Subqueries

UNION / INTERSECT

Dynamic Columns from Variables

Python-generated Columns

Column creation support applies only to SQL-based transformations extracted from Airflow task definitions.

Supported Use Cases

The connector supports lineage extraction across standard SQL-based Airflow orchestration workflows.

Supported Lineage Scenarios

Supported Scenario
Details

DAG → Task → Table Lineage

Lineage extraction across DAGs, tasks, and database tables

SQL-based ETL Workflows

Lineage for SQL-driven ETL processing

Table-to-Table Lineage

Source-to-target table relationships

Column-level SQL Lineage

Column-level lineage generated from SQL statements

Join Operations

Lineage across SQL joins

Column Aliases

Resolution of aliased columns

Aggregations

Lineage for aggregation functions

CASE Statements

Lineage across conditional SQL expressions

Common Table Expressions (CTEs)

Lineage through CTE-based queries

Subqueries

Lineage for nested SQL queries

UNION / INTERSECT Operations

Lineage across SQL set operations

Multi-schema Lineage

Lineage across multiple schemas

Cross-database Lineage

Lineage across supported databases

Hive Workflows

SQL lineage for Hive tasks

Snowflake Workflows

SQL lineage for Snowflake tasks

SQL Server Workflows

SQL lineage for SQL Server tasks

MySQL Workflows

SQL lineage for MySQL tasks

View-based Lineage

Lineage across SQL views

Lineage extraction is based on SQL statements available within Airflow task definitions and the metadata available through configured database connections.

Partial or Limited Coverage

Certain scenarios provide partial lineage coverage due to SQL complexity, runtime behavior, or metadata limitations.

Scenarios

Scenario
Limitation Description
Recommendation

Dynamic SQL

Runtime variables and parameterized SQL are not resolved.

Use static SQL where possible.

PythonOperator

Supported only when SQL is embedded within the task JSON.

Embed SQL directly in the task definition.

BashOperator

Shell scripts are not parsed for lineage extraction.

Execute SQL through supported SQL-based tasks.

BigQuery, Oracle, and Amazon Redshift Operators

Require explicit SQL dialect configuration.

Configure the appropriate SQL dialect in CrawlerOption.supportingDialects.

Stored Procedures

Procedure calls are detected, but internal procedure logic is not parsed.

Validate procedure-level lineage separately where required.

TaskGroups / SubDAGs

Hierarchical workflow handling is limited.

Validate lineage for complex workflow hierarchies.

Jinja Templates

Template rendering is not supported during lineage extraction.

Use resolved SQL definitions where available.

Dataset Lineage Status

Lineage may remain incomplete when SQL extraction fails.

Verify SQL availability and metadata accessibility.

Unsupported Scenarios

The connector does not support lineage extraction for non-SQL processing or runtime-generated execution patterns.

Unsupported Lineage

Not Supported
Description
Recommendation

Python, Pandas, and PySpark Transformations

Non-SQL transformation logic is not parsed.

Document lineage manually or use supported SQL workflows.

SparkSubmitOperator

Spark job lineage is not extracted.

Capture lineage using supported Spark integrations where applicable.

File-based ETL

CSV, Parquet, and JSON processing is not analyzed.

Use supported database-based ingestion workflows.

API-based Processing

API execution lineage is not supported.

Document API lineage separately.

Kafka and Streaming Workflows

Streaming lineage is not available.

Capture lineage using supported streaming integrations where applicable.

Airflow Variables

Variable substitution is not resolved during parsing.

Use static SQL definitions where possible.

XCom Data Movement

Data exchanged through XCom is not tracked.

Document dependencies manually where required.

External Shell Scripts

External script execution is not parsed.

Execute SQL through supported Airflow SQL tasks.

Custom Operators Without SQL Exposure

Operators without accessible SQL cannot be analyzed.

Use SQL-based operators or document lineage manually.

Unsupported scenarios do not generate lineage and may appear as disconnected nodes within lineage visualization.

Current Functional Status

This section summarizes the current lineage capabilities available for the Apache Airflow connector.

Status Area
Details

Overall Coverage

Strong coverage for SQL-based Airflow workflows

Lineage Depth

Table-level and column-level SQL lineage

Supported Inputs

DAGs, SQL-based tasks, static SQL queries, views, and supported SQL dialects

Functional Scope

SQL lineage extraction across ETL orchestration workflows

Limitation Areas

Dynamic SQL, runtime variables, templates, Python transformations, file-based processing, and non-SQL operators

Resulting Output

Reliable lineage for standard SQL-based Airflow workflows with partial coverage for advanced orchestration scenarios


Copyright © 2026, OvalEdge LLC, Peachtree Corners GA USA

Last updated

Was this helpful?