查看来自 Snowflake 外部的查询
Posted
技术标签:
【中文标题】查看来自 Snowflake 外部的查询【英文标题】:Viewing queries coming from outside Snowflake 【发布时间】:2021-07-16 14:03:46 【问题描述】:我知道与 account_usage 和 information_schema query_history 函数系列相关的 query_history 视图。但是,我找不到一种方法来监控从雪花外部发送到雪花的查询。例如,我有 Power BI 访问 Snowflake 数据库,但 PBI 发送到 Snowflake 的查询似乎没有出现在查询历史记录中。这个可以看吗?
【问题讨论】:
也许是个幼稚的问题,但您不是使用专用用户/仓库从 PBI 连接到 SF 吗? 是的,但这有什么不同? QUERY_HISTORY - 列 WAREHOUSE_ID/USER_NAME/ROLE_NAME 可用于确定源自 Power BI 的特定查询 我同意这应该可行,但 PBI 查询未显示在视图返回的结果集中。 我找到了我的 PBI 查询。问题是结果集中的数据库名称被设置为 NULL,而我正在寻找我知道正在被命中的特定数据库。如果您想输入您的 cmets 作为答案,我会投票并接受它以支持您的努力。 【参考方案1】:可以在Query History view 中找到针对 Snowflake 运行的查询(ACCOUNT_USAGE 架构有 45 分钟的数据延迟)。
如果外部工具(此处为 Power BI)使用专用的虚拟仓库/用户/角色,则很容易按以下列之一过滤记录:WAREHOUSE_ID/USER_NAME/ROLE_NAME
。
另一种选择是使用专用的表值函数:
select *
from table(information_schema.query_history_by_user(USER_NAME =>'<power_bi_user>'))
order by start_time desc;
【讨论】:
阅读本文的人需要注意的一点。 PBI 对其发出查询的数据库的名称不会出现在结果集的 DATABASE_NAME 列中。它将为 NULL。以上是关于查看来自 Snowflake 外部的查询的主要内容,如果未能解决你的问题,请参考以下文章