【问题标题】:Is there a way to figure out the tables a snowflake query is accessing?有没有办法找出雪花查询正在访问的表?
【发布时间】:2020-05-27 01:54:09
【问题描述】:
我查看了 SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY 表,但它提供的信息是数据库名称。雪花中有没有办法获取查询正在访问的表名?我不是在寻找涉及解析查询字符串的解决方案,因为这真的很复杂。
【问题讨论】:
标签:
snowflake-cloud-data-platform
【解决方案1】:
要查看历史查询访问了哪些表,您可以转到“历史记录”选项卡,单击该查询的查询 ID,然后单击配置文件。对于您将要运行的查询,您可以通过在查询前键入“解释”来查看它将访问哪些表。这将生成一个元数据结果集,其中包含查询将从中读取的表列表以及其他信息。
编辑:如果解释产生了一个很长的结果集,并且您想将其过滤到仅受影响的表,您可以执行以下操作:
-- Generate the explain metadata reult set
explain select * from MY_VIEW;
-- Filter to just affected tables
select distinct "objects" as TABLE_NAME
from table(result_scan(last_query_id()))
where "operation" ilike '%table%' and "objects" is not null;