- Home
- Data Lineage Tools
- SQLLineage
SQLLineage
What it is
SQLLineage is a free MIT-licensed Python package and command-line tool for tracing SQL relationships. It identifies source and target tables, combines lineage across statements, and reveals intermediate tables. The command-line interface can show column-level lineage paths. A web server presents table-level and column-level relationships as a directed acyclic graph in a browser. SQLLineage uses pluggable sqlfluff and sqlparse parsers; ANSI is the default dialect, while specifying a dialect can improve analysis of dialect-specific SQL. Metadata can improve results for wildcard selections and unqualified columns in joins. Its SQLAlchemy metadata provider queries database metadata, but database drivers must be installed separately. Developers can use the LineageRunner API from Python. An optional rustworkx graph operator is recommended for large graphs. Installation is available through pip or GitHub, with Node.js/npm required for the GitHub web viewer.
For and against
For
- Free MIT-licensed package
- Column-level lineage through CLI
- Browser DAG visualization
- Python LineageRunner API
- Combines multiple SQL statements
Against
- Self-hosted installation required
- Database drivers installed separately
- GitHub viewer requires Node.js/npm
- Dialect-specific SQL may need configuration
The verdict
SQLLineage offers command-line, Python, and browser views for tracing SQL dependencies. Its accuracy and scale depend on dialect settings, metadata, and optional components.
Who it suits
Data engineers and developers who need table- or column-level SQL lineage in self-hosted or Linux environments. It suits teams comfortable installing Python packages and supplying dialect or metadata details.
Plans and prices
SQLLineage
Open-source Python package · MIT license · Install via PyPI or GitHub
Read 11 Oct 2026 · github.com
On the record
- Column lineage
- Its command-line interface can show column-level lineage paths.github.com · read 11 Oct 2026
- Database connections
- Its SQLAlchemy metadata provider queries database metadata, but database drivers must be installed separately.sqllineage.readthedocs.io · read 11 Oct 2026
- Graph performance
- An opt-in rustworkx graph operator is recommended for better performance on large lineage graphs.sqllineage.readthedocs.io · read 11 Oct 2026
- Installation
- The package can be installed with pip from PyPI or directly from GitHub; GitHub installation requires Node.js/npm for the web-based DAG viewer.sqllineage.readthedocs.io · read 11 Oct 2026
- License
- The GitHub repository identifies its license as MIT.github.com · read 11 Oct 2026
- Metadata
- Metadata can improve column-lineage accuracy for wildcard selections and unqualified columns in joins.sqllineage.readthedocs.io · read 11 Oct 2026
- Multiple statements
- It combines lineage across multiple SQL statements and identifies intermediate tables.github.com · read 11 Oct 2026
- Purpose
- SQLLineage analyzes SQL commands to identify source and target tables.github.com · read 11 Oct 2026
- Python API
- SQLLineage can be imported as a Python package and used through its LineageRunner API.sqllineage.readthedocs.io · read 11 Oct 2026
- Security release
- The changelog describes v1.5.3 as a security release that upgraded dependencies after vulnerability alerts.sqllineage.readthedocs.io · read 11 Oct 2026
- SQL dialects
- ANSI is the default dialect, and the documentation recommends specifying a dialect to improve lineage analysis for dialect-specific SQL.github.com · read 11 Oct 2026
- SQL parsing
- It uses pluggable sqlfluff and sqlparse parsers to analyze SQL.sqllineage.readthedocs.io · read 11 Oct 2026
- Visualization
- It can start a web server that displays table-level and column-level lineage as a DAG in a browser.github.com · read 11 Oct 2026