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 | 🚀 Live Demo | 🐛 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.8.0.tar.gz (166.5 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.8.0-py3-none-any.whl (182.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dbt_col_lineage-0.8.0.tar.gz
  • Upload date:
  • Size: 166.5 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.8.0.tar.gz
Algorithm Hash digest
SHA256 41888461c79ec8f05656f9f7a81ebdec32b803207b0a382be1cacad98ac895f0
MD5 f1895c2ddc2ccb61d1cd1b9e014a834f
BLAKE2b-256 a8a4eff2fbd5715ad70002d6c78f69c62de311bf1c60d9a5854e36145958c376

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dbt_col_lineage-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 182.7 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.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 edb7a20adbd1b9e29d49f2fb46f89d661c076924f29bc5fe2dd3ff0530d5ea64
MD5 ca2f57be6b02853fe177fc25fdc36163
BLAKE2b-256 9b8ea3096f0c5db3845845e8358a7294fa1547362c3ac6480295c0c080d6de4d

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