如何计划 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 使用监控的主要内容,如果未能解决你的问题,请参考以下文章

Snowflake 是不是向 DataGrip 等 SQL 客户端提供解释计划中的成本信息?

项目经理如何执行与监控项目状态?

如何减少和监控 Snowflake 中的计算资源?

论文:论项目的计划和监控

(转)为首次部署MongoDB做好准备:容量计划和监控

jmeter 建立一个监控测试计划