次の方法で共有


コンピューティング システム テーブル参照

重要

このシステム テーブルは パブリック プレビュー にあります。 テーブルにアクセスするには、 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 クラスターの作成者 (UIAPIJOB など) を示します。 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;