
气候发生了变化,每个人都很快注意到雪花有多贵。
雪花如何失败 - 本·斯坦西尔
为什么雪花这么贵 - 斯塔斯萨金
雪花性能挑战 - 纤薄巴尔塔吉
好吧,所以雪花很贵。但是我该怎么办呢?
- 避免频繁更新
- 通过 24x7 全天候运行的应用优化每次查询成本
- 优化慢查询
- 将自动挂起时间缩短至 1 或 2 分钟
- 构建雪花退款仪表板
- 试用第三方成本分析器
- 设置资源监视器和支出阈值
让我进一步深入探讨其中的每一个。
1. 避免频繁更新

DynamoDB 和 MongoDB 等现代数据库提供 CDC 流。
您的利益相关者要求提供更新鲜的数据。
您决定更频繁地更新仓库,并且一周内用完了雪花积分。
雪花是为批处理而构建的。它在引入期间执行昂贵的 MERGE 操作,CDC 流可能会在一周内销毁计算积分。如果你看到卡夫卡事件或雪管流入你的仓库,只需嘀咕一批人的儿子,然后走开。
2. 通过 24x7 全天候运行的应用优化每次查询成本
像Snowflake,Redshift,Bigquery这样的仓库针对历史数据的长期扫描密集型查询进行了优化(例如,“与去年相比,我们今年在法国的平均售价是多少?”)。根据设计,它们提供较低的每 GB 存储成本,但对每个查询执行昂贵的扫描操作。让开发人员在其上构建高 QPS 数据应用程序效率非常低(而且速度慢且令人沮丧)。
Rockset、Druid 和 Pinot 等实时分析平台针对流式摄取和数据应用所需的选择性查询模式类型进行了优化,使这类数据库成为支持面向用户的分析的更好选择。查询更快、更高效,因为它们使用索引而不是暴力扫描。查询延迟和每次查询成本都较低。
对于某些工作负载,必须针对每次查询成本而不是每 GB 成本进行优化。将 Snowflake 等仓库用于查询不频繁的 BI 工作负载,将 Rockset 等实时分析数据库用于 24x7 全天候运行的数据应用。为作业使用正确的工具通常意味着以更低的计算成本加快查询速度。
3. 调整慢查询
“当我的雪花查询速度很慢时,我该怎么办?我杀死查询并提升计算”

除了更广为人知的性能调优技巧(如数据聚类和物化视图)之外,Snowflake 还有相当多的慢查询优化,例如减少队列、使用结果缓存、处理磁盘溢出、纠正行爆炸、修复修剪不足。
以下是一些有用的提示:如何优化慢查询
运行此 Snowflake SQL 查询,从查询历史记录中查找过去 30 天内开销最大的查询,并优化更频繁的查询。
4. 将自动挂起时间缩短至 1 或 2 分钟

当你坐着不动时,5分钟是很长的时间。当你刻录计算时,这是一个非常非常长的时间。
启动新的虚拟仓库很快。默认情况下,Snowflake 将自动挂起设置为 5 分钟,但很容易将其更改为 1 或 2 分钟。
5. 构建雪花退款仪表板
“我用的是雪花大号。我花了多少钱?我不知道“(来自实际的雪花用户)
“我的首席财务官要求我开具发票。我找到了学分,但仍然不确定我花了多少钱“(来自雪花论坛)
以下是一些有用的提示:如何构建这些退款仪表板
默认情况下,只有帐户管理员角色可以查看帐单。首先,授予所有用户“监视使用情况”权限。接下来,构建一个整体信用消耗仪表板,其中包含信用到美元的实际映射。并按仓库构建信用消费和查询执行仪表板。与所有用户共享月度报告。
6. 尝试第三方成本分析器
这是我能做的最好的事情吗?这是一个困扰我们最好的人的问题。
这是一个有用的雪花工作负载优化实用程序,由Bluesky提供支持

使用具有智能监控功能的第三方成本分析器,提供良好的行业基准并提供分步建议。
7. 设置资源监视器和支出阈值

没有确定的致富方法。但有些事情是一个滑坡。不要成为那个人(或女孩)。
设置支出和设置通知和提醒的硬性限制。当您的仓库达到其支出阈值的 50% 时,请检查您的摄取和查询模式并执行正确的操作。
原文作者:Shruti Bhat
原文链接:https://rockset.com/blog/7-practical-ways-to-cut-snowflake-compute-cost/
原文标题: 7 Practical Ways to Cut Snowflake Compute Cost




