課金利用システムテーブル参照

この記事では、課金利用システムテーブルの概要、スキーマ、サンプルクエリなどについて説明します。 システムテーブルを使用すると、アカウントの課金利用データが一元化され、すべてのリージョンにルーティングされるため、ワークスペースがどのリージョンにあっても、アカウントのグローバルな使用状況を表示できます。

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

テーブルパス:このシステムテーブルは 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です。

AWS、[ AZURE]、または GCP

usage_start_time

timestamp

この使用レコードに関連する開始時刻。 タイムゾーン情報は値の最後に記録され、 +00:00 UTC タイムゾーンを表します。

2023-01-09 10:00:00.000+00:00

usage_end_time

timestamp

この使用レコードに関連する終了時刻。 タイムゾーン情報は値の最後に記録され、 +00:00 UTC タイムゾーンを表します。

2023-01-09 11:00:00.000+00:00

usage_date

日付

使用状況レコードの日付、このフィールドを使用すると、日付による集計を高速化できます

2023-01-01

custom_tags

マップ

ユーザーがこの使用法に適用したタグ。 コンピュートリソースタグとジョブタグが含まれます。

{ “env”: “production” }

usage_unit

string

この使用量が測定される単位。 可能な値には DBU が含まれます。

DBU

usage_quantity

DECIMALタイプ

このレコードで消費されたユニットの数。

259.2958

usage_metadata

構造体

コンピュートリソースとジョブの ID (該当する場合) を含む、使用状況に関するシステム提供のメタデータ。 「使用状況メタデータの分析」を参照してください。

{cluster_id: null; instance_pool_id: null; notebook_id: null; job_id: null; node_type: null}

identity_metadata

構造体

AzureおよびAWSでサーバーレス レコードを属性付けるために使用されます。 値は nullになります。

null

record_type

string

レコードがオリジナル、撤回、または修正のいずれであるか。 レコードが修正に関連している場合を除き、値は ORIGINAL です。 修正レコードの分析を参照してください。

ORIGINAL

ingestion_date

日付

レコードが usage テーブルに取り込まれた日付。

2024-01-01

billing_origin_product

string

使用を開始した製品。 一部の製品は異なる SKU として請求される場合があります。 可能な値については、 「使用状況に関連付けられた製品に関する情報の表示」を参照してください。

JOBS

product_features

構造体

使用される特定の製品機能に関する詳細。

可能な値については、 「製品の機能」を参照してください。

usage_type

string

課金目的で製品またはワークロードに帰属する使用状況のタイプ。 指定できる値は、 COMPUTE_TIMESTORAGE_SPACENETWORK_BYTESAPI_CALLSTOKEN、または GPU_TIMEです。

STORAGE_SPACE

使用状況メタデータの分析

usage_metadataの値は、使用状況記録に関係するリソースに関する情報を示します。

データ型

説明

cluster_id

string

使用状況記録に関連付けられたクラスターのID

warehouse_id

string

使用状況レコードに関連付けられたSQLウェアハウスの ID

instance_pool_id

string

使用状況レコードに関連付けられたインスタンス プールの ID

node_type

string

コンピュートリソースのインスタンスタイプ

job_id

string

使用状況レコードに関連付けられているジョブの ID。 サーバレス コンピュートまたはジョブ コンピュート usage の値のみを返し、それ以外の場合は nullを返します

job_run_id

string

使用状況レコードに関連付けられているジョブ実行の ID。 サーバレス コンピュートまたはジョブ コンピュート usage の値のみを返し、それ以外の場合は 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

修正レコードの分析

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

修正が行われると、Databricks は 2 つの新しいレコードをテーブルに追加します。 取り消しレコードは元の誤ったレコードを否定し、その後、修正された情報を再修正レコードに含めます。 修正レコードは、 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

注:

元の使用レコードが書き込まれるべきではなかった修正の場合、修正は撤回レコードのみを追加し、修正レコードは追加できません。

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

一部の 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

万能コンピュート( 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 TablesUI でパイプラインを表示するときに、 パイプラインの [詳細 ] タブで確認できます。必要に応じて、日付で消費を制限するには、開始日、終了日、または日付範囲を指定します。 次のクエリは、ID が 00732f83-cd59-4c76-ac0d-57958532ab5bのパイプラインの 2023 年 12 月からの 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-12-01"
AND
  usage_end_time < "2024-01-01"
GROUP BY
  ALL