共用方式為


使用系統數據表監視成本

本文說明如何使用 system.billing.usage 數據表本身或與其他系統數據表聯結,以取得您帳戶 Azure Databricks 使用量的圖片。 也有以下與功能相關的文章可供使用:

如何讀取使用量數據表

有權存取系統數據表數據的使用者,可以檢視及查詢其帳戶的帳單記錄,其位於 system.billing.usage。 每個計費記錄都包含欄位,這些欄位會將使用量歸因於涉及的特定資源、身份和產品。

  • usage_metadata 數據行包含結構,其中包含使用方式中涉及之資源或對象的相關信息。
  • identity_metadata 數據行包含產生使用量之用戶或服務主體的相關信息。
  • custom_tags 資料行包含標記,這些標記是套用到與使用量相關的計算資源上的。 這也包含無伺服器預算原則所新增的標籤,因此您可以將無伺服器使用量屬性化。
  • billing_origin_productproduct_features 數據行可讓您瞭解所使用的確切產品和功能。

如需使用狀況資料表的完整參考,請參閱 計費使用量系統資料表參考

將帳單數據落實于運作中

Databricks 建議使用 AI/BI 儀錶板,以系統表中的計費數據建立成本監視儀錶板。 您可以建立新的儀表板,或帳戶管理員可以匯入預先建置的可自訂成本監控儀表板。 請參閱 使用量儀錶板

您也可以將警示新增至查詢,以協助您隨時瞭解使用量數據。 請參閱 建立警示

範例查詢

下列查詢提供如何使用 system.billing.usage 數據表數據的範例,以深入瞭解您帳戶的使用方式。

在本月中,每個產品已經使用了多少 DBU?

SELECT
    billing_origin_product,
    usage_date,
    sum(usage_quantity) as usage_quantity
FROM system.billing.usage
WHERE
    month(usage_date) = month(NOW())
    AND year(usage_date) = year(NOW())
GROUP BY billing_origin_product, usage_date

哪些作業耗用了最多的 DBU?

SELECT
  usage_metadata.job_id as `Job ID`, sum(usage_quantity) as `Usage`
FROM
  system.billing.usage
WHERE
  usage_metadata.job_id IS NOT NULL
GROUP BY
  `Job ID`
ORDER BY
  `Usage` DESC

有多少使用量可以歸因於具有特定標籤的資源?

您可以透過各種方式細分成本。 此範例示範如何依自定義標籤分成本。 在查詢中替換自訂標籤的鍵和值。

SELECT
  sku_name, usage_unit, SUM(usage_quantity) as `Usage`
FROM
  system.billing.usage
WHERE
  custom_tags [:key] = :value
GROUP BY 1, 2

顯示使用量增長的產品

SELECT
  after.billing_origin_product, before_dbus, after_dbus, ((after_dbus - before_dbus)/before_dbus * 100) AS growth_rate
FROM
  (SELECT
     billing_origin_product, sum(usage_quantity) as before_dbus
   FROM
     system.billing.usage
   WHERE
     usage_date BETWEEN "2025-04-01" and "2025-04-30"
   GROUP BY
     billing_origin_product
  ) as before
JOIN
  (SELECT
     billing_origin_product, sum(usage_quantity) as after_dbus
   FROM
     system.billing.usage
   WHERE
     usage_date
   BETWEEN
     "2025-05-01" and "2025-05-30"
   GROUP BY
     billing_origin_product
  ) as after
WHERE
  before.billing_origin_product = after.billing_origin_product
SORT BY
  growth_rate DESC

All Purpose Compute(Photon) 的使用趨勢為何?

SELECT
  sku_name,
  usage_date,
  sum(usage_quantity) as `DBUs consumed`
FROM
  system.billing.usage
WHERE
  year(usage_date) = year(CURRENT_DATE)
AND
  sku_name = "ENTERPRISE_ALL_PURPOSE_COMPUTE_(PHOTON)"
AND
  usage_date > "2025-04-15"
GROUP BY
  sku_name, usage_date

具體化檢視或串流數據表的 DBU 耗用量為何?

若要取得特定具體化檢視或串流數據表的 DBU 使用量和 SKU,請將查詢提交至計費使用量系統數據表 (system.billing.usage)。 輸入時間戳記作為參數,以查詢指定日期之後的結果。

以下的查詢會擷取具體化檢視的完整名稱(<catalog>.<schema>.<table>)為 users.cost_tracking.mv1 的 DBU 使用量。

