如何在 Snowflake 中列出哪些视图使用特定视图或 table?

How to list which views consume a specific view or table in Snowflake?

我想以某种方式列出或检索哪些特定视图从特定视图或 table Snowflake 中选择数据。类似于:

SHOW VIEWS ... SELECTING FROM my_view

了解是否也可以使用函数和存储过程来做到这一点也很有用。

可以从 Object Dependencies

中检索到

Query the OBJECT_DEPENDENCIES view in the Account Usage schema of the shared SNOWFLAKE database to determine the object references for the table SALES_NA

SET obj_name = 'my_view';

with recursive referenced_cte
(object_name_path, referenced_object_name, referenced_object_domain, referencing_object_domain, referencing_object_name, referenced_object_id, referencing_object_id)
    as
      (
        select referenced_object_name || '-->' || referencing_object_name as object_name_path,
               referenced_object_name, referenced_object_domain, referencing_object_domain, referencing_object_name, referenced_object_id, referencing_object_id
          from snowflake.account_usage.object_dependencies referencing
          where true
            and referenced_object_name = $obj_name and referenced_object_domain='TABLE'

        union all

        select object_name_path || '-->' || referencing.referencing_object_name,
              referencing.referenced_object_name, referencing.referenced_object_domain, referencing.referencing_object_domain, referencing.referencing_object_name,
              referencing.referenced_object_id, referencing.referencing_object_id
          from snowflake.account_usage.object_dependencies referencing join referenced_cte
            on referencing.referenced_object_id = referenced_cte.referencing_object_id
            and referencing.referenced_object_domain = referenced_cte.referencing_object_domain
      )

  select object_name_path, referenced_object_name, referenced_object_domain, referencing_object_name, referencing_object_domain
    from referenced_cte
;

您可以查询 get_object_references() table 函数以获取哪个视图引用了哪个其他视图。

文档参考:https://docs.snowflake.com/en/sql-reference/functions/get_object_references.html

另一种方法是在 SNOWFLAKE.ACCOUNT_USAGE SCHEMA

中查询 OBJECT_DEPENDENCIES 视图

文档参考:https://docs.snowflake.com/en/sql-reference/account-usage/object_dependencies.html