共用方式為


計算系統數據表參考

重要

這項功能處於公開預覽狀態。 必須啟用架構,才能在您的 system 目錄中顯示。 如需詳細資訊,請參閱 啟用系統數據表架構

本文提供計算系統數據表的參考指南。 您可以使用這些資料表來監視帳戶中所有用途和作業計算的活動和計量:

  • clusters:記錄您帳戶中的計算組態。
  • node_types:包含每個目前可用節點類型的單一記錄,包括硬體資訊。
  • node_timeline:包含計算使用量計量的分鐘記錄。

叢集數據表架構

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

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

資料行名稱 資料類型 描述 範例
account_id 字串 建立此叢集之帳戶的標識碼。 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id 字串 建立此叢集的工作區標識碼。 1234567890123456
cluster_id 字串 此記錄相關聯之叢集的標識碼。 0000-123456-crmpt124
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、、 APIJOB等。 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

節點時間軸數據表架構

節點時間軸數據表會以分鐘粒度擷取節點層級的資源使用率數據。 每個記錄都包含每個實例指定時間分鐘的數據。

節點時間軸系統資料表位於 system.compute.node_timeline ,且具有下列架構:

資料行名稱 資料類型 描述 範例
account_id 字串 執行此計算資源的帳戶標識碼。 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id 字串 執行此計算資源的工作區識別碼。 1234567890123456
cluster_id 字串 計算資源的識別碼。 0000-123456-crmpt124
instance_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 double 在用戶內陸花費 CPU 的百分比。 34.76163817234407
cpu_system_percent double 核心中 CPU 花費的時間百分比。 1.0895310279488264
cpu_wait_percent double CPU 等候 I/O 所花費的時間百分比。 0.03445157400629276
mem_used_percent double 在時間週期內使用的計算記憶體百分比(包括計算上執行的背景進程所使用的記憶體)。 45.34858216779041
mem_swap_percent double 屬性為記憶體交換的記憶體使用量百分比。 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 字串 節點類型的名稱。 這會比對雲端提供者的實例類型名稱。 Standard_D16s_v3

已知的限制

  • 在 2023 年 10 月 23 日之前標示為已刪除的計算資源不會出現在叢集數據表中。 這可能會導致來自 system.billing.usage 數據表的聯結不符合叢集數據表中的記錄。 所有作用中的計算資源都已回填。
  • 這些數據表只包含所有用途和作業計算的記錄。 它們不包含無伺服器計算、差異實時數據表計算或 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;

將成本歸因於叢集擁有者

如果您想要降低計算成本,您可以使用此查詢來找出帳戶中的哪些叢集擁有者使用最多的 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;