Share via


Informazioni di riferimento sulle tabelle di sistema di calcolo

Importante

Questa funzionalità è disponibile in anteprima pubblica.

Questo articolo offre una panoramica delle tabelle di sistema di calcolo, inclusi gli schemi e le query di esempio. Sono ora disponibili due tabelle di sistema del cluster: clusters e node_types.

Schema della tabella del cluster

La tabella cluster è una tabella delle dimensioni a modifica lenta che contiene la cronologia completa delle configurazioni del cluster nel tempo per i cluster di tutti gli scopi e i processi.

La tabella di sistema cluster si trova in system.compute.clusters e ha lo schema seguente:

Nome colonna Tipo di dati Descrizione Esempio
account_id string ID dell'account in cui è stato creato il cluster. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id string ID dell'area di lavoro in cui è stato creato il cluster. 1234567890123456
cluster_id string ID del cluster per cui è associato questo record. 0000-123456-xxxxxxxx
cluster_name string Nome definito dall'utente per il cluster. My cluster
owned_by string Nome utente del proprietario del cluster. Per impostazione predefinita, l'autore del cluster può essere modificato tramite l'API Clusters. sample_user@email.com
create_time timestamp Timestamp della modifica apportata a questa definizione di calcolo. 2023-01-09 11:00:00.000
delete_time timestamp Timestamp di quando il cluster è stato eliminato. Il valore è null se il cluster non viene eliminato. 2023-01-09 11:00:00.000
driver_node_type string Nome del tipo di nodo del driver. Corrisponde al nome del tipo di istanza del provider di servizi cloud. Standard_D16s_v3
worker_node_type string Nome del tipo di nodo del ruolo di lavoro. Corrisponde al nome del tipo di istanza del provider di servizi cloud. Standard_D16s_v3
worker_count bigint Numero di ruoli di lavoro. Definito solo per i cluster a dimensione fissa. 4
min_autoscale_workers bigint Numero minimo impostato di ruoli di lavoro. Questo campo è valido solo per i cluster di scalabilità automatica. 1
max_autoscale_workers bigint Numero massimo di ruoli di lavoro impostati. Questo campo è valido solo per i cluster di scalabilità automatica. 1
auto_termination_minutes bigint Durata dell'autoterminazione configurata. 120
enable_elastic_disk boolean Stato di abilitazione del disco con scalabilità automatica. true
tags mappa Tag definiti dall'utente per il cluster (non include i tag predefiniti). {"ResourceClass":"SingleNode"}
cluster_source string Indica l'autore per il cluster: UI, API, DLT, e JOBcosì via. UI
init_scripts array Set di percorsi per gli script init. "/Users/example@email.com/files/scripts/install-python-pacakges.sh"
aws_attributes struct Impostazioni specifiche di AWS. null
azure_attributes struct Impostazioni specifiche di Azure. {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes struct Impostazioni specifiche di GCP. Questo campo sarà vuoto. null
driver_instance_pool_id string ID pool di istanze se il driver è configurato sopra un pool di istanze. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id string ID pool di istanze se il ruolo di lavoro è configurato sopra un pool di istanze. 1107-555555-crhod16-pool-DIdnjazB
dbr_version string Databricks Runtime del cluster. 14.x-snapshot-scala2.12
change_time timestamp Timestamp della modifica alla definizione di calcolo. 2023-01-09 11:00:00.000
change_date data Modificare la data. Usato per la conservazione. 2023-01-09

Schema di tabella dei tipi di nodo

La tabella dei tipi di nodo acquisisce i tipi di nodo attualmente disponibili con le relative informazioni hardware di base. La tabella di sistema dei tipi di nodo si trova in system.compute.node_types e ha lo schema seguente:

Nome colonna Tipo di dati Descrizione Esempio
account_id string ID dell'account in cui è stato creato il cluster. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type_name string Identificatore univoco per il tipo di nodo. Standard_D16s_v3
core_count double Numero di vCPU per l'istanza. 48.0
memory_mb long Memoria totale per l'istanza. 393216
gpu_count long Numero di GPU per l'istanza. 0

Limitazioni note

  • I cluster contrassegnati come eliminati prima del 23 ottobre 2023 non vengono visualizzati nella tabella cluster. Ciò potrebbe comportare join dalla system.billing.usage tabella che non corrispondono ai record del cluster nella tabella cluster. Tutti i cluster attivi sono stati riempiti.
  • La tabella cluster include solo record per cluster di processi e per tutti gli scopi. Non contiene cluster delta live tables o sql warehouse.

Query di esempio

È possibile usare le query di esempio seguenti per rispondere a domande comuni sui cluster:

Nota

Questi esempi unisce la tabella cluster alla system.billing.usage tabella . Poiché i record di fatturazione sono tra aree e record cluster region-sepcific, i record di fatturazione corrispondono solo ai record del cluster per l'area in cui si sta eseguendo una query. Per visualizzare i record di un'altra area, eseguire la query in tale area.

Aggiungere record del cluster con i record di fatturazione più recenti

Questa query consente di comprendere le spese nel tempo. Dopo aver aggiornato l'oggetto usage_start_time al periodo di fatturazione più recente, vengono acquisiti gli aggiornamenti più recenti ai record di fatturazione per l'aggiunta ai dati dei cluster.

Ogni record è associato al proprietario del cluster durante l'esecuzione specifica. Pertanto, se il proprietario del cluster cambia, i costi verranno rollup al proprietario corretto in base al momento dell'uso del cluster.

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;

Costi degli attributi per un cluster al proprietario del cluster

Se si vuole ridurre i costi di calcolo, è possibile usare questa query per scoprire quali proprietari del cluster nell'account usano la maggior parte delle unità di database.

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;