課金対象の使用状況システム テーブル リファレンス

この記事では、スキーマやクエリの例を含め、課金対象の使用状況システム テーブルの概要について説明します。 システム テーブルを使うと、アカウントの課金対象の使用状況データが一元化されるとともにすべてのリージョンにルーティングされるため、ワークスペースのリージョンからアカウントの全体的な使用量を確認できます。

このテーブルを使用してジョブ コストを監視する方法については、「システム テーブルを使用してジョブ コストを監視する」を参照してください。

サーバーレスの使用状況を分析する戦略については、「サーバーレス コンピューティングのコストを監視する」を参照してください。

テーブル パス: このシステム テーブルは次の場所にあります system.billing.usage

課金対象の使用状況テーブル スキーマ

課金対象の使用状況システム テーブルでは、次のスキーマを使います。

列名 データ型 説明
record_id string このレコードの意の ID 11e22ba4-87b9-4cc2
-9770-d10b894b7118
account_id string このレポートが生成された対象のアカウントの ID 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id string この使用状況が関連付けられたワークスペースの ID 1234567890123456
sku_name string SKU の名前 STANDARD_ALL_PURPOSE_COMPUTE
cloud string この使用状況に関連するクラウド。 有効な値は AWSAZUREGCP です。 AWSAZURE、または GCP
usage_start_time timestamp この使用状況レコードに関連する開始時間。 タイムゾーン情報は、UTC タイムゾーンを表す +00:00 とともに値の末尾に記録されます。 2023-01-09 10:00:00.000+00:00
usage_end_time timestamp この使用状況レコードに関連する終了時間。 タイムゾーン情報は、UTC タイムゾーンを表す +00:00 とともに値の末尾に記録されます。 2023-01-09 11:00:00.000+00:00
usage_date 日付 使用状況レコードの日付。このフィールドを使うと、日付ごとの集計を高速化できます 2023-01-01
custom_tags map この使用法に適用されるタグ。 コンピューティング リソース タグ、ジョブ タグ、ワークスペース カスタム タグ、予算ポリシー タグが含まれます。 { “env”: “production” }
usage_unit string この使用状況の測定単位。 指定できる値には DBU が含まれます。 DBU
usage_quantity 小数 このレコードで消費されたユニット数。 259.2958
usage_metadata struct コンピューティング リソースとジョブの ID (該当する場合) など、使用状況に関するシステム提供のメタデータ。 「使用状況メタデータを解析する」を参照してください。 {cluster_id: null;
instance_pool_id: null;
notebook_id: null;
job_id: null;
node_type: null}
identity_metadata struct 使用状況に関する ID についてシステムで提供されるメタデータ。 「ID メタデータを解析する」を参照してください。 {run_as: example@email.com}
record_type string レコードが元のレコード、取り消し、または再評価。 レコードが修正に関連しない限り、値は ORIGINAL です。 修正レコードを分析するを参照してください。 ORIGINAL
ingestion_date 日付 レコードが usage テーブルに取り込まれた日付。 2024-01-01
billing_origin_product string 使用元の製品。 一部の製品は、異なる SKU として課金できます。 使用可能な値については、「使用状況に関連付けられた製品に関する情報を表示する」を参照してください。 JOBS
product_features struct 使用される特定の製品機能の詳細。 使用可能な値については、「製品機能」を参照してください。
usage_type string 課金目的で製品またはワークロードに起因する使用状況の種類。 可能な値は COMPUTE_TIMESTORAGE_SPACENETWORK_BYTESAPI_CALLSTOKEN、または GPU_TIME です。 STORAGE_SPACE

使用状況メタデータを解析する

usage_metadata の値は、使用状況レコードに関係するリソースについて伝達します。

