SuperAPI AI 工具集

databricks-cost-tuning

数据与分析

查看项目

更新于 10-16 06:20

技能介绍

用途:降低 Databricks 支出,覆盖集群策略、Spot 实例、SQL 仓库规格调整与成本治理。Databricks 按 DBU 计费,费率随计算类型不同:Jobs Compute($0.15/DBU)、All-Purpose Compute($0.40/DBU)、SQL Compute($0.22/DBU)、Serverless($0.07/DBU)。系统表 system.billing.usage 与 system.billing.list_prices 提供成本可见性。

前提:Databricks Premium 或 Enterprise 工作区;可访问上述系统表;创建工作区管理员权限以创建集群策略。

主要能力与用法:

  1. 识别成本大头:查询 system.billing.usage 关联 list_prices,按 cluster_id、sku_name 汇总 DBU 与估算费用,取前 10;按 cluster_tags.Team 汇总团队成本。
  2. 强制集群策略:用 databricks.sdk 的 WorkspaceClient 创建策略,限制 autotermination_minutes(10-60,默认 20)、num_workers(0-8)、node_type_id 白名单、aws_attributes.availability 固定为 SPOT_WITH_FALLBACK、custom_tags.CostCenter;再通过 set_permissions 分配给组。
  3. 批处理作业用 Spot 实例:作业集群配置中 availability 设为 SPOT_WITH_FALLBACK,first_on_demand 为 1 保证驱动按需,spot_bid_price_percent 100,zone_id 为 auto。
  4. SQL 仓库合理配置:查询 system.query.history 统计查询数、平均时长、排队时长;平均排队接近 0 说明过大,超过 30 秒说明需扩容或自动伸缩;突发负载可迁移到 Serverless。
  5. 自动终止空闲开发集群:用 databricks clusters list 配合 jq 筛选 dev/sandbox/test 集群并设置 15 分钟自动停止;用 SDK 检测运行超 60 分钟无活动的空闲集群。
  6. 实例池:创建 instance_pools,设置 min_idle_instances、max_capacity、idle_instance_autotermination_minutes 与 Spot 属性,作业集群通过 instance_pool_id 引用。

输出:按集群、团队、SKU 的成本明细;强制自动终止与实例上限的集群策略;批处理 Spot 配置;SQL 仓库利用率报告;实例池;空闲集群检测脚本。

限制与错误处理:Spot 可能被回收,SPOT_WITH_FALLBACK 可自动恢复,长作业需检查点;策略过严需放宽 max_workers 或增加实例类型;SQL 仓库空闲需设 auto_stop_mins 为 5-10;账单数据不可用需在 Account Console 启用系统表。资料未提供具体价格以外的收费与效果保证。