共用方式為


使用系統數據表監視成本

本文說明如何使用 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 "2024-04-01" and "2024-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
     "2024-05-01" and "2024-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 > "2024-04-15"
GROUP BY
  sku_name, usage_date

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

要獲取特定具體化檢視或串流表的 DBU 使用量和 SKU,請將查詢提交至可計費使用系統數據表以查找其中 usage_metadata.dlt_pipeline_id 設置為與具體化檢視或串流表相關聯管線 ID 的記錄。 檢視具體化檢視或串流資料表時,您可以在目錄總管中的 [詳細資料] 索引標籤中找到管線 ID。 若要依日期限制耗用量,請指定開始日期、結束日期或日期範圍。 下列查詢會擷取具有標識碼 00732f83-cd59-4c76-ac0d-57958532ab5b 管線的 DBU 使用量,以及 2024-05-30的使用開始日期:

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
GROUP BY
  ALL

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

若要取得無伺服器 DLT 管線的 DBU 使用量和 SKU,請針對 usage_metadata.dlt_pipeline_id 設定為管線標識碼的記錄,將查詢提交至計費使用量系統數據表。 您可以在檢視 Delta Live Tables 使用者介面中的管線時,於 [管線詳細資訊] 索引標籤上找到管線 ID。 若要依日期限制耗用量,請指定開始日期、結束日期或日期範圍。 下列查詢會從 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

使用數據表聯結的範例

下列範例示範如何聯結使用數據表與其他系統數據表,以取得其他深入解析。

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

如果您想要降低計算成本,您可以使用此查詢來找出帳戶中的哪些叢集擁有者使用最多的 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 >= '2023-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 "2024-05-01" AND "2024-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 "2024-02-01" AND "2024-02-29"