【问题标题】:How to get from which table a particular view is created in Snowflake through query如何通过查询从Snowflake中创建特定视图的表
【发布时间】:2023-03-29 00:16:01
【问题描述】:

我是雪花的新手。我正在构建一个应用程序,我需要在其中显示创建特定视图的表信息(名称和属性)。

示例: Snowflake views with its source tables

到目前为止,我已经尝试了来自以下站点的查询,但它没有给出特定视图的源表。

https://dataedo.com/kb/query/snowflake/list-views-with-their-scripts

那么,是否有一个查询可以让我获得特定视图的源表(涉及属性)。

【问题讨论】:

标签: snowflake-cloud-data-platform


【解决方案1】:

可以使用GET_OBJECT_REFERENCES提取视图依赖项:

SELECT REFERENCED_DATABASE_NAME, 
       REFERENCED_SCHEMA_NAME, 
       REFERENCED_OBJECT_NAME, 
       REFERENCED_OBJECT_TYPE,
       *
FROM TABLE(get_object_references(database_name=>'<db_name>',
                                 schema_name=>'<schema_name>',
                                 object_name=>'<view_name>'));

可以使用INFORMATION_SCHEMA.COLUMNS查询列列表。

【讨论】:

  • 这太棒了,谢谢@LukaszSzozda,还有一种方法可以获取从表中创建特定视图所涉及的属性吗?例如:create view v1 (pre_tax_profit, taxes, after_tax_profit) as select revenue - cost, (revenue - cost) * tax_rate, (revenue - cost) * (1.0 - tax_rate) from table1;。在此示例中,收入、成本、税费率参与创建视图。
  • @KishorKumar 可以从ACCESS HISTORY 推断出该信息。 "SELECT * FROM view_name" 然后检查访问历史。
【解决方案2】:

您可以使用以下示例查询来提取列级元数据...

  select
        -- refr_tab.referenced_database_name,refr_tab.referenced_schema_name, refr_tab.referenced_schema_name,referenced_object_name
        ref_cols.*
    from
        table(
            get_object_references(
                database_name => 'ex1_gor_y',
                schema_name => 'public',
                object_name => 'y_view_f'
            )
        ) refr_tab,
        information_schema.columns ref_cols
    where
        refr_tab.referenced_object_type = 'TABLE'
        and refr_tab.referenced_schema_name = ref_cols.table_schema
        and refr_tab.referenced_object_name = ref_cols.table_name
        and ref_cols.table_name = 'Y_TAB_A';

【讨论】:

  • 感谢您的输入,当我运行此查询时,我认为它会拉取相关表的所有列,即使其中一列参与创建视图。有没有办法在创建视图时只获取所涉及的列(表)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2023-02-21
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
相关资源
最近更新 更多