コンピューティング システム テーブル参照
重要
このシステム テーブルは パブリック プレビュー にあります。 テーブルにアクセスするには、 system
カタログでスキーマを有効にすることが必要です。 詳細については、「システム テーブル スキーマを有効にする」を参照してください。
この記事では、コンピューティング システム テーブルのリファレンス ガイドを提供します。 これらのテーブルを使用して、アカウント内の汎用とジョブのコンピューティングのアクティビティとメトリックを監視できます。
clusters
: アカウントのコンピューティング構成を記録します。node_types
: 現在使用可能なノードの種類ごとに、ハードウェア情報を含む 1 つのレコードが含まれます。node_timeline
: コンピューティングの使用率メトリックの分単位のレコードが含まれます。
クラスター テーブル スキーマ
クラスター テーブルは、汎用とジョブのコンピューティングについて、時間の経過に伴うコンピューティング構成の全履歴を含む、緩やかに変化するディメンション テーブルです。
テーブル パス: このシステム テーブルは次の場所にあります。 system.compute.clusters
列名 | データ型 | 説明 | 例 |
---|---|---|---|
account_id |
string | このクラスターが作成されたアカウントの ID。 | 23e22ba4-87b9- 4cc2-9770-d10b894b7118 |
workspace_id |
string | このクラスターが作成されたワークスペースの ID。 | 1234567890123456 |
cluster_id |
string | このレコードが関連付けられているクラスターの ID。 | 0000-123456-crmpt124 |
cluster_name |
string | クラスターのユーザー定義名。 | My cluster |
owned_by |
string | クラスター所有者のユーザー名。 既定値はクラスター作成者ですが、Clusters API を使用して変更できます。 | sample_user@email.com |
create_time |
タイムスタンプ | このコンピューティング定義に対する変更のタイムスタンプ。 | 2023-01-09 11:00:00.000 |
delete_time |
タイムスタンプ | クラスターが削除された日時のタイムスタンプ。 クラスターが削除されていない場合、値は null です。 |
2023-01-09 11:00:00.000 |
driver_node_type |
string | ドライバー ノードの種類の名前。 これは、クラウド プロバイダーのインスタンスの種類の名前と一致します。 | Standard_D16s_v3 |
worker_node_type |
string | ワーカー ノードの種類の名前。 これは、クラウド プロバイダーのインスタンスの種類の名前と一致します。 | Standard_D16s_v3 |
worker_count |
bigint | worker 数。 固定サイズのクラスターに対してのみ定義されます。 | 4 |
min_autoscale_workers |
bigint | 設定されたワーカーの最小数。 このフィールドは、自動スケール クラスターでのみ有効です。 | 1 |
max_autoscale_workers |
bigint | 設定されたワーカーの最大数。 このフィールドは、自動スケール クラスターでのみ有効です。 | 1 |
auto_termination_minutes |
bigint | 構成された自動終了期間。 | 120 |
enable_elastic_disk |
boolean | ディスク有効化の自動スケールの状態。 | true |
tags |
map | クラスターのユーザー定義タグ (既定のタグは含まれません)。 | {"ResourceClass":"SingleNode"} |
cluster_source |
string | クラスターの作成者 (UI 、API 、JOB など) を示します。 |
UI |
init_scripts |
配列 | init スクリプトのパスのセット。 | "/Users/example@email.com /files/scripts/install-python-pacakges.sh" |
aws_attributes |
struct | AWS 固有の設定。 | null |
azure_attributes |
struct | Azure 固有の設定。 | { "first_on_demand": "0", "availability": "ON_DEMAND_AZURE", "spot_bid_max_price": "—1" } |
gcp_attributes |
struct | GCP 固有の設定。 このフィールドは空になります。 | null |
driver_instance_pool_id |
string | ドライバーがインスタンス プールの上に構成されている場合は、インスタンス プール ID。 | 1107-555555-crhod16-pool-DIdnjazB |
worker_instance_pool_id |
string | ワーカーがインスタンス プールの上に構成されている場合は、インスタンス プール ID。 | 1107-555555-crhod16-pool-DIdnjazB |
dbr_version |
string | クラスターの Databricks Runtime。 | 14.x-snapshot-scala2.12 |
change_time |
タイムスタンプ | このコンピューティング定義に対する変更のタイムスタンプ。 | 2023-01-09 11:00:00.000 |
change_date |
date | 日付を変更します。 リテンション期間に使用されます。 | 2023-01-09 |
ノードの種類テーブルのスキーマ
ノードの種類テーブルは、現在使用可能なノードの種類とその基本的なハードウェア情報をキャプチャします。
テーブル パス: このシステム テーブルは、 system.compute.node_types
にあります。
列名 | データ型 | 説明 | 例 |
---|---|---|---|
account_id |
string | このクラスターが作成されたアカウントの ID。 | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
node_type |
string | ノードの種類の一意の識別子。 | Standard_D16s_v3 |
core_count |
倍精度浮動小数点 | インスタンスの vCPU の数。 | 48.0 |
memory_mb |
long | インスタンスのメモリの合計。 | 393216 |
gpu_count |
long | インスタンスの GPU の数。 | 0 |
ノード タイムライン テーブルのスキーマ
ノード タイムライン テーブルは、ノード レベルのリソース使用率データを分単位でキャプチャします。 各レコードには、インスタンスごとの特定の分のデータが含まれています。
テーブル パス: このシステム テーブルは、 system.compute.node_timeline
にあります。
列名 | データ型 | 説明 | 例 |
---|---|---|---|
account_id |
string | このコンピューティング リソースが実行されているアカウントの ID。 | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | このコンピューティング リソースが実行されているワークスペースの ID。 | 1234567890123456 |
cluster_id |
string | コンピューティング リソースの ID。 | 0000-123456-crmpt124 |
instance_id |
string | 特定のインスタンスの ID。 | i-1234a6c12a2681234 |
start_time |
timestamp | レコードの開始時刻 (UTC)。 | 2024-07-16T12:00:00Z |
end_time |
timestamp | レコードの終了時刻 (UTC)。 | 2024-07-16T13:00:00Z |
driver |
boolean | インスタンスがドライバー ノードであるかワーカー ノードであるか。 | true |
cpu_user_percent |
倍精度浮動小数点 | CPU がユーザーランドで費やした時間の割合。 | 34.76163817234407 |
cpu_system_percent |
倍精度浮動小数点 | CPU がカーネルで費やした時間の割合。 | 1.0895310279488264 |
cpu_wait_percent |
倍精度浮動小数点 | CPU が I/O の待機に費やした時間の割合。 | 0.03445157400629276 |
mem_used_percent |
倍精度浮動小数点 | 期間中に使用されたコンピューティングのメモリの割合 (コンピューティングで実行されているバックグラウンド プロセスによって使用されたメモリを含む)。 | 45.34858216779041 |
mem_swap_percent |
倍精度浮動小数点 | メモリ スワップに起因するメモリ使用量の割合。 | 0.014648443087939 |
network_sent_bytes |
bigint | ネットワーク トラフィックに送信されたバイト数。 | 517376 |
network_received_bytes |
bigint | ネットワーク トラフィックから受信したバイト数。 | 179234 |
disk_free_bytes_per_mount_point |
map | マウント ポイント別にグループ化されたディスク使用率。 これは、コンピューティングの実行中にのみプロビジョニングされるエフェメラル ストレージです。 | {"/var/lib/lxc":123455551234,"/": 123456789123,"/local_disk0":123412341234} |
node_type |
string | ノードの種類の名前。 これは、クラウド プロバイダーのインスタンスの種類の名前と一致します。 | Standard_D16s_v3 |
既知の制限事項
- 2023 年 10 月 23 日より前に削除済みのマークが付けられたコンピューティング リソースは、クラスター テーブルに表示されません。 これにより、
system.billing.usage
テーブルからの結合がクラスター テーブル内のレコードと一致しない場合があります。 すべてのアクティブなコンピューティング リソースはバックフィル済みです。 - これらのテーブルには、汎用とジョブのコンピューティングのレコードのみが含まれます。 サーバーレス コンピューティング、Delta Live Tables コンピューティング、SQL ウェアハウスのレコードは含まれません。
- 実行時間が 10 分未満のノードは、
node_timeline
テーブルに表示されない場合があります。
サンプル クエリ
次のサンプル クエリを使用して、一般的な質問に回答できます。
Note
これらの例の一部では、クラスター テーブルを system.billing.usage
テーブルと結合します。 課金レコードはリージョンをまたがるレコードであり、クラスター レコードはリージョンごとに異なるため、課金レコードはクエリを実行しているリージョンのクラスター レコードにのみ一致します。 別のリージョンのレコードを表示するには、そのリージョンでクエリを実行してください。
クラスター レコードを最新の課金レコードと結合する
このクエリは、時間の経過に伴う支出を理解するのに役立ちます。 usage_start_time
を最新の請求期間に更新すると、クラスター データに参加するための課金レコードの最新の更新が取得されます。
各レコードは、その特定の実行中にクラスター所有者に関連付けられます。 そのため、クラスター所有者が変更された場合、コストはクラスターが使用された日時に基づいて適切な所有者にロールアップされます。
SELECT
u.record_id,
c.cluster_id,
c.owned_by,
c.change_time,
u.usage_start_time,
u.usage_quantity
FROM
system.billing.usage u
JOIN system.compute.clusters c
JOIN (SELECT u.record_id, c.cluster_id, max(c.change_time) change_time
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 date_trunc('HOUR', c.change_time) <= date_trunc('HOUR', u.usage_start_time)
GROUP BY all) config
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 u.record_id = config.record_id
and c.cluster_id = config.cluster_id
and c.change_time = config.change_time
ORDER BY cluster_id, usage_start_time desc;
コストの原因になっているクラスター所有者を確認する
コンピューティング コストを削減している場合は、このクエリを使用して、アカウント内のどのクラスター所有者が最も多くの 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;
平均使用率とピーク使用率が最も高いコンピューティング リソースを特定する
平均 CPU 使用率が最も高く、ピーク時の CPU 使用率が最も高い、汎用とジョブのコンピューティングを特定します。
SELECT
distinct cluster_id,
driver,
avg(cpu_user_percent + cpu_system_percent) as `Avg CPU Utilization`,
max(cpu_user_percent + cpu_system_percent) as `Peak CPU Utilization`,
avg(cpu_wait_percent) as `Avg CPU Wait`,
max(cpu_wait_percent) as `Max CPU Wait`,
avg(mem_used_percent) as `Avg Memory Utilization`,
max(mem_used_percent) as `Max Memory Utilization`,
avg(network_received_bytes)/(1024^2) as `Avg Network MB Received per Minute`,
avg(network_sent_bytes)/(1024^2) as `Avg Network MB Sent per Minute`
FROM
node_timeline
WHERE
start_time >= date_add(now(), -1)
GROUP BY
cluster_id,
driver
ORDER BY
3 desc;