コンピュート システム テーブルのリファレンス

プレビュー

この機能は パブリックプレビュー版です。

この記事では、スキーマとクエリーの例を含む、コンピュート システム テーブルの概要について説明します。 現在、 clustersnode_typesの 2 つのクラスタシステムテーブルを使用できます。

クラスター表スキーマ

クラスター テーブルは、汎用クラスターとジョブ クラスターの時間の経過に伴うクラスター構成の完全な履歴を含む、変化の遅いディメンション テーブルです。

クラスター システム テーブルは system.compute.clusters にあり、次のスキーマを持ちます。

列名

データ型

説明

account_id

string

このクラスターが作成されたアカウントの ID。

23e22ba4-87b9-4cc2-9770-d10b894b7118

workspace_id

string

このクラスターが作成されたワークスペースの ID。

1234567890123456

cluster_id

string

このレコードが関連付けられているクラスターの ID。

0000-123456-xxxxxxxx

cluster_name

string

クラスターのユーザー定義名。

My cluster

owned_by

string

クラスター所有者のユーザー名。 クラスター作成者に対してはデフォルトですが、 クラスター API を使用して変更できます。

sample_user@email.com

create_time

timestamp

このコンピュート定義に対する変更のタイムスタンプ。

2023-01-09 11:00:00.000

delete_time

timestamp

クラスターが削除された時刻のタイムスタンプ。 クラスターが削除されていない場合、値は null です。

2023-01-09 11:00:00.000

driver_node_type

string

ドライバー ノードの種類の名前。 これは、クラウドプロバイダーのインスタンスタイプ名と一致します。

i3.xlarge

worker_node_type

string

ワーカー ノードの種類の名前。 これは、クラウドプロバイダーのインスタンスタイプ名と一致します。

i3.xlarge

worker_count

ビギント

ワーカーの数。 固定サイズのクラスターに対してのみ定義されます。

4

min_autoscale_workers

ビギント

設定された最小ワーカー数。 このフィールドは、オートスケール クラスターに対してのみ有効です。

1

max_autoscale_workers

ビギント

設定された最大ワーカー数。 このフィールドは、オートスケール クラスターに対してのみ有効です。

1

auto_termination_minutes

ビギント

設定された自動終了期間。

120

enable_elastic_disk

ブーリアン

オートスケール ディスクの有効化ステータス。

true

tags

マップ

クラスターのユーザー定義タグ (既定のタグは含まれません)。

{"ResourceClass":"SingleNode"}

cluster_source

string

クラスターの作成者を示します ( UIAPIDLTJOBなど)。

UI

init_scripts

配列

initスクリプトのパスのセット。

"/Users/example@email.com/files/scripts/install-python-pacakges.sh"

aws_attributes

構造体

AWS 固有の設定。

{"ebs_volume_count":null,"availability":"SPOT_WITH_FALLBACK","first_on_demand":"0","spot_bid_price_percent":"100"}

azure_attributes

構造体

Azure 固有の設定。

null

gcp_attributes

構造体

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

timestamp

コンピュート定義に対する変更のタイムスタンプ。

2023-01-09 11:00:00.000

change_date

日付

日付を変更します。 保持に使用されます。

2023-01-09

ノード型テーブル スキーマ

ノード タイプ テーブルは、現在使用可能なノード タイプとその基本的なハードウェア情報をキャプチャします。 ノード型システム テーブルは system.compute.node_types にあり、次のスキーマを持ちます。

列名

データ型

説明

account_id

string

このクラスターが作成されたアカウントの ID。

23e22ba4-87b9-4cc2-9770-d10b894b7118

node_type_name

string

ノード型の一意の識別子。

i3.xlarge

core_count

double

インスタンスの vCPU の数。

48.0

memory_mb

ロング

インスタンスの合計メモリ。

393216

gpu_count

ロング

インスタンスの GPU の数。

0

既知の制限

  • 2023 年 10 月 23 日より前に削除済みとマークされたクラスターは、クラスターテーブルに表示されません。 これにより、 system.billing.usage テーブルからの結合がクラスター テーブル内のクラスター レコードと一致しなくなる可能性があります。 すべてのアクティブなクラスターがバックフィルされました。

  • クラスター テーブルには、汎用クラスターとジョブ クラスターのレコードのみが含まれます。 Delta Live Tables クラスターや SQLウェアハウスは含まれていません。

サンプルクエリー

次のサンプル クエリーを使用して、クラスターに関する一般的な質問に答えることができます。

注:

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