雪花基本上是一个云数据仓库。 Snowflake的基本工作单位是查询。要监视负载,我们需要以一定的时间间隔监视查询负载。
两个可用选项:
1. INFORMATION_SCHEMA Schema
2. ACCOUNT_USAGE Schema
这两个模式都包含QUERY_HISTORY视图。在这里,可以使用任何一个架构创建监视仪表板。但是我们需要了解这些模式的局限性,以下是我们的发现
QUERY_HISTORY VIEW IN:
INFORMATION_SCHEMA:仅包含10,000条记录。在这种情况下,无法预测结果数据是否属于期望的持续时间。由于可以根据当时的流量插入1万行。在这种情况下,INFORMATION_SCHEMA结果可能会不一致。它包含14天间隔或1万条记录的数据。
ACCOUNT_USAGE:包含1年的数据,延迟45分钟。
结论:在这种情况下,所需的数据分析是连续的,而不是仅使用INFORMATION_SCHEMA进行。
如果需要的数据分析可能需要比使用ACCOUNT_USAGE模式多45分钟的延迟。
[使用内部工具,我们以10分钟的分辨率轮询INFORMATION_SCHEMA
,我认为如果当前块不满足当前条件,我们甚至可以继续轮询,如果获得10K的结果,则在批次中首次添加背部。
然后将其扔到InfluxDB中,以便我们可以对此进行图形化处理并发出警报。主要缺点是,获取历史记录的查询本身就是一个查询,因此,如果您遇到队列时间(并且正在使用同一仓库也有延迟)和较旧的问题,如果您使帐户连接限制达到饱和,则还会无法进入,以查看导致帐户饱和的原因,在这种状态下,您也无法登录UI。为了解决这个问题,我们对所有工具进行了限制,因此请不要超出限制。
我们目前每天要进行大约300-400K的查询,以上方法对我们来说效果很好。