Share via


計算系統數據表參考

重要

這項功能處於公開預覽狀態

本文提供計算系統數據表的概觀,包括架構和範例查詢。 現在有兩個叢集系統資料表可供使用: clustersnode_types

叢集數據表架構

叢集數據表是一個緩時變維度數據表,其中包含所有用途和作業叢集的叢集組態完整歷程記錄。

叢集系統數據表位於 system.compute.clusters ,且具有下列架構:

資料行名稱 資料類型 描述 範例
account_id 字串 建立此叢集之帳戶的標識碼。 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id 字串 建立此叢集的工作區標識碼。 1234567890123456
cluster_id 字串 此記錄相關聯之叢集的標識碼。 0000-123456-xxxxxxxx
cluster_name 字串 叢集的使用者定義名稱。 My cluster
owned_by 字串 叢集擁有者的用戶名稱。 默認為叢集建立者,但可透過 叢集 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 字串 驅動程式節點類型名稱。 這符合雲端提供者的實例類型名稱。 Standard_D16s_v3
worker_node_type 字串 背景工作節點類型名稱。 這符合雲端提供者的實例類型名稱。 Standard_D16s_v3
worker_count bigint 背景工作角色數目。 僅針對固定大小的叢集定義。 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 字串 指出叢集的建立者:UI、、、DLTAPIJOB等。 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 字串 如果驅動程式設定在實例集區之上,則為實例集區標識碼。 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id 字串 如果背景工作角色設定在實例集區之上,則為實例集區標識碼。 1107-555555-crhod16-pool-DIdnjazB
dbr_version 字串 叢集的 Databricks 運行時間。 14.x-snapshot-scala2.12
change_time timestamp 計算定義的變更時間戳。 2023-01-09 11:00:00.000
change_date date 變更日期。 用於保留。 2023-01-09

節點類型數據表架構

節點類型數據表會擷取目前可用的節點類型及其基本硬體資訊。 節點類型系統資料表位於 system.compute.node_types ,且具有下列架構:

資料行名稱 資料類型 描述 範例
account_id 字串 建立此叢集之帳戶的標識碼。 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type_name 字串 節點類型的唯一標識碼。 Standard_D16s_v3
core_count double 實例的 vCPU 數目。 48.0
memory_mb long 實例的總記憶體。 393216
gpu_count long 實例的 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;