如何计划 Snowflake 使用监控
Posted
技术标签:
【中文标题】如何计划 Snowflake 使用监控【英文标题】:How to plan Snowflake usage monitoring 【发布时间】:2019-10-11 15:15:08 【问题描述】:Snowflake 基本上是一个云数据仓库。 Snowflake 的基本工作单元是查询。为了监控负载,我们需要在一定的时间间隔监控查询负载。
两个可用选项:
1. INFORMATION_SCHEMA Schema
2. ACCOUNT_USAGE Schema
这两种模式都包含 QUERY_HISTORY 视图。在这里,可以使用任一模式创建监控仪表板。但是我们需要了解这些模式的局限性,以下是我们的发现
QUERY_HISTORY VIEW IN:
INFORMATION_SCHEMA:它只包含 10,000 条记录。在这种情况下,无法预测结果数据是否属于所需的持续时间。因为可以根据当时的流量插入 10K 行。在这种情况下,INFORMATION_SCHEMA 结果可能不一致。 它包含 14 天间隔或 10K 条记录的数据。
ACCOUNT_USAGE:包含1年的数据,延迟45分钟。
结论: 万一,所需的数据分析是连续的,而不是仅使用 INFORMATION_SCHEMA。
如果所需的数据分析可以容纳 45 分钟的延迟,则应使用 ACCOUNT_USAGE 架构。
【问题讨论】:
【参考方案1】:使用内部工具,我们以 10 分钟的分辨率轮询 INFORMATION_SCHEMA
,我认为如果当前块不满足当前块,我们甚至可能会继续轮询,如果我们获得 10K,则在批处理中添加第一次结果回来了。
然后我们将其放入 InfluxDB 中,以便我们可以绘制图表并对此发出警报。主要的缺点是获取历史记录的查询本身就是一个查询,因此如果您遇到排队时间(并且使用相同的仓库也有延迟)和一个较旧的问题,如果您的帐户连接限制饱和,您也无法进入,以查看帐户饱和的情况,并且在该状态下您也无法登录 UI。为了解决这个问题,我们对所有工具进行了限制,所以不要达到限制。
我们目前每天进行约 300-400K 查询,上述方法对我们来说效果很好。
【讨论】:
以上是关于如何计划 Snowflake 使用监控的主要内容,如果未能解决你的问题,请参考以下文章