tracing-upstream-lineage

Trace upstream data lineage. Use when the user asks where data comes from, what feeds a table, upstream dependencies, data sources, or needs to understand data origins.

By astronomer · 986 installs

npx skills add astronomer/agents --skill tracing-upstream-lineage

Source repository · Upstream listing

Upstream Lineage: Sources Trace the origins of data answer "Where does this data come from?" Lineage Investigation Step 1: Identify the Target Type Determine what we're tracing: Table : Trace what populates this table Column : Trace where this specific column comes from DAG : Trace what data sources this DAG reads from Step 2: Find the Producing DAG Tables are typically populated by Airflow DAGs. Find the connection: 1. Search DAGs by name : Use af dags list and look for DAG names matching the table name load customers customers table etl daily orders orders table 2. Explore DAG source code : Use af dags source <dag id to read the DAG definition Look for INSERT, MERGE, CREATE TABLE statements Find the target table in the code 3. Check DAG tasks : Use af tasks list <dag id to see what operations the DAG performs On Astro If you're running on Astro, the Lineage tab in the Astro UI provides visual lineage exploration across DAGs and datasets. Use it to quickly trace upstream dependencies without manually searching DAG source code. On OSS Airflow Use DAG source code and task logs to trace lineage (no built in cross DAG UI). Step 3: Trace Data Sources From the DAG code, identify source tables and systems: SQL Sources (look for FROM clauses): External Sources (look for connection references): S3Operator S3 bucket source PostgresOperator Postgres database source SalesforceOperator Salesforce API source HttpOperator REST API source File Sources : CSV/Parquet files in object storage SFTP drops Local file paths Step 4: Build the Lineage Chain Recursively trace each source: Step 5: Check Source Health For each upstream source: Tables : Check freshness with the checking freshness skill DAGs : Check recent run status with af dags stats External systems : Note connection info from DAG code Lineage for Columns When tracing a specific column: 1. Find the column in the target table schema 2. Search DAG source code for references to that column name 3. Trace through transformations: Direct mappings: source.col AS target col Transformations: COALESCE(a.col, b.col) AS target col Aggregations: SUM(detail.amount) AS total amount Output: Lineage Report Summary One line answer: "This table is populated by DAG X from sources Y and Z" Lineage Diagram Source Details Source Type Connection Freshness Owner raw.orders Table Internal 2h ago data team Salesforce API salesforce conn Real time sales ops Transformation Chain Describe how data flows and transforms: 1. Raw data lands in raw.orders via Salesforce API sync 2. DAG transform orders cleans and dedupes into stg.orders 3. DAG build order facts joins with dimensions into fct.orders Data Quality Implications Single points of failure? Stale upstream sources? Complex transformation chains that could break? Related Skills Check source freshness: checking freshness skill Debug source DAG: debugging dags skill Trace downstream impacts: tracing downstream lineage skill Add manual lineage annotations: annotating task lineage skill Build custom lineage extractors: creating openlineage extractors skill