A unified data governance solution that helps manage, protect, and discover data across your organization
For Snowflake, Microsoft Purview can collect and show lineage across databases, schemas, tables, views, streams, and stored procedures, but a few conditions must be met for cross‑database lineage to appear.
Key points for Snowflake lineage in Purview:
- Static lineage only, based on definitions
Purview fetches static lineage on asset relationships among tables, views, streams, and stored procedures. For stored procedures, lineage is derived from the procedure definition and is supported only for Snowflake Scripting (SQL) and JavaScript. Lineage for Java, Python, Scala procedures or certainEXECUTE IMMEDIATEpatterns is not supported. - All participating databases/schemas must be scanned together
When a view or procedure uses tables from different databases or schemas, Purview requires that all referenced databases and schemas be scanned simultaneously. The documentation explicitly notes:
If bronze, silver, and gold are scanned separately (one after another) with different scopes, Purview may only be able to stitch lineage within the database that was fully scanned (your silver layer), and not across bronze ↔ silver ↔ gold.If a view was created by tables from different databases or different schemas, scan all databases and schemas simultaneously using the names in the semicolon (;) list.
- Scan configuration: database and schema scope
In the Snowflake scan setup:- Ensure the Database list includes all three databases (bronze, silver, gold) in the same scan configuration, or use name patterns that cover them together.
- In Schema, list all relevant schemas as a semicolon‑separated list (for example,
bronze_schema;silver_schema;gold_schema) or use wildcard patterns (A%;%B;%C%;D) that match the schemas used in cross‑database views/procedures. - Avoid unsupported patterns such as
NOTor special characters in schema filters.
- Stored procedure details option
If lineage depends on stored procedures (for example, moving data from bronze to silver to gold via procedures), set Stored procedure details toLineage, code, signaturein the scan configuration. This ensures Purview imports the procedure code and derives lineage. When using Self‑hosted Integration Runtime, this option requires version5.30.8541.1or later; earlier versions always extract only the signature. - Run a unified scan instead of separate per‑layer scans
To get lineage across bronze, silver, and gold:- Configure a single Snowflake scan that includes all three databases and their relevant schemas.
- Run that scan so Purview can see all referenced objects in one pass and stitch lineage across layers.
- After the scan completes, open each asset in the Unified Catalog and check the Lineage tab to verify cross‑database relationships.
If lineage still appears only within the silver database after configuring a unified scan and stored procedure details, the most likely causes are:
- The underlying SQL definitions do not reference objects across databases/schemas in a way Purview can parse.
- The lineage scenario (for example, unsupported stored procedure language or dynamic SQL pattern) falls into the known limitations.
References:
- Connect to and manage Snowflake in Microsoft Purview
- Data lineage user guide for classic Data Catalog
- Set up data quality for Snowflake data
- Microsoft Purview currently doesn't support query or stored procedure for lineage or scanning. Lineage is limited to table and view sources only." - Microsoft Q&A
- Complete End-to-End Lineage from AWS S3 to Azure Blob to Snowflake in Microsoft Purview - ADF SnowflakeV2 Connector Not Reporting Lineage - Microsoft Q&A