Value データ型 Description
cluster_id string 使用状況レコードに関連するクラスターの ID
warehouse_id string 使用状況レコードに関連する SQL ウェアハウスの ID
instance_pool_id string 使用状況レコードに関連付けられたインスタンスプールの ID
node_type string コンピューティング リソースのインスタンスの種類
job_id string 使用状況レコードに関連するジョブの ID。 サーバーレス コンピューティングまたはジョブのコンピューティング使用状況の値のみを返し、それ以外の場合は null を返します
job_run_id string 使用状況レコードに関連するジョブ実行の ID。 サーバーレス コンピューティングまたはジョブのコンピューティング使用状況の値のみを返し、それ以外の場合は null を返します
job_name string ユーザーが設定した、使用状況レコードに関連するジョブの名前。 サーバーレス コンピューティングで実行されるジョブの値のみを返し、それ以外の場合は null を返します
notebook_id string 使用状況に関連付けられているノートブックの ID。 ノートブックの使用に対するサーバーレス コンピューティングの値のみを返し、それ以外の場合は null を返します
notebook_path string 使用状況に関連付けられているノートブックのワークスペース ストレージ パス。 ノートブックの使用に対するサーバーレス コンピューティングの値のみを返し、それ以外の場合は null を返します
dlt_pipeline_id string 使用状況レコードに関連する Delta Live Tables パイプラインの ID
dlt_update_id string 使用状況レコードに関連する Delta Live Tables パイプラインの 更新ID
dlt_maintenance_id string 使用状況レコードに関連する Delta Live Tables パイプラインのメンテナンスタスク ID
run_name string 使用状況レコードに関連する Mosaic AI モデル トレーニングの微調整実行の一意のユーザー向け識別子
endpoint_name string 利用記録に関連付けられたモデル提供エンドポイントまたはベクトル検索エンドポイントの名前。
endpoint_id string 利用記録に関連付けられたモデル提供エンドポイントまたはベクトル検索エンドポイントのID
central_clean_room_id string 使用状況レコードに関連付けられている中央クリーン ルームの ID

ID メタデータを解析する

identity_metadata 列はサーバーレスの請求レコードの責任者を特定するのに役立ちます。 列には、使用状況を ID に帰属させる run_as 値が含まれます。 identity_metadata.run_as に記録される ID は、使用状況に関連付けられている製品によって異なります。

identity_metadata.run_as の動作については、次のテーブルをご覧ください。

ワークロードの種類 run_as の ID
Jobs Compute run_as 設定で定義されたユーザーまたはサービス プリンシパル。 既定では、ジョブはジョブ所有者の ID として実行されますが、管理者はこれを他のユーザーやサービス プリンシパルに変更できます。
ジョブのサーバーレス コンピューティング run_as 設定で定義されたユーザーまたはサービス プリンシパル。 既定では、ジョブはジョブ所有者の ID として実行されますが、管理者はこれを他のユーザーやサービス プリンシパルに変更できます。
ノートブックのサーバーレス コンピューティング ノートブック コマンドを実行したユーザー (具体的には、ノートブック セッションを作成したユーザー)。 共有ノートブックの場合は、同じノートブック セッションを共有している他のユーザーによる使用状況も含まれます。
Delta Live Tables パイプライン Delta Live Tables パイプラインの実行に使用されるアクセス許可を持つユーザー。 これは、パイプラインの所有権を転送することで変更できます。
Mosaic AI モデル トレーニング 微調整トレーニング実行を開始したユーザーまたはサービス プリンシパル。

修正レコードの分析

billing.usageテーブルでは、修正をサポートしています。 修正は、使用レコードのフィールドが間違っていて、修正する必要がある場合に発生します。

修正が行われると、Azure Databricks によってテーブルに ふたつの新しいレコードが追加されます。 取り消しレコードは元の間違っているレコードを否定し、その後、修正済みレコードには修正された情報が含まれます。 修正レコードは、 record_type フィールドを使用して識別されます。

  • RETRACTION: 元の謝った使用法を否定するために使用されます。 すべてのフィールドは、元の使用量を取り消す負の値であるusage_quantityを除いて、ORIGINAL レコードと同じです。 たとえば、元のレコードの使用数量が 259.4356された場合に、取り消しレコードの使用量は -259.4356になります。
  • RESTATEMENT: 正しいフィールドと使用数量などのレコード。

たとえば、次のクエリでは、修正がなされた場合でも、 job_idに関連する正しい時間単位の使用量が返されます。 使用量を集計することで、取り消しレコードは元のレコードが否定され、再調整の値のみが返されます。

SELECT
  usage_metadata.job_id, usage_start_time, usage_end_time,
  SUM(usage_quantity) as usage_quantity
