Skip to main content

Impact analysis for dbt projects using column-level data lineage

Project description

DBT Column Lineage

Tests PyPI Downloads Python Version License

📖 Documentation | 🐛 Report Bug | 💡 Request Feature

Overview

Understand the impact of column changes before you make them. DBT Column Lineage provides impact analysis & column lineage to help you answer critical questions: What happens if I change this column? Which models, transformations, and exposures will be affected? Does it use complex business logic, or is this column only projected?

The core idea behind this project: be more comfortable when making changes on a large project by knowing the impact.

Key Features:

  • Impact Analysis: Understand downstream effects of column changes, including affected models, transformations, and exposures
  • Interactive Explorer: A local web server with an intuitive UI to explore model and column lineage visually, including associated transformations

DBT Column Lineage Demo - Concept

Installation

pip install dbt-col-lineage

Usage

First, ensure your dbt project is compiled and you have generated the catalog:

dbt compile
dbt docs generate

Interactive Explorer

Start the interactive web interface to explore lineage and perform impact analysis:

dbt-col-lineage --explore \
    --manifest path/to/manifest.json \
    --catalog path/to/catalog.json \
    --port 8080  # Optional port selection

This starts a server (defaulting to port 8000). Open your web browser to the specified address (e.g., http://127.0.0.1:8080).

Workflow:

  1. Select a model and column from the sidebar to visualize its lineage
  2. Click "Analyze Impact" to see which models, transformations, and exposures will be affected if you change that column
  3. Review the impact analysis panel showing:
    • Columns that require review (with transformations that may break)
    • Pass-through columns (direct references)
    • Affected models in the dependency chain
    • Affected exposures

Options

  • --explore: Starts the interactive web server for exploring lineage and impact analysis
  • --catalog: Path to the dbt catalog file (default: target/catalog.json)
  • --manifest: Path to the dbt manifest file (default: target/manifest.json)
  • --port, -p: Port for the interactive web server (default: 8000)
  • --adapter: Override the SQL dialect used by the parser (sqlglot dialect name, e.g., tsql, snowflake, bigquery). When provided, this overrides the adapter detected from the dbt manifest.

Limitations

  • Doesn't support python models
  • Some functions/syntax cannot be parsed properly, leading to models being skipped

Compatibility

The tool has been tested with the following dbt adapters:

  • Snowflake
  • SQLite
  • DuckDB
  • MS SQLServer / TSQL

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbt_col_lineage-0.7.0.tar.gz (162.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbt_col_lineage-0.7.0-py3-none-any.whl (177.8 kB view details)

Uploaded Python 3

File details

Details for the file dbt_col_lineage-0.7.0.tar.gz.

File metadata

  • Download URL: dbt_col_lineage-0.7.0.tar.gz
  • Upload date:
  • Size: 162.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.9.25 Linux/6.11.0-1018-azure

File hashes

Hashes for dbt_col_lineage-0.7.0.tar.gz
Algorithm Hash digest
SHA256 3390614adceea465b4b1e562d0aeb013db22209005367b41478f2508ed63c92d
MD5 b6b421b2ac0ababc6671082642446c12
BLAKE2b-256 4d882203f8d385731bba98c4176c03ce04aca2beda8a49383b7b95b8ff88ddab

See more details on using hashes here.

File details

Details for the file dbt_col_lineage-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: dbt_col_lineage-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 177.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.9.25 Linux/6.11.0-1018-azure

File hashes

Hashes for dbt_col_lineage-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5cd2a23bf74b58c81c66815d80b8231d91f9e59611555d341a46963d78d952a
MD5 94bc182af360bbf9e0752eea6b840093
BLAKE2b-256 fb78ed802f193e60248e6fa7f11efaa47b0c28e1bbb745e972c9fb3c9461dcd6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page