Getting Started with FlowScope
FlowScope is a privacy-first SQL lineage engine that analyzes SQL queries to produce detailed lineage graphs showing how tables, CTEs, and columns flow through data transformations. All processing happens locally in your browser.
Your First Analysis
Section titled “Your First Analysis”The fastest way to try FlowScope is through the web app at flowscope.pondpilot.io.
Step 1: Open the Web App
Section titled “Step 1: Open the Web App”Navigate to flowscope.pondpilot.io. No account or installation required.
Step 2: Enter Your SQL
Section titled “Step 2: Enter Your SQL”Paste this example query into the SQL editor:
WITH monthly_sales AS ( SELECT customer_id, DATE_TRUNC('month', order_date) AS month, SUM(amount) AS total_amount FROM orders GROUP BY customer_id, DATE_TRUNC('month', order_date))SELECT c.name, c.email, ms.month, ms.total_amountFROM monthly_sales msJOIN customers c ON ms.customer_id = c.idWHERE ms.total_amount > 1000;Step 3: View the Lineage Graph
Section titled “Step 3: View the Lineage Graph”FlowScope analyzes your query and displays an interactive lineage graph:
- Tables appear as nodes showing the table name and columns
- Arrows show how data flows from source tables through transformations
- CTEs like
monthly_salesappear as intermediate nodes
Step 4: Explore the Visualization
Section titled “Step 4: Explore the Visualization”- Click a node to see its details and connected columns
- Hover over an edge to see the column-level lineage
- Use the controls to zoom, pan, and fit the graph to view
- Toggle views between table-level and column-level lineage
Understanding the Results
Section titled “Understanding the Results”In the example above, FlowScope shows:
- Source Tables:
ordersandcustomersare the upstream data sources - CTE:
monthly_salesaggregates order data by customer and month - Final Output: The SELECT produces four columns from the join
- Column Lineage:
total_amounttraces back toorders.amountthroughSUM()
Selecting a Dialect
Section titled “Selecting a Dialect”Click the dialect selector to match your SQL syntax:
- PostgreSQL - Default, covers most standard SQL
- Snowflake - Snowflake-specific functions and syntax
- BigQuery - Google BigQuery SQL dialect
- DuckDB - DuckDB analytical SQL
- MySQL - MySQL syntax variations
- Redshift - Amazon Redshift
Selecting the correct dialect ensures accurate parsing of dialect-specific functions and syntax.
Working with Multiple Statements
Section titled “Working with Multiple Statements”FlowScope can analyze files with multiple SQL statements. Each statement is analyzed separately, with lineage tracked across statements that reference the same tables.
-- Statement 1: Create staging tableCREATE TABLE staging_orders ASSELECT * FROM raw_orders WHERE status = 'completed';
-- Statement 2: Create summarySELECT customer_id, COUNT(*) as order_countFROM staging_ordersGROUP BY customer_id;Providing Schema Context
Section titled “Providing Schema Context”For more accurate column resolution, especially with SELECT *, you can provide schema information:
- Click the Schema tab
- Paste CREATE TABLE statements or connect to a database
- FlowScope uses this metadata to resolve wildcards and validate column references
-- Example schema inputCREATE TABLE orders ( id INT, customer_id INT, amount DECIMAL(10,2), order_date DATE);Next Steps
Section titled “Next Steps”- Analyzing Queries - Input methods and query validation
- Lineage Visualization - Reading the graph in detail
- SQL Dialects - Dialect-specific syntax support
- CLI Reference - Analyze SQL from the command line