Snowflake cloud data platform 高信用使用率-信息\u架构。查询\u历史记录

Snowflake cloud data platform 高信用使用率-信息\u架构。查询\u历史记录,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,是否有一种优化的方法来识别Snowflake中的长时间运行查询?我注意到的是查询信息\u模式。查询历史记录是否提供参数值对产生的成本没有影响 背景: 我们有一个定期运行的AWS lambda,通过利用信息\u schema.query\u history查找任何长时间运行的查询。但是每次执行都将花费0.18个积分,而不管您为参数end\u time\u range\u start等提供的值如何,以限制您获取的数据 因此,这两个查询将产生相同的成本 table( information

是否有一种优化的方法来识别Snowflake中的长时间运行查询?我注意到的是查询
信息\u模式。查询历史记录
是否提供参数值对产生的成本没有影响

背景: 我们有一个定期运行的AWS lambda,通过利用
信息\u schema.query\u history
查找任何长时间运行的查询。但是每次执行都将花费0.18个积分,而不管您为参数
end\u time\u range\u start
等提供的值如何,以限制您获取的数据

因此,这两个查询将产生相同的成本

table(
      information_schema.query_history
      (
        end_time_range_start=> dateadd('minutes',-5,current_timestamp()),
        result_limit=>100
      )
     )


table(information_schema.query_history(result_limit=>100))

注意:我们已经使用
语句\u TIMEOUT\u IN_SECONDS
在仓库级别设置查询持续时间限制。此外,我们有资源监视器来限制使用的积分,但如果有人运行长时间运行的查询,我们需要更精细的解决方案来提醒我们。

您可以直接查询SNOWFLAKE.ACCOUNT\u USAGE.query\u HISTORY,以对返回给您的查询进行更多控制。其中包含1年的数据,但显示的数据最多延迟45分钟


在成本方面,如果您正在利用最常用的仓库来执行查询,那么它实际上不会花费您任何额外的积分。如果可以的话,我会考虑切换到那个仓库。

查询修剪访问视图
似乎只有在
START\u TIME
上过滤时才有效,而不是
END\u TIME

因此,我不得不更改“每天保存查询历史记录”过程,

加快执行时间>4倍。

我的方法是首先运行
显示仓库。这不使用仓库,并允许您查看是否有任何仓库正在运行。如果没有正在运行的查询,那么您肯定没有长时间运行的查询*,您可以停在这里。如果任何一个仓库正在运行,那么您可以机会主义地在该仓库上执行查询历史记录查询,而不会招致1分钟的最低罚款

有了它,你应该能够以几乎零的额外成本运行


*例外情况可能是,如果您有一个需要花费很长时间编译的查询—如果您担心这一点,那么这种方法将不起作用。

您是在寻找执行时间很长的查询,还是在寻找历史视图?希望实时查看长时间运行的查询谢谢Mike!。我们没有任何活动仓库一直在运行;我们不想使用陈旧的数据。所以,我决定创建一个单独的仓库(X-LIGHT),自动挂起值为1分钟。在这个设置中,每次运行只会产生0.017个信用。@ PATKS您可能只想考虑向您的LAMBDA作业中添加一个AtLealSturtRund语句。那么,你就不会等它关机了。这样,你只需要在第一分钟内付费,而不是一分钟和一些零钱。Lambda函数计划多久运行一次?Lambda每半小时运行一次。我启用了自动暂停30秒。查询需要1-5秒。但是,由于Snowflake对整分钟收费,我们对X-Small Warehouse Snowflake.ACCOUNT\u USAGE.QUERY\u HISTORY每次执行仅收取0.017美元的费用,因为延迟45分钟