Databricks

Databricks コストアトリビューション実務: タグ設計・SQL集計・チャージバック

2026-03-26
更新: 2026-03-27
NicheeLab編集部

Databricksのコストを正しく配賦するには「タグの一貫性」「使用量ログの活用」「チャージバック計算の自動化」の3つが揃う必要があります。 本稿ではcustom_tagsの設計原則、system.billing.usageテーブルを使ったSQL集計、Cluster Policyによるタグ強制、そしてチャージバックモデルの選択基準を実務に即して解説します。

なぜコストアトリビューションが必要か

アトリビューションは「どの組織・プロジェクトが、どのDBU費用を負担するか」を透明化する仕組みです。 DatabricksではDBU(Databricks Unit)消費に加え、クラウド基盤費(VM、ストレージ)も配賦対象になります。

費用をプラットフォーム費(共通基盤の運用コスト)とプロダクト費(プロジェクト個別のコンピュート消費)に分界し、 前者は全社按分、後者はタグベースのチャージバックとするのが定石です。

  • プラットフォーム費: 管理ワークスペース運用、監視ジョブ、監査基盤の最小リソース
  • プロダクト費: プロジェクト別バッチ実行、SQL Warehouse利用、ノートブック実験
  • 分界の判断基準: タグが付与できるリソースはプロダクト費、できないものはプラットフォーム費に寄せる

custom_tagsの設計原則

タグはコスト配賦の「外部キー」です。Databricksのクラスター・ジョブクラスター・プール・SQL Warehouseに設定するcustom_tagsを、 クラウド側の課金タグ(AWS Cost Allocation Tags / Azure Tags / GCP Labels)と揃えます。

キーは少数精鋭にし、値はマスタテーブルで管理します。高カーディナリティ(チケット番号や一時的ID)は避け、安定キーのみ採用します。

タグキー用途値の例管理方針
cost_center費用負担部門の特定CC-100, CC-200, CC-999台帳PRで事前登録制
env環境区分dev, stg, prod固定3値
productプロダクト識別recommendation, fraud-detection台帳PRで事前登録制
owner責任者team-data-eng, team-mlチーム単位(個人名は避ける)

命名規則は小文字・英数字・ハイフンのみに統一し、各クラウドのタグ制約(Azure: タグ名512文字/値256文字、GCP: ラベルキー63文字)にも適合させます。 不明時のフォールバック値(CC-999等)を定義し、月次で修正要求を出す運用にします。

Cluster Policyによるタグ必須化

タグの入力漏れを構造的に防止するには、Cluster Policyでcustom_tagsを必須化し、allowlistで値を制限します。 ジョブクラスター・All-Purposeクラスター・SQL Warehouseすべてに同一キーを適用することで、Billable Usageログ上のtagsフィールドに確実に値が記録されます。

{
  "custom_tags.cost_center": {
    "type": "allowlist",
    "values": ["CC-100", "CC-200", "CC-300", "CC-999"],
    "defaultValue": "CC-999"
  },
  "custom_tags.env": {
    "type": "allowlist",
    "values": ["dev", "stg", "prod"],
    "defaultValue": "dev"
  },
  "custom_tags.product": {
    "type": "allowlist",
    "values": ["recommendation", "fraud-detection", "analytics", "platform"],
    "defaultValue": "platform"
  },
  "autotermination_minutes": {
    "type": "range",
    "minValue": 10,
    "maxValue": 120,
    "defaultValue": 30
  }
}

このPolicyをユーザー/グループに割り当てると、タグ未選択ではクラスターを作成できなくなります。 Unrestricted Policyの付与は管理者のみに限定し、一般ユーザーには必ずタグ付きPolicyを適用します。

system.billing.usageによるコスト集計SQL

Unity Catalogのsystem schemaにあるsystem.billing.usageテーブルは、DBU消費をワークスペース・SKU・タグ別に記録したシステムテーブルです。 ここに対してSQLを書くことで、タグベースのコスト集計を直接実行できます。

コストセンター別の月間DBU消費を集計するSQLの例です。

SELECT
  usage_metadata.workspace_id,
  custom_tags.cost_center AS cost_center,
  sku_name,
  usage_date,
  SUM(usage_quantity) AS total_dbu
FROM system.billing.usage
WHERE usage_date >= '2026-03-01'
  AND usage_date <  '2026-04-01'
GROUP BY 1, 2, 3, 4
ORDER BY total_dbu DESC

プロダクト別・環境別のクロス集計で、開発環境の肥大化を検出する例です。

SELECT
  custom_tags.product AS product,
  custom_tags.env AS env,
  SUM(usage_quantity) AS total_dbu,
  ROUND(SUM(usage_quantity) * 0.07, 2) AS estimated_cost_usd
FROM system.billing.usage
WHERE usage_date >= DATE_SUB(CURRENT_DATE(), 30)
GROUP BY 1, 2
HAVING total_dbu > 1000
ORDER BY total_dbu DESC

上記のestimated_cost_usdはリスト価格(例: Jobs Compute $0.07/DBU)での概算です。 契約価格が異なる場合は別途単価マスタとJOINしてください。

タグ欠落の検出と是正

タグが付いていないリソースの使用量を検出し、月次で是正するクエリ例です。

SELECT
  usage_metadata.workspace_id,
  usage_metadata.cluster_id,
  sku_name,
  SUM(usage_quantity) AS untagged_dbu
FROM system.billing.usage
WHERE usage_date >= DATE_SUB(CURRENT_DATE(), 30)
  AND (custom_tags.cost_center IS NULL
       OR custom_tags.cost_center = 'CC-999')
