Gudu SQLFlow is an automated SQL data lineage tool. Give it your SQL — queries, stored procedures, dbt projects, or an entire database — and it produces an interactive, column-level data lineage diagram that shows exactly where every piece of data comes from and where it goes. No agents to install, no manual mapping, no spreadsheets.
Try it in 30 seconds: paste any SQL query into the free online SQL lineage visualizer and watch the column-level lineage diagram appear. No signup needed for public examples.
What is SQL data lineage?
SQL data lineage is the map of how data moves and transforms through your SQL code: which source tables and columns feed each target table, view, or report, and what happens to the data along the way — joins, filters, aggregations, casts, and function calls. Lineage answers two questions every data team asks daily: “Where did this number come from?” (provenance) and “What breaks if I change this column?” (impact analysis).
Because most data transformation logic in a warehouse lives in SQL — views, stored procedures, ETL scripts, dbt models, scheduled queries — parsing that SQL is the most accurate and least invasive way to build lineage. SQLFlow does exactly that: it performs static analysis of your SQL code, so it never needs access to your data, and it captures logic that runtime log-based approaches miss.
How SQLFlow works
- Ingest SQL. Paste SQL, upload files, connect a database over JDBC to pull DDL and view definitions, import a dbt manifest, or feed in warehouse query history (Snowflake query history and Redshift query logs are supported natively).
- Parse and analyze. SQLFlow is built on the General SQL Parser (GSP), a commercial SQL compiler front-end developed since the mid-2000s and validated against more than 13,000 per-dialect SQL test fixtures. GSP builds a full semantic model of your SQL — resolving every column reference through CTEs, subqueries, views, and star-expansion — then its data-flow analyzer extracts source-to-target relationships at column granularity.
- Visualize and export. The result is an interactive diagram you can drill into, trace upstream and downstream from any column, and export as JSON, CSV, or PNG — or query programmatically through the REST API.
Column-level lineage, not just table-level
Table-level lineage tells you that report_revenue is built from orders and customers. Column-level lineage tells you that report_revenue.total is computed as SUM(orders.amount) filtered by orders.status, joined on customers.id — and that customers.email plays no role in it at all. That difference is what makes lineage actionable:
- Impact analysis before a schema change: find every downstream report a column actually feeds, instead of every report that merely touches the same table.
- Root-cause analysis for a wrong number: walk backward from one output column through every transformation to its true sources.
- Compliance and audit: prove exactly which source fields flow into a regulated output — the granularity frameworks like BCBS 239 and GDPR data-mapping expect.
SQLFlow additionally separates direct lineage from indirect (impact) lineage. A column used in a WHERE clause, JOIN condition, or GROUP BY never lands in the output, but it absolutely shapes the result. SQLFlow models these as a distinct, toggleable relationship type, so you can see pure data flow or full impact surface — most lineage tools do not make this distinction at all.
39 databases supported
SQLFlow ships dialect-specific parsers — not one generic ANSI grammar — for 39 databases and query engines:
| Category | Databases |
|---|---|
| Cloud data warehouses | Snowflake, Google BigQuery, Amazon Redshift, Databricks, Azure SQL, Amazon Athena |
| Traditional RDBMS | Oracle, SQL Server, MySQL, PostgreSQL, IBM DB2, Sybase, Informix, SQLite, EDB Postgres |
| MPP & analytics | Teradata, Netezza, Greenplum, Vertica, SAP HANA, ClickHouse, DuckDB, Doris, StarRocks |
| Big data & query engines | Hive, Impala, Spark SQL, Presto, Trino, Flink SQL |
| Other platforms | Couchbase, Salesforce SOQL, Power Query M, OpenEdge, ODBC, Dameng, GaussDB, OceanBase, MDX |
Dialect support is actively expanding — EDB Postgres, Dameng, OceanBase, and Power Query M were all added in 2026. If your dialect isn’t listed, ask us; new dialects are added on customer demand.
Stored procedures, dynamic SQL, and dbt
Real warehouses aren’t made of neat SELECT statements. SQLFlow analyzes the hard parts:
- Stored procedures: dedicated procedural grammars for Oracle PL/SQL and SQL Server T-SQL trace lineage through procedure bodies, parameters, and temp tables, and render an interactive call graph of which procedures invoke which.
- Dynamic SQL: SQL assembled inside procedures is resolved and analyzed rather than skipped — one of the most common blind spots in lineage tools.
- dbt projects: import a dbt manifest and get column-level lineage across your models, reconciled with the warehouse it deploys to.
- ER diagrams from SQL: SQLFlow infers primary/foreign-key relationships from DDL and draws the entity-relationship diagram — useful when documentation doesn’t exist.
Ask your lineage questions in plain English
Since version 8.2.3, SQLFlow includes an AI-powered lineage query: ask questions like “which reports depend on customers.email?” or “summarize how revenue_total is calculated” directly against the lineage graph. Answers are grounded in the actual graph — every table and column the AI references is validated against the analyzed lineage before it reaches you.
Choose your deployment
| Edition | Best for | How it runs |
|---|---|---|
| SQLFlow Cloud | Individuals and teams who want lineage now | SaaS, free tier; paste SQL or connect sources in the browser |
| SQLFlow On-Premise | Banks, healthcare, and regulated environments | Docker/Kubernetes inside your network — SQL never leaves your infrastructure |
| REST API | Automating lineage in pipelines and platforms | Full analysis surface as JSON-over-HTTP endpoints |
| JavaScript widget | Embedding lineage diagrams in your own product | 30+ method JS API, drops into any web app |
| Java library | Building lineage into JVM applications | The GSP DataFlowAnalyzer as a JAR dependency |
Enterprise deployments scale to estates of 100+ databases and over a million columns, with incremental scanning, a persistent lineage repository, and export adapters for DataHub, Microsoft Purview, and OpenMetadata — so SQLFlow can serve as the lineage engine inside the catalog you already run.
Stop guessing where your data comes from
Paste a query and watch its column-level lineage appear — free, no signup for public examples.
What teams use SQLFlow for
- Impact analysis: know every downstream consumer of a column before you rename, retype, or drop it.
- Debugging data issues: trace a wrong number in a dashboard back through every view and procedure to its origin in minutes instead of days.
- Regulatory compliance: produce column-level provenance documentation for BCBS 239, GDPR, SOX, and internal audit.
- Migration planning: map the true dependency graph before moving from Oracle or Teradata to Snowflake, BigQuery, or Databricks, and verify nothing is orphaned afterward.
- Data governance: feed accurate, automatically-refreshed lineage into your data catalog instead of maintaining it by hand.
How does SQLFlow compare to open-source options?
Open-source parsers stop where production SQL gets hard. Projects like sqllineage (Python) and sqlglot are good tools for parsing individual queries, and for simple SELECT/INSERT statements they may be all you need. The gap appears on real production code: stored procedures and dynamic SQL, dialect-specific syntax across dozens of engines, star-expansion and view resolution that require database metadata, indirect lineage through filter and join conditions, and visualizing (not just extracting) lineage at the scale of thousands of scripts. SQLFlow’s parser has been developed commercially for nearly two decades against a regression corpus of 13,000+ real-world SQL fixtures — that depth on hard SQL is what you’re paying for. If you’re evaluating, run your gnarliest stored procedure through both and compare.
Frequently asked questions
Does SQLFlow need access to my data?
No. SQLFlow performs static analysis of SQL code and optionally reads schema metadata (table and column definitions). It never reads the rows in your tables. With the On-Premise edition, even your SQL text stays inside your network.
Is there a free version?
Yes. SQLFlow Cloud has a free tier — paste SQL and get column-level lineage diagrams in your browser. Paid plans add larger inputs, API access, and team features.
Can SQLFlow analyze stored procedures?
Yes — this is one of its strongest capabilities. Oracle PL/SQL and SQL Server T-SQL have dedicated procedural parsers. SQLFlow traces lineage through procedure parameters, temp tables, and dynamic SQL, and draws the call graph between procedures.
How is column-level lineage different from table-level lineage?
Table-level lineage shows which tables feed which. Column-level lineage shows, for every output column, the exact source columns that feed it and the transformations applied. Column-level is what makes impact analysis and audit answers precise instead of approximate.
Does SQLFlow support dbt?
Yes. Import your dbt manifest and SQLFlow produces column-level lineage across your dbt models, and can reconcile the models with the warehouse objects they build.
Can I export lineage to DataHub, Purview, or OpenMetadata?
Yes. Enterprise deployments include export adapters for DataHub, Microsoft Purview, and OpenMetadata, plus JSON and CSV exports and a REST API for anything custom.
How much does SQLFlow cost?
SQLFlow Cloud starts free; premium accounts are $49.99/month. SQLFlow On-Premise is $500/month or $4,800 one-time per selected database type, installable on two servers. See pricing for details.
See your SQL’s lineage now
Paste a query into the free visualizer, or talk to us about scanning your whole estate.