FROM system.billing.usage
GROUP BY ALL
HAVING usage_quantity != 0

Note

元の使用記録が記録されるべきではなかった修正の場合、修正は取り消し記録のみを追加し、再表示記録は追加しません。

使用状況に関連付けられた製品に関する情報を表示する

一部の Databricks 製品は、同じ共有 SKU に基づいて課金されます。 使用状況を区別するために、billing_origin_product 列と product_features 列には、使用状況に関連付けられた特定の製品と機能に関する詳細な分析情報が用意されています。

billing_origin_product 列には、使用状況レコードに関連付けられた Databricks 製品が表示されます。 値は次のとおりです。

  • JOBS
  • DLT
  • SQL
  • ALL_PURPOSE
  • MODEL_SERVING
  • INTERACTIVE
  • MANAGED_STORAGE
  • VECTOR_SEARCH
  • LAKEHOUSE_MONITORING
  • PREDICTIVE_OPTIMIZATION
  • ONLINE_TABLES
  • FOUNDATION_MODEL_TRAINING

product_features 列は、使用される特定の製品機能に関する情報を含むオブジェクトであり、次のキーと値のペアが含まれます。

  • jobs_tier: 値には LIGHTCLASSIC、または null があります
  • sql_tier: 値には CLASSICPRO、またはnull があります
  • dlt_tier: 値には COREPROADVANCED、または null があります
  • is_serverless: 値には true、または false、またはnull があります
  • is_photon: 値には true、または false、またはnull があります
  • serving_type: 値には MODELGPU_MODELFOUNDATION_MODELFEATURE、または null があります

サンプル クエリ

次のサンプル クエリを使うと、課金対象の使用状況に関する一般的な質問に回答できます。

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
    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
  `DBUs` 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 "2023-04-01" and "2023-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
     "2023-05-01" and "2023-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 > "2023-04-15"
GROUP BY
  sku_name, usage_date

具体化されたビューまたはストリーミング テーブルの DBU 消費量とは何ですか?

特定の具体化されたビューまたはストリーミング テーブルの DBU 使用状況と SKU を取得するには、具体化されたビューまたはストリーミング テーブルに関連付けられているパイプラインの ID に usage_metadata.dlt_pipeline_id が設定されているレコードについて、課金対象の使用状況システム テーブルにクエリを送信します。 パイプライン ID は、関連する具体化されたビューまたはストリーミング テーブルを表示する際に、カタログ エクスプローラーの [詳細] タブで確認できます。 必要に応じて、日付で消費を制限するには、開始日、終了日、または日付範囲を指定します。 次のクエリでは、ID 00732f83-cd59-4c76-ac0d-57958532ab5b で使用状況の開始日が 2023-05-30 のパイプラインの DBU 使用状況を取得します。

SELECT
  sku_name,
  usage_date,
  SUM(usage_quantity) AS `DBUs`
FROM
  system.billing.usage
WHERE
  usage_metadata.dlt_pipeline_id = "00732f83-cd59-4c76-ac0d-57958532ab5b"
AND
  usage_start_time > "2023-05-30"
GROUP BY
  ALL

サーバーレス DLT パイプラインの DBU 消費量について

サーバーレス DLT パイプラインの DBU 使用状況と SKU を取得するには、usage_metadata.dlt_pipeline_id がパイプラインの ID に設定されているレコードについて、課金対象の使用状況システム テーブルにクエリを送信します。 パイプライン ID は、Delta Live Tables UI でパイプラインを表示する際に、[パイプラインの詳細] タブで確認できます。 必要に応じて、日付で消費を制限するには、開始日、終了日、または日付範囲を指定します。 次のクエリでは、ID 00732f83-cd59-4c76-ac0d-57958532ab5bのパイプラインの DBU 使用状況を 2023 年 12 月から取得します。

SELECT
  sku_name,
  usage_date,
  SUM(usage_quantity) AS `DBUs`
FROM
  system.billing.usage
WHERE
  usage_metadata.dlt_pipeline_id = "00732f83-cd59-4c76-ac0d-57958532ab5b"
AND
  usage_start_time >= "2023-12-01"
AND
  usage_end_time < "2024-01-01"
GROUP BY
  ALL