Snowflake - Lineage
This article outlines the lineage coverage, configuration requirements, metadata handling, supported scenarios, component behaviors, transformation coverage, and known limitations for lineage extraction in Snowflake. The lineage process provides visibility into data flow across tables, views, tasks, pipes, and other Snowflake objects. It supports table-level and column-level lineage for standard ELT workflows and utilizes query history metadata to improve lineage coverage across operational and analytical workloads.
Lineage Configuration Requirements
Accurate lineage extraction depends on Snowflake connectivity, metadata availability, and query history access. These requirements must be properly configured and available to ensure successful lineage generation and source-target resolution.
Configuration Requirements Table
Snowflake Connection
Standard Snowflake connectivity must be configured
Metadata Access
Access to the object metadata is required
Query History Access
Query log/history access should be enabled for lineage extraction
Dependent Object Availability
All referenced tables, views, and objects must be accessible
Query Log Configuration
Query history extraction should be enabled to improve lineage completeness
Missing metadata, unavailable query history, or inaccessible dependent objects may result in incomplete lineage generation.
Lineage Components
Tables
✅
Views
✅
Snowflake Tasks
✅
Snowflake Pipes
✅
Stored Procedures (SQL)
✅
Stored Procedures (JavaScript)
⚠️
Functions
⚠️
Query Logs (History)
✅
Files (Stage → Table via Pipes)
✅
Cross-Connection Objects
⚠️
Semi-structured Data (JSON)
⚠️
Dynamic SQL
❌
DELETE Operations (Tasks)
❌
The ⚠️ icon indicates partially supported functionality with limited lineage coverage in applicable scenarios.
Column Creation Support
This section outlines lineage support for column creation and transformation scenarios.
Column Creation from Lineage
Direct Column Mapping
✅
Derived Columns
✅
Aggregations (SUM, COUNT, etc.)
⚠️
Expressions / CASE Statements
⚠️
Aliases
⚠️
SELECT * Expansion
⚠️
Task Fallback Mapping
⚠️
JSON / Semi-structured Columns
⚠️
Renamed Columns (AS)
⚠️
Dynamic Column Generation
❌
The ⚠️ icon indicates partially supported functionality with limited lineage coverage in applicable scenarios.
Supported Use Cases
The connector supports lineage extraction across standard Snowflake data ingestion, transformation, and analytics workloads. These use cases represent scenarios where lineage extraction functions as expected.
Supported Lineage Scenarios
ELT Pipelines (INSERT INTO SELECT)
Lineage extraction for standard ELT transformations
View-Based Transformations
Lineage across views and dependent source objects
Snowflake Tasks (Scheduled Workflows)
Lineage for task-driven workflows
Snowflake Pipes (File to Table Ingestion)
Lineage from staged files to target tables
Stored Procedures (SQL-based)
Lineage extraction from SQL-based stored procedures
Query History / Query Log Lineage
Lineage generated using query history metadata
Cross-Schema Lineage
Lineage across schemas within the same Snowflake environment
Data Warehouse / Analytics Workflows
Lineage for analytical and reporting workloads
Lineage extraction is based on Snowflake metadata, object relationships, and query history information available through the configured connection.
Partial or Limited Coverage
Certain scenarios function only with partial coverage due to SQL complexity, parser limitations, metadata dependencies, or runtime execution behavior.
Scenarios
JavaScript Stored Procedures
Only embedded SQL statements are extracted
Prefer SQL-based procedures or standardize SQL extraction
Semi-structured Data (JSON)
Certain transformation details may not be fully resolved
Materialize JSON transformations into structured tables or views
Complex Task Queries
Query logic may not be fully interpreted
Simplify SQL logic or use explicit column mappings
Functions (Complex Logic)
Coverage depends on parser support
Use simpler SQL functions or validate lineage manually
Cross-Connection Lineage
Coverage depends on lineage configuration and metadata availability
Configure connection priority and ensure metadata access
Column Aliases / Renaming
Aliases may not resolve in fallback scenarios
Use explicit column references
SELECT * Usage
Limited support for column expansion
Avoid SELECT * and define columns explicitly
Query Log Dependency
Requires proper query history configuration
Enable and validate query history extraction
Complex transformations and incomplete metadata may reduce column-level lineage accuracy.
Unsupported Scenarios
The connector does not support lineage extraction for certain runtime-generated or non-SQL-based processing patterns due to the absence of accessible metadata or parser limitations.
Unsupported Lineage
Dynamic SQL (EXECUTE IMMEDIATE, IDENTIFIER)
Runtime-generated SQL cannot be parsed
Use query history lineage or document manually
Runtime-generated Object Names
Objects are resolved only during execution
Prefer static SQL or capture executed queries
DELETE Operations in Tasks
DELETE-based lineage is not handled
Track through downstream operations or manual lineage
Complex JavaScript Logic (Procedures)
Non-SQL logic is not parsed
Refactor logic into SQL-based procedures where possible
External / Non-SQL Logic (Scripts, APIs)
Outside SQL lineage scope
Document externally or use additional connectors
Unsupported SQL Constructs
Parser cannot interpret certain patterns
Simplify queries using standard Snowflake SQL syntax
Encrypted / Obfuscated Logic
SQL not accessible
Maintain readable SQL or document manually
Unsupported scenarios will not produce lineage and may appear disconnected in lineage visualization.
Current Functional Status
This section outlines the present state of lineage coverage supported by the Snowflake connector based on the available capabilities and limitations.
Overall Coverage
Strong coverage across standard Snowflake ELT workloads
Lineage Depth
Table-level lineage with broad column-level lineage support
Supported Inputs
Tables, views, tasks, pipes, SQL stored procedures, files, and query history
Functional Scope
Lineage extraction for ingestion, transformation, and analytics workflows
Limitation Areas
Dynamic SQL, complex JavaScript procedures, semi-structured data transformations, and cross-connection lineage
Resulting Output
Reliable lineage for most Snowflake workloads with partial coverage for advanced transformation scenarios
The Snowflake connector is production-ready and provides strong lineage coverage for standard ELT workflows, including tables, views, tasks, pipes, and query-history-based lineage. Advanced scenarios such as dynamic SQL, complex procedural logic, and certain transformation patterns have partial or limited coverage and may require manual validation.
Copyright © 2026, OvalEdge LLC, Peachtree Corners GA USA
Last updated
Was this helpful?

