本文說明如何使用 system.billing.usage 數據表本身或與其他系統數據表聯結,以取得您帳戶 Azure Databricks 使用量的圖片。 也有以下與功能相關的文章可供使用:
如何讀取使用量數據表
有權存取系統數據表數據的使用者,可以檢視及查詢其帳戶的帳單記錄,其位於 system.billing.usage。 每個計費記錄都包含欄位,這些欄位會將使用量歸因於涉及的特定資源、身份和產品。
-
usage_metadata數據行包含結構,其中包含使用方式中涉及之資源或對象的相關信息。 -
identity_metadata數據行包含產生使用量之用戶或服務主體的相關信息。 -
custom_tags資料行包含標記,這些標記是套用到與使用量相關的計算資源上的。 這也包含無伺服器預算原則所新增的標籤,因此您可以將無伺服器使用量屬性化。 -
billing_origin_product和product_features數據行可讓您瞭解所使用的確切產品和功能。
如需使用狀況資料表的完整參考,請參閱 計費使用量系統資料表參考。
將帳單數據落實于運作中
Databricks 建議使用 AI/BI 儀錶板,以系統表中的計費數據建立成本監視儀錶板。 您可以建立新的儀表板,或帳戶管理員可以匯入預先建置的可自訂成本監控儀表板。 請參閱 使用量儀錶板。
您也可以將警示新增至查詢,以協助您隨時瞭解使用量數據。 請參閱 建立警示。
範例查詢
下列查詢提供如何使用 system.billing.usage 數據表數據的範例,以深入瞭解您帳戶的使用方式。
- 本月每個產品已使用多少 DBU?
- 哪些作業耗用了最多的 DBU?
- 有多少使用量可以歸因於具有特定標籤的資源?
- 請顯示使用量增長的產品
- 所有用途計算 (Photon) 的使用趨勢為何?
- 具體化檢視或串流數據表的 DBU 耗用量為何?
- 無伺服器管線的 DBU 耗用量為何?
- DBU 耗用量的每日趨勢為何?
- 將成本歸因於計算資源擁有者
- 透過作業名稱豐富使用方式
- 將定價與使用狀況表結合
- 估算上一個日曆月份的額外使用成本
在本月中,每個產品已經使用了多少 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"