For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

Configuration
Required Detail

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

Lineage Components

Component
Availability

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

Feature
Supported

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

Supported
Details

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

Scenario
Limitation Description
Recommendation / Workaround

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

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

Not Supported
Description
Recommendation / Workaround

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.

Status Area
Details

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?