WITH pipeline_id (
  SELECT
    usage_metadata.dlt_pipeline_id as pipeline_id
  FROM
    system.billing.usage
  WHERE
    usage_metadata.uc_table_catalog = 'users'
    AND usage_metadata.uc_table_schema = 'cost_tracking'
    AND usage_metadata.uc_table_name = 'mv1'
  LIMIT 1
)
SELECT
  u.sku_name,
  u.usage_date,
  SUM(u.usage_quantity) AS `DBUs`
FROM
  system.billing.usage u JOIN pipeline_id p
WHERE
  u.usage_metadata.dlt_pipeline_id = p.pipeline_id
  AND u.usage_start_time > :usage_start_time
GROUP BY
  ALL

無伺服器管線的 DBU 耗用量為何?

若要取得無伺服器管線的 DBU 使用量和 SKU,請針對設定為管線標識碼的記錄 usage_metadata.dlt_pipeline_id ,將查詢提交至可計費使用量系統數據表。 在 Lakeflow Spark 宣告式管線 UI 中檢視管線時,您可以在 [管線詳細資料] 索引標籤上找到管線識別碼。 若要依日期限制耗用量,請指定開始日期、結束日期或日期範圍。 下列查詢會從 2024 年 12 月擷取標識碼為 00732f83-cd59-4c76-ac0d-57958532ab5b之管線的 DBU 使用量。

SELECT
  sku_name,
  usage_date,
  SUM(usage_quantity) AS `DBUs`
FROM
  system.billing.usage
WHERE
  usage_metadata.dlt_pipeline_id = :dlt_pipeline_id
  AND usage_start_time >= :usage_start_time
  AND usage_end_time < :usage_end_time
GROUP BY
  ALL

DBU 耗用量的每日趨勢為何?

SELECT
  usage_date as `Date`, sum(usage_quantity) as `DBUs Consumed`
FROM
  system.billing.usage
WHERE
  sku_name = "STANDARD_ALL_PURPOSE_COMPUTE"
GROUP BY
  usage_date
ORDER BY
  usage_date ASC

將成本歸屬於計算資源擁有者

如果您想要降低計算成本,您可以將 usage 表格與 compute.clusters 表格聯結,以找出帳戶中哪些計算資源擁有者使用最多的 DBU。

SELECT
  u.record_id record_id,
  c.cluster_id cluster_id,
  max_by(c.owned_by, c.change_time) owned_by,
  max(c.change_time) change_time,
  any_value(u.usage_start_time) usage_start_time,
  any_value(u.usage_quantity) usage_quantity
FROM
  system.billing.usage u
  JOIN system.compute.clusters c
WHERE
  u.usage_metadata.cluster_id is not null
  and u.usage_start_time >= '2025-01-01'
  and u.usage_metadata.cluster_id = c.cluster_id
  and c.change_time <= u.usage_start_time
GROUP BY 1, 2
ORDER BY cluster_id, usage_start_time desc;

使用作業名稱擴充使用量

with jobs as (
  SELECT
    *,
    ROW_NUMBER() OVER (PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
  FROM system.lakeflow.jobs QUALIFY rn=1
)
SELECT
  usage.*,
  coalesce(usage_metadata.job_name, jobs.name) as job_name
FROM system.billing.usage
  LEFT JOIN jobs ON usage.workspace_id=jobs.workspace_id AND usage.usage_metadata.job_id=jobs.job_id
WHERE
  billing_origin_product="JOBS"

將定價與使用量數據表聯結

list_prices 資料表包含每個可用 SKU 隨時間變動的清單價格。 您可以加入 usage 資料表,以檢視特定使用量的清單成本。

例如,下列查詢會傳回一個月期間特定標記的總成本。

SELECT
 SUM(usage.usage_quantity * list_prices.pricing.effective_list.default)
 as `Total Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices ON list_prices.sku_name = usage.sku_name
WHERE usage.custom_tags [:key] = :value
AND usage.usage_end_time >= list_prices.price_start_time
AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
AND usage.usage_date BETWEEN "2025-05-01" AND "2025-05-31"

估算上個月使用情況的額外費用

此查詢會將簡單百分比套用至期間中的所有使用量。 請注意,這可能會與實際的變現稍有不同,因為某些附加元件的使用權管理方式各異。 請以您的帳戶費率取代附加費用費率。

SELECT SUM(usage.usage_quantity * list_prices.pricing.effective_list.default) * :add_on_rate as `Total Add-On Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices ON list_prices.sku_name = usage.sku_name
  WHERE usage.usage_end_time >= list_prices.price_start_time
  AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
  AND usage.usage_date BETWEEN "2025-02-01" AND "2025-02-29"