Set Budgets and Alerts for Cloud Data Warehouse Costs
TL;DR · AI 摘要
Set Budgets and Alerts for Cloud Data Warehouse Costs Databricks Blog Skip to main content Data Warehousing October 7, 2...
核心要点
- 主题聚焦:Set Budgets and Alerts for Cloud Data Warehouse
- 来源:Databricks,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
为云数据仓库成本设置预算和警报 | Databricks 博客
跳至主要内容
数据仓库
2026年10月7日
为云数据仓库成本设置预算和警报
在Databricks上通过实际案例,介绍为SQL数据仓库进行标签管理、预算规划、警报配置和监控的具体操作步骤。
作者:Shweta Verma 和 Lingeshwaran Kanniappan
摘要
- 在创建时为每个SQL数据仓库添加团队、成本中心和使用案例标签,然后通过system.billing.usage监控归因情况,将未归因的支出降至零。
- 设置分层预算(按团队划分以明确责任,全账户范围作为安全网),并配置提前数天预测月度超支的进度警报。
- 基于系统表构建成本仪表板,使数据仓库支出成为每个团队必须负责的指标,而非平台团队事后解释的指标。
每个分析团队都经历过这样的场景:月底账单到达时,某个SQL数据仓库已超出预算,可能是计算资源在夜间持续运行,也可能是在季度审查期间自动扩展以服务80名Tableau用户的临时查询。成本是真实的,但更深层的挫败感在于:直到为时已晚,没有人意识到问题。
主动的成本管理改变了这一模式。与其在支出发生后进行账单分析,不如在花费第一分钱前设置防护措施——将预算与数据仓库、团队或BI工作负载绑定。在您选择的阈值触发警报,并在Databricks数据与AI平台上实时展示使用趋势的仪表板。如果您正在从本地系统或其他云数据仓库迁移,现在正是建立这种治理机制的关键时刻。
为什么被动的成本管理会失败?
数据仓库工作负载具有独特的成本挑战。SQL数据仓库服务于交互式、由人工驱动的工作负载(BI仪表板、即席分析、嵌入式分析),需求不可预测且波动剧烈。一次高管全员会议可能同时触发200个仪表板刷新,几分钟内就会导致成本激增。大多数组织开始FinOps旅程的方式都类似:有人下载上个月的使用情况CSV文件,打开数据透视表并开始提问。这种方法存在四个问题:
- 无法追踪是谁在支出。使用情况汇总到平台,而非具体团队或引发该使用情况的查询,因此没有人能对数字负责。
- 没有人负责预算。如果没有将支出目标与数据仓库或团队绑定,运行SELECT *查询2TB表的分析师永远不会感受到成本压力。平台团队则默默承担了这些费用。
- 发现得太晚。当上个月的Excel报告显示超支时,这些数据已经过时两个计费周期,导致问题的决策已无从追溯。
- 手动审查无法扩展。每月数据透视表审查可能只覆盖五个数据仓库。但当扩展到数十个仓库时,支持跨Tableau、Power BI和Looker的数百名分析师将变得难以管理。
主动的成本管理——归因、预算、警报、仪表板和优化——解决了所有这些问题。
从无服务器开始:第一个成本决策
在设置预算之前,选择合适的数据仓库类型。SQL无服务器数据仓库是Databricks针对大多数工作负载的推荐选项。它们可在数秒内启动,查询完成后立即缩减规模,并让智能工作负载管理为您分配计算资源,因此您只需为实际查询执行付费,而非空闲准备状态。
如果你正在从传统的云数据仓库迁移,这将是一个重大转变。大多数传统平台会针对持续运行的计算资源收费,或需要手动进行扩展决策。无服务器架构消除了这一整类成本错误。
Lumen Technologies对此有切身体会:将两个关键的电信系统从本地数据仓库迁移到SQL无服务器架构后,计算成本降低了30%至40%,查询速度提升了90%。该系统现在可自动扩展以处理每10分钟约7GB的数据量,无服务器架构去除了通常与突发性、实时工作负载相关的"持续运行费用"。
主动成本管理的五大支柱
该框架由五大支柱组成。前四个支柱使支出可视化;第五个支柱才是真正降低支出的关键:
- 成本归属。对所有资源进行标记,以便清楚了解哪些仓库由谁使用、花费了多少。
- 预算。在账户、工作区或团队层级定义每月支出目标。
- 警报。当支出接近或超过阈值时立即通知。
- 仪表板。可视化数据仓库趋势,将成本作为首要的运营指标。
- 优化。从根本上减少工作负载本身的成本。
支柱1:双层级的成本归属
你无法管理无法归属的成本,对于数据仓库而言这意味着两个层级:仓库本身和单个查询。前者告诉你哪个仓库产生了费用,后者则告诉你仓库内部具体是谁产生的费用。
第一层级:标记仓库
SQL仓库支持自定义标签(以键值对形式),这些标签会传播到system.billing.usage,将每个消耗的DBU与团队、项目或成本中心关联。所有仓库类型(经典版、专业版和无服务器版)的标记方式相同——所有仓库都在仓库层级进行标记,因此你只需学习一种模式即可应用到所有场景。
在UI中通过SQL Warehouses > 你的仓库 > 编辑 > 标签进行设置,或通过REST API创建仓库:
通过REST API进行标记
$
/$
至少应用三个维度:团队(负责人)、成本中心(付款方)和使用场景(BI服务、即席查询、计划刷新)。
目前没有原生策略强制执行仓库标签,因此任何人都可以创建未标记的仓库。相反,应在你的部署流程中加入强制执行机制——使用Terraform、声明式自动化捆绑包或REST API创建仓库时,在定义中包含标签,将UI视为例外情况。后续本文中的"归属差距查询"会捕获所有未被拦截的未标记仓库。
第二层级:标记查询
仓库标签告诉你某个仓库上个月花费了4000美元。但它们不会告诉你其中60%的费用来自一个每15分钟刷新一次的Power BI仪表板。这个差距很重要,因为仓库是共享资源——一个BI仓库可能为数十个仪表板、多个dbt模型和一系列即席查询提供服务。
查询标签(公开预览版)通过将业务上下文附加到单个SQL语句来弥补这一差距:
这些标签会出现在system.query.history(公开预览版)表的query_tags列中,与executed_by和statement_id并列,这样你就可以按仪表板、模型或成本中心对支出进行分组,而不是按仓库分组。一些工具会自动设置这些标签:从dbt-databricks 1.11.0版本开始,模型查询会自动标记为对应的dbt模型名称,Power BI会通过ADBC驱动程序传递工作区和数据集标识符。
两个注意事项:查询标签仅适用于SQL仓库查询,且由于它们存储在查询历史记录而非计费数据中,您需要自行将两者关联以获取每查询成本。
在编写任何SQL之前,请查看Governance Hub(Beta)中的成本页面——这是账户级别的支出、成本驱动因素、预算和标签覆盖情况的视图,也是快速了解您的使用情况中可归因部分的最便捷方式。账户管理员可通过账户控制台的预览页面启用该功能。
第二支柱:在账户控制台中设置预算
创建预算
在账户控制台中,进入使用情况 > 预算,点击添加预算,然后配置以下内容:
- 名称:描述性名称(例如:"Analytics SQL Warehouses, Monthly")
- 金额:以美元为单位的月度目标
- 范围:通过工作区和/或标签进行筛选(例如:Team:Analytics)
- 电子邮件通知:当支出达到预算金额时通知的接收者
预算配置示例
预算名称 | 金额 | 范围(标签) | 警报接收者 ---|---|---|--- BI服务+生产 | $8,000/月 | UseCase:BIServing Env:Prod | [email protected] 分析+临时分析 | $3,000/月 | UseCase:AdHoc | [email protected] 营销分析 | $2,500/月 | Team:Marketing | [email protected] 全账户安全网 | $25,000/月 | (所有SQL使用) | [email protected], [email protected]
关键模式是分层预算:团队级预算用于问责,加上全账户级预算作为安全网,用于捕获任何遗漏项。
请注意,预算是监控机制而非硬性上限。它们不会停止使用或阻止收费,因此您的账单仍可能超过预算金额。目标是提高意识并快速响应,而非通过切断服务导致生产看板在刷新过程中中断。
GetYourGuide进行了直接测试:将所有Looker工作负载整合到SQL无服务器上,使BI服务成本降低了约20%,查询速度提升了35%,尽管团队原本预计经典集群会更便宜。仓库类型的选择是一个值得重新验证的预算决策,而非一次性决定。
查看您的消耗速率
点击任何预算,可查看当前支出与目标的对比、剩余预算以及每日消耗速率的可视化图表。对于数据仓库,此图表尤其具有揭示性:
- 线性每日消耗表示稳定的BI服务成本。
- 周一/周五尖峰的锯齿形表示临时探索集中在工作日。
- 月中突然上升表示部署了新看板而未进行成本审查。
- 逐渐上升表示有机采用速度超过了预算假设。
第三支柱:警报,成本治理的神经系统
预算告诉您当前所处的位置。警报告诉您何时需要采取行动。
预算电子邮件警报
创建预算时,添加在支出超过预算金额时会收到通知的电子邮件接收者。无需任何代码。
对于基于阈值的警报,请创建直接查询system.billing.usage的Databricks SQL警报。以下是最关键的模式:
当每日SQL仓库支出超过阈值时触发警报
进度警报:预计月底支出将超过预算
这是团队获得最大价值的模式。与其在突破预算后发出警报,不如提前预测月底支出并在预测值超过预算前发出警报,此时您仍有时间采取行动:
每四小时执行一次此操作,并通过Slack或电子邮件路由。它为团队提供了数天的反应时间(如调整仓库规模、优化昂贵查询、延迟批次处理),在预算被突破前采取行动。
从物化视图刷新中发现隐藏成本
物化视图刷新成本是团队最容易忽视的成本类型,因为它们按无服务器流水线使用计费而非仓库使用。一个设置为每15分钟刷新的视图,若数据源每天仅更新两次,就会产生不必要的资源消耗。将刷新计划与底层数据实际变更频率匹配后,流水线支出将直接反映真实需求:
第四支柱:仪表板与持续监控
警报是即时触发器,而仪表板能提供持续上下文。Databricks提供预构建的使用仪表板,管理员可将其导入任何启用Unity Catalog的工作区。这些仪表板涵盖支出趋势、TOP-N分析、标签过滤和按仓库深入分析等功能。对于自定义监控,以下两个查询特别实用:
按团队划分的SQL仓库成本
未归因的SQL使用(归因缺口)
未标记的SQL使用即为归因缺口,是无法追溯到任何团队的仓库支出。将此缺口降至零。
Raiffeisen Bank International在Databricks系统表基础上直接构建了成本监控和预测平台,实现按仓库、用户和工作负载的可视化。其成果不仅体现在技术层面,更带来文化变革:工作负载速度提升3-4倍,更重要的是,当团队能直观看到自身支出并被要求解释时,行为会自然改变,无需强制规定。
第五支柱:优化,真正改变账单的支柱
前四个支柱帮助你看清支出,而这一支柱旨在降低支出,且这是大多数团队最容易忽略的部分。从两个能同时提升成本和性能的改动开始:
为Unity Catalog托管表启用预测性优化。Databricks会根据每张表的实际查询方式自动运行OPTIMIZE、VACUUM和ANALYZE操作,CLUSTER BY AUTO功能会随着查询模式变化自动调整聚类键。扫描数据量减少意味着查询更快、DBU更少,且无需维护计划。该功能默认对2024年11月11日或之后创建的账户启用,2026年前将逐步覆盖旧账户。
按前述启动和空闲经济性原则,默认使用无服务器仓库——对大多数团队而言,这能带来主要的节省效果,且无需持续投入。
在此基础上,以下设置值得调整:
- 严格限制自动停止时间。Pro和Classic版本默认在45分钟空闲后停止;无服务器版本默认为10分钟,可通过UI将时间降至5分钟或通过API设置为1分钟。BI仓库在最后一个仪表板关闭后每分钟空闲都是浪费。
- 设置语句超时(Beta功能——启用预览后,通过API按仓库设置)。一个失控查询不应消耗整个周末的计算资源;BI仓库应设置较短超时,ETL仓库可设置更长超时。
- 设置默认仓库(管理设置 > 计算),确保快速查看10行数据时不会唤醒ETL规模的集群,优先启动Small或Medium规模而非过度配置。
- 有目的地进行规模调整。向上扩展(更大尺寸,现已支持5X-Large(公开预览))可加速单个重型查询;向外扩展(提高最大集群数量)可服务更多并发用户。选择错误的扩展方式是常见且代价高昂的错误。
数据层同样重要:OPTIMIZE、VACUUM和液态聚类技术都能减少查询所需的计算资源,这种效果在每天数千个BI查询中会形成复利效应。
所有问题之下,大多数成本问题实际上都是查询问题。缺少连接键或对宽表执行 SELECT * 的成本在仓库调优后不会改变——而第一支柱的归因分析能告诉你需要修复哪些查询和仪表板。
关键要点
- 从第一天起就将无服务器架构和归因机制融入平台。默认使用 SQL 无服务器仓库实现即时启动、自动扩展和零空闲成本,并从一开始就强制使用自定义标签,因为未归因的使用记录是不可见的,而不可见的使用记录总会持续增长。
- 多层级主动制定预算并设置预警。将按团队划分的预算用于责任追究,同时设置全账户预算用于异常检测,通过监控进度而非仅阈值进行预警,这样在突破阈值前就能获得预警并及时采取行动。
- 让支出可视化并将其融入企业文化。最持久的成本节约来自于透明度而非限制,因此应将成本仪表板放置在团队工作区域。正如 RBI 的发现所示,当团队能够看到自己的支出时,行为会自然改变,无需强制规定。
入门指南
这是你最快捷的起步方式,能在成本失控前掌握主动权:
- 在账户控制台中创建第一个预算
- 通过标签为 SQL 仓库和查询归因
- 使用系统表监控成本,查询 system.billing.usage 获取仓库专属洞察
- 了解 SQL 仓库的规模和扩展行为,掌握 IWM 和无服务器经济模型
- 成本优化最佳实践:仓库规模、Photon 和 Delta Lake 优化
- 从混乱到控制:Databricks 的成本成熟度之旅,FinOps 成熟度的爬行-行走-奔跑框架
准备好掌控云数据仓库成本了吗?立即创建 Databricks 免费试用账户,建立第一个 SQL 无服务器仓库,并在账户控制台配置带邮件预警的预算。只需五分钟,零成本。
如需深入探索成本可观测性,查阅计费系统表文档并导入预置的使用仪表板,从第一天起即可开始监控支出。
订阅最新文章
订阅我们的博客,第一时间获取最新文章。
注册
查看所有博客
slice-start id="_gatsby-scripts-1"
slice-end id="_gatsby-scripts-1"