Data lineage between snowflake databases not working in MS Purview

Swapnil Dalwadi 0 Reputation points
2026-07-09T19:58:50.5+00:00

I have registered snowflake as data source in MS Purview. We have 3 databases ( bronze, silver and gold) following medallion architecture. Now, i am running scan for all 3 ( one after another). but data lineage is not showing up for Bronze and Gold. Data lineage only appears between the views within silver layer. I am looking for data lineage across 3 databases. (Bronze, silver and Gold. Also, I am looking for data lineage for views or tables within specific databases just like its currently showing for Silver layer database.

Am I missing any settings or order in which scan has to run ? Any leads will be appreciated.

Microsoft Security | Microsoft Purview
0 comments No comments

1 answer

Sort by: Most helpful
  1. AI answer

    2026-07-09T19:59:43.9766667+00:00

    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:

    1. 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 certain EXECUTE IMMEDIATE patterns is not supported.
    2. 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 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.

      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.
    3. 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 NOT or special characters in schema filters.
    4. 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 to Lineage, code, signature in the scan configuration. This ensures Purview imports the procedure code and derives lineage. When using Self‑hosted Integration Runtime, this option requires version 5.30.8541.1 or later; earlier versions always extract only the signature.
    5. 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:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.