0

我在 SnowFlake 有一个小仓库,带有minimum clusters = 1maximum clusters = 5scaling policy设置为standard。但是,当我查看查询历史配置文件时,我看到对于某些查询,size列设置为large,但cluster number仍然是 1。

现在,我知道自动缩放有助于增加集群数量,但是在没有人工干预的情况下,某些查询的仓库大小是如何变化的?

我在这里参考了 SnowFlake 的官方文档,但找不到任何自动更改仓库大小的方法。

4

1 回答 1

2

Snowflake不具备任何会自动改变仓库大小的功能。

使用中的工具(或用户)很可能运行了ALTER WAREHOUSE SET WAREHOUSE_SIZE=LARGE. 目的可能是为更大的操作做准备,暂时确保足够的性能。

使用各种历史视图来找出谁/什么以及何时进行了此类更改。例如,该QUERY_HISTORY视图可用于查找用于更改仓库大小的用户名和角色,使用以下查询:

SELECT DISTINCT user_name, role_name, query_text, session_id, start_time
FROM snowflake.account_usage.query_history
WHERE query_text ILIKE 'ALTER%SET%WAREHOUSE_SIZE%=%LARGE%'
AND start_time > CURRENT_TIMESTAMP() - INTERVAL '7 days';

然后,您可以使用LOGIN_HISTORYview 查找用户在此期间从哪个 IP 进行身份验证(或使用历史 UI获取精确的客户端信息),检查在同一会话中执行的所有其他查询等。

为了防止未经授权的用户修改仓库大小,请考虑限制对其角色的仓库级别授权(可以通过上面的查询检测到正在使用的角色名)。

于 2020-05-26T11:59:49.247 回答