计划将雪花成本优化到现有设置。
1。禁用未使用的用户/角色,并丢弃未使用的仓库。
2。密切监视仓库并根据结果采取措施。下面是我要采用的方法来监视仓库XXXXXX。请查看并传递您的意见。
a。获取有关过去14天仓库使用的信用额的报告
选择*从 表(information_schema.warehouse_metering_history(dateadd('day',-14,current_timestamp()),current_timestamp())) 和WAREHOUSE_NAME ='XXXXXX';
-集中时间,在此期间我们看到仓库的信贷使用率很高,并记下时间框架。
-使用步骤b在一段时间内检查AVG_RUNNING,AVG_QUEUE_LOAD,AVG_QUEUE_LOAD,AVG_QUEUE_LOAD。
b。获取以下有关仓库中最近14天查询数量及其状态的报告
选择*从 表(information_schema.warehouse_load_history(date_range_start => dateadd('day',-14,current_timestamp()))) 和WAREHOUSE_NAME ='XXXXXX';
-如果在步骤a中我们注意到的时间内AVG_QUEUE_LOAD,AVG_QUEUE_PROVISION的值较高,请尝试增加仓库的规模(按比例放大)。
-如果AVG_BLOCKED的值较高,则尝试增加仓库集群(向外扩展)。
-如果看到AVG_QUEUE_LOAD,AVG_QUEUE_PROVISION,AVG_BLOCKED值为零或更少,请尝试减小仓库的大小。
c。获取avg_running与CREDITS_USED之比
,将cte设置为(选择date_trunc('hour',start_time)作为start_time, 结束时间,仓库名称,贷方来自 表(information_schema.warehouse_metering_history(dateadd('days',-1,current_date()),current_date())) 其中Warehouse_name ='XXXXXX')选择date_trunc('hour', a.start_time)作为开始时间,avg(AVG_RUNNING),avg(credits_used), avg(AVG_RUNNING)/ avg(credits_used)* 100 表(information_schema.warehouse_load_history(dateadd('days',-1,current_date()),current_date())) 在a.start_time = date_trunc('hour',a.start_time)上加入cte b a.warehouse_name ='XXXXXX'按1乘1的顺序分组;
-如果比率高,则不要更改仓库大小。
-如果比率低,请考虑减少仓库的大小。
答案 0 :(得分:0)
我强烈建议您看一下Snowflake文档上的这篇文章:
https://docs.snowflake.com/en/user-guide/warehouses-considerations.html#scaling-up-vs-scaling-out
您正在使用的某些指标(例如排队)与是否需要横向扩展而不是向上扩展有关。大多数情况下,这也适用于avg_running。减少仓库的大小不会影响将在该仓库上执行的查询的数量,而是会影响它们执行的性能。您应该更多地研究字节溢出到本地或远程存储中的情况……以确定仓库是否对于在该服务器上执行的查询而言太小了。
这是一个棘手的话题,与那里的其他数据库有很大的不同。我建议您仔细阅读该文档,如果有必要,也许可以直接与Snowflake联系以获得一些专业服务帮助。