GROUP BY 1, 2, 3
ORDER BY untagged_dbu DESC

CC-999(フォールバック値)に集約された使用量は、月次棚卸しで正しいコストセンターに再配賦します。 このクエリ結果をSQLアラートに接続し、閾値超過時にSlack通知する運用が効果的です。

チャージバック計算パターン

配賦方法は精度と運用負荷のトレードオフです。以下に代表的なパターンを比較します。

配賦方法粒度メリット注意点
DBU×タグ直接配賦Cluster/Job/SQL Warehouse最も正確。system.billing.usageで完結タグ100%付与が前提
Workspace分割配賦組織単位でWSを分離タグ不要でシンプルWS乱立による管理負荷増
共有クラスター按分ユーザー/ジョブ実行時間比共有環境で公平追加メトリクス集計が必要
クラウド請求×課金タグVM/ディスク/ネットワークDB外コストも含む全体像Serverlessではタグ付与が限定的

実務では「DBU×タグ直接配賦」を主軸とし、タグ欠落分は「CC-999にプール→月次再配賦」、 共有リソースは「実行時間比で按分」、クラウド基盤費は「クラウド請求×共通タグ」で補完するハイブリッドが安定します。

Tag-based Cost Allocationフロー

タグベース配賦の全体フローを整理します。各ステップを自動化することで、月次レポートの工数を最小化します。

[Cluster Policy]
  └─ custom_tags 必須化 (cost_center, env, product)
       │
       v
[リソース実行] → Cluster / Job / SQL Warehouse
       │            tags 自動記録
       v
[system.billing.usage]
       │
       ├─ SQL集計 → コストセンター別DBU
       ├─ タグ欠落検出 → CC-999レポート
       └─ 単価マスタJOIN → 金額換算
              │
              v
       [配賦テーブル (Delta)]
              │
              ├─ 月次スナップショット
              ├─ 調整仕訳行
              └─ ダッシュボード / GL連携

ガバナンスと監査

タグ台帳(cost_center, product等のマスタ)はGitリポジトリで管理し、値の追加はPRベースの審査制とします。 重複や誤綴りの混入を防ぎ、Policy定義と台帳の同期を維持します。

  • 監査1: system.billing.usageとクラウド請求の差異分析(月次)
  • 監査2: タグ欠落リソースの検出と是正報告
  • 監査3: 配賦テーブルのバージョン管理(Delta Time Travelで遡及確認可能)
  • 責任分界: プラットフォームチームが仕組みを構築・維持し、各プロダクトチームがタグの正確性と予算管理を負う

配賦テーブルはDeltaで管理し、月次締め後に変更が入った場合はTime Travelで締め時点のスナップショットを参照できるようにします。

問題で確認

Administration / Data Engineer

問題 1

データプラットフォームチームが、全プロジェクトのDBU消費をコストセンター別にチャージバックする仕組みを構築する。クラスターとジョブクラスターの両方でcost_centerタグを確実に記録し、月次でSQL集計したい。最も適切なアプローチはどれか。

  1. Cluster Policyでcustom_tags.cost_centerをallowlist型で必須化し、system.billing.usageテーブルをcost_centerでGROUP BYして月次集計する
  2. 各ユーザーにタグ入力を依頼するドキュメントを配布し、Usageダウンロード画面からCSVをダウンロードして手動集計する
  3. Unity Catalogのカタログにcost_centerタグを付与し、テーブルアクセス数をチャージバックの根拠にする
  4. クラウドプロバイダーのBilling Consoleだけで配賦を完結させ、Databricks側のタグは使わない

正解: A

Cluster Policyのallowlistでタグを強制すると入力漏れを構造的に防止でき、system.billing.usageへのSQLでタグ別集計が自動化できます。ドキュメント依頼だけでは強制力がなく漏れが発生します。UCのカタログタグはデータガバナンス用でありDBU配賦の根拠にはなりません。クラウドBillingだけではServerlessリソースのタグが限定的です。

よくある質問

system.billing.usageのデータ保持期間はどれくらいですか?

system.billing.usageテーブルはアカウントレベルで過去365日分のデータを保持します。長期分析にはDeltaテーブルへの定期エクスポートを推奨します。CSVでのUsageダウンロードも可能ですが、system tableに直接SQLを書く方がフィルタや集計の柔軟性が高く、タグ別・SKU別の配賦を自動化しやすいです。

タグを後から変更すると過去の使用量データに遡及反映されますか?

いいえ。タグはリソース実行時点のスナップショットとしてBillable Usageに記録されます。過去レコードの再タグ付けはできないため、月次締め後に誤りが判明した場合は配賦テーブルに調整仕訳行を追加する運用が現実的です。Cluster Policyによるタグ必須化で、記録時点の漏れを構造的に防止するのが最善策です。

Serverless SQL Warehouseでもタグベースのチャージバックは可能ですか?

可能です。ServerlessリソースでもDBU使用量はsystem.billing.usageに記録され、custom_tagsやworkspace_id等のメタデータが含まれます。ただしクラウド基盤(VM/ストレージ)の課金タグはDatabricks側でマネージドされるため、クラウド請求側でのタグ別内訳は限定的です。主軸をDBU配賦に置く設計が安定します。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Databricks

Databricks資格一覧|全7試験・難易度・勉強法

Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...

Databricks

Databricks試験の難易度ランキング|全7資格を徹底比較

Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...

Databricks

Databricks資格の勉強方法|最短合格ルートと学習時間の目安

Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...

Databricks

Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略

Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...

Databricks

Databricks Data Engineer Professional完全解説|上級試験の攻略法

Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...

Databricksの記事一覧 (105件)
© 2026 NicheeLab All rights reserved.