Impact analysis for dbt projects using column-level data lineage
Project description
DBT Column Lineage
📖 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
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:
- Select a model and column from the sidebar to visualize its lineage
- Click "Analyze Impact" to see which models, transformations, and exposures will be affected if you change that column
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3390614adceea465b4b1e562d0aeb013db22209005367b41478f2508ed63c92d
|
|
| MD5 |
b6b421b2ac0ababc6671082642446c12
|
|
| BLAKE2b-256 |
4d882203f8d385731bba98c4176c03ce04aca2beda8a49383b7b95b8ff88ddab
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5cd2a23bf74b58c81c66815d80b8231d91f9e59611555d341a46963d78d952a
|
|
| MD5 |
94bc182af360bbf9e0752eea6b840093
|
|
| BLAKE2b-256 |
fb78ed802f193e60248e6fa7f11efaa47b0c28e1bbb745e972c9fb3c9461dcd6
|