次の方法で共有


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

この記事では、コンピューティング システム テーブルのリファレンス ガイドを提供します。 これらのテーブルを使用して、アカウント内のサーバーレス以外の汎用コンピューティング、ジョブ コンピューティング、および Lakeflow 宣言パイプライン コンピューティングのアクティビティとメトリックを監視できます。 コンピューティング テーブルには次のものが含まれます。

  • clusters: アカウントのコンピューティング構成を記録します。
  • node_types: 現在使用可能なノードの種類ごとに、ハードウェア情報を含む 1 つのレコードが含まれます。
  • node_timeline: コンピューティングの使用率メトリックの分単位のレコードが含まれます。

クラスター テーブル スキーマ

クラスター テーブルは、時間の経過に伴うコンピューティング構成の完全な履歴を含む緩やかに変化するディメンション テーブルです。このテーブルには、万能コンピューティング、ジョブ コンピューティング、Lakeflow 宣言パイプライン コンピューティング、パイプライン メンテナンス コンピューティングが含まれます。

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

列名 データ型 説明
account_id ひも このクラスターが作成されたアカウントの ID。 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id ひも このクラスターが作成されたワークスペースの ID。 1234567890123456
cluster_id ひも このレコードが関連付けられているクラスターの ID。 0000-123456-crmpt124
cluster_name ひも クラスターのユーザー定義名。 My cluster
owned_by ひも クラスター所有者のユーザー名。 既定値はクラスター作成者ですが、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 ひも ドライバー ノードの種類の名前。 これは、クラウド プロバイダーのインスタンスの種類の名前と一致します。 Standard_D16s_v3
worker_node_type ひも ワーカー ノードの種類の名前。 これは、クラウド プロバイダーのインスタンスの種類の名前と一致します。 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 ブーリアン ディスク有効化の自動スケールの状態。 true
tags 地図 クラスターのユーザー定義タグ (既定のタグは含まれません)。 {"ResourceClass":"SingleNode"}
cluster_source ひも クラスターのソース。 UI値またはAPI値は、汎用コンピューティングにのみ適用されます。 すべてのジョブ コンピューティングは、 JOBとしてログに記録されます。 パイプラインは PIPELINE または PIPELINE_MAINTENANCE UI
init_scripts 配列 init スクリプトのパスのセット。 "/Users/example@email.com
/files/scripts/install-python-pacakges.sh"
aws_attributes 構造体 AWS 固有の設定。 null
azure_attributes 構造体 Azure 固有の設定。 {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes 構造体 GCP 固有の設定。 このフィールドは空になります。 null
driver_instance_pool_id ひも ドライバーがインスタンス プールの上に構成されている場合は、インスタンス プール ID。 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id ひも ワーカーがインスタンス プールの上に構成されている場合は、インスタンス プール ID。 1107-555555-crhod16-pool-DIdnjazB
dbr_version ひも クラスターの Databricks Runtime。 14.x-snapshot-scala2.12
change_time タイムスタンプ このコンピューティング定義に対する変更のタイムスタンプ。 2023-01-09 11:00:00.000
change_date 日付 日付を変更します。 リテンション期間に使用されます。 2023-01-09
data_security_mode ひも コンピューティング リソースのアクセス モード。 アクセス モードのリファレンスを参照してください USER_ISOLATION
policy_id ひも クラスターのコンピューティング ポリシーの ID (該当する場合)。 1234F35636110A5B

アクセスモードの参照

次の表は、 data_security_mode 列に含まれる使用可能な値を変換します。 この列は、特定のパイプラインとシステムによって作成されたクラスターに対して null することもできます。

価値 アクセス モード
USER_ISOLATION スタンダード
SINGLE_USER 専用

従来のアクセス モードは、次の値で記録されます。

価値 アクセス モード
LEGACY_PASSTHROUGH 資格情報パススルー (共有)
LEGACY_SINGLE_USER 資格情報の透過 (単一ユーザー)
LEGACY_TABLE_ACL 習慣
NONE 共有された分離なし

ノードの種類テーブルのスキーマ

ノードの種類テーブルは、現在使用可能なノードの種類とその基本的なハードウェア情報をキャプチャします。

テーブル パス: このシステム テーブルは、 system.compute.node_typesにあります。

列名 データ型 説明
account_id ひも このクラスターが作成されたアカウントの ID。 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type ひも ノードの種類の一意の識別子。 Standard_D16s_v3
core_count 倍精度浮動小数点 インスタンスの vCPU の数。 48.0
memory_mb 長い インスタンスのメモリの合計。 393216
gpu_count 長い インスタンスの GPU の数。 0

ノード タイムライン テーブルのスキーマ

ノード タイムライン テーブルは、ノード レベルのリソース使用率データを分単位でキャプチャします。 各レコードには、インスタンスごとの特定の分のデータが含まれています。 この表では、アカウント内の汎用コンピューティング、ジョブ コンピューティング、Lakeflow 宣言パイプライン コンピューティング、パイプライン メンテナンス コンピューティング リソースのノード タイムラインをキャプチャします。

テーブル パス: このシステム テーブルは、 system.compute.node_timelineにあります。

列名 データ型 説明
account_id ひも このコンピューティング リソースが実行されているアカウントの ID。 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id ひも このコンピューティング リソースが実行されているワークスペースの ID。 1234567890123456
cluster_id ひも コンピューティング リソースの ID。 0000-123456-crmpt124
instance_id ひも 特定のインスタンスの ID。 i-1234a6c12a2681234
start_time タイムスタンプ レコードの開始時刻 (UTC)。 2024-07-16T12:00:00Z
end_time タイムスタンプ レコードの終了時刻 (UTC)。 2024-07-16T13:00:00Z
driver ブーリアン インスタンスがドライバー ノードであるかワーカー ノードであるか。 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 地図 マウント ポイント別にグループ化されたディスク使用率。 これは、コンピューティングの実行中にのみプロビジョニングされるエフェメラル ストレージです。 {"/var/lib/lxc":123455551234,"/":
123456789123,"/local_disk0":123412341234}
node_type ひも ノードの種類の名前。 これは、クラウド プロバイダーのインスタンスの種類の名前と一致します。 Standard_D16s_v3

既知の制限事項

  • 2023 年 10 月 23 日より前に削除済みのマークが付けられたコンピューティング リソースは、クラスター テーブルに表示されません。 これにより、system.billing.usage テーブルからの結合がクラスター テーブル内のレコードと一致しない場合があります。 すべてのアクティブなコンピューティング リソースはバックフィル済みです。
  • これらのテーブルには、汎用とジョブのコンピューティングのレコードのみが含まれます。 サーバーレス コンピューティング、Lakeflow 宣言パイプライン コンピューティング、または SQL ウェアハウスのレコードは含まれません。
  • 実行時間が 10 分未満のノードは、node_timeline テーブルに表示されない場合があります。

サンプル クエリ

次のサンプル クエリを使用して、一般的な質問に回答できます。

これらの例の一部では、クラスター テーブルを 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;

平均使用率とピーク使用率が最も高いコンピューティング リソースを特定する

平均 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;