課金対象の使用状況システム テーブル リファレンス
この記事では、スキーマやクエリの例を含め、課金対象の使用状況システム テーブルの概要について説明します。 システム テーブルを使うと、アカウントの課金対象の使用状況データが一元化されるとともにすべてのリージョンにルーティングされるため、ワークスペースのリージョンからアカウントの全体的な使用量を確認できます。
このテーブルを使用してジョブ コストを監視する方法については、「システム テーブルを使用してジョブ コストを監視する」を参照してください。
サーバーレスの使用状況を分析する戦略については、「サーバーレス コンピューティングのコストを監視する」を参照してください。
テーブル パス: このシステム テーブルは次の場所にあります 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 | この使用状況に関連するクラウド。 有効な値は AWS 、AZURE 、GCP です。 |
AWS 、 AZURE 、または 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_TIME 、STORAGE_SPACE 、NETWORK_BYTES 、API_CALLS 、TOKEN 、または 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
: 値にはLIGHT
、CLASSIC
、またはnull
がありますsql_tier
: 値にはCLASSIC
、PRO
、またはnull
がありますdlt_tier
: 値にはCORE
、PRO
、ADVANCED
、またはnull
がありますis_serverless
: 値にはtrue
、またはfalse
、またはnull
がありますis_photon
: 値にはtrue
、またはfalse
、またはnull
がありますserving_type
: 値にはMODEL
、GPU_MODEL
、FOUNDATION_MODEL
、FEATURE
、またはnull
があります
サンプル クエリ
次のサンプル クエリを使うと、課金対象の使用状況に関する一般的な質問に回答できます。
- DBU 消費量は日ごとにどのような傾向がありますか?
- 今月中に使用された各製品の DBU の数はいくつですか?
- DBU を最も多く消費したジョブはどれですか?
- 特定のタグを持つリソースに属性付けできる使用量はどのくらいですか?
- 使用量が増加している SKU を表示する
- All Purpose Compute (Photon) の使用状況にはどのような傾向がありますか?
- 具体化されたビューまたはストリーミング テーブルの DBU 消費量とは何ですか?
- サーバーレス DLT パイプラインの DBU 消費量について
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