Extracts and maps data lineage from various sources including SQL, dbt, Airflow, and Spark, generating comprehensive lineage graphs for impact analysis.
Extracts and maps data lineage from various sources including SQL, dbt, Airflow, and Spark, generating comprehensive lineage graphs for impact analysis.
Extracts and maps data lineage from various sources to provide comprehensive data flow visibility.
Overview
This skill parses and extracts data lineage information from SQL queries, dbt projects, Airflow DAGs, and Spark jobs. It generates comprehensive lineage graphs showing data flow from source to destination, enabling impact analysis and data governance.
Lineage graph generation - Visual and machine-readable lineage
Integration with data catalogs - Export to DataHub, Amundsen, Alation
Input Schema
{"sources":{"type":"array","required":true,"items":{"type":{"type":"string","enum":["sql","dbt","airflow","spark","file"]},"content":{"type":"string|object","description":"SQL string, file path, or manifest object"},"metadata":{"type":"object","properties":{"database":"string","schema":"string","catalog":"string"}}}},"existingLineage":{"type":"object","description":"Existing lineage graph to merge with"},"targetCatalog":{"type":"string","enum":["datahub","amundsen","alation","openlineage","json"],"default":"json","description":"Target format for lineage export"},"options":{"type":"object","properties":{"columnLevel":{"type":"boolean","default":true,"description":"Extract column-level lineage"},"resolveViews":{"type":"boolean","default":false,"description":"Resolve views to underlying tables"},"includeTemporary":{"type":"boolean","default":false,"description":"Include temporary/CTE tables in lineage"}}}}
Output Schema
{"lineageGraph":{"type":"object","properties":{"nodes":{"type":"array","items":{"id":"string","type":"table|view|file|external","name":"string","database":"string","schema":"string","columns":"array"}},"edges":{"type":"array","items":{"source":"string","target":"string","transformationType":"string","sql":"string"}}}},"columnLineage":{"type":"array","items":{"targetColumn":{"table":"string","column":"string"},"sourceColumns":{"type":"array","items":{"table":"string","column":"string","transformation":"string"}},"transformationLogic":"string"}},"impactAnalysis":{"type":"object","properties":{"upstream":{"type":"array","description":"All upstream dependencies"},"downstream":{"type":"array","description":"All downstream dependents"},"criticalPath":{"type":"array","description":"Most important lineage path"}}},"catalogIntegration":{"type":"object","description":"Export format for target catalog","properties":{"format":"string","payload":"object|string"}},"statistics":{"tablesCount":"number","columnsCount":"number","edgesCount":"number","maxDepth":"number"}}
Usage Examples
SQL Query Lineage
{"sources":[{"type":"sql","content":"INSERT INTO analytics.fct_orders SELECT o.order_id, c.customer_name FROM staging.orders o JOIN staging.customers c ON o.customer_id = c.id","metadata":{"database":"warehouse","schema":"analytics"}}],"options":{"columnLevel":true}}
{"sources":[{"type":"dbt","content":"./analytics/target/manifest.json"},{"type":"airflow","content":"./dags/etl_pipeline.py"},{"type":"sql","content":"SELECT * FROM external_db.customers"}],"targetCatalog":"openlineage"}