Riferimento alle tabelle dei sistemi di calcolo
Importante
Questa tabella di sistema è in Anteprima Pubblica. Per accedere alla tabella, lo schema deve essere abilitato nel catalogo system
. Per ulteriori informazioni, consultare la sezione Abilitazione dei schemi delle tabelle di sistema.
Questo articolo fornisce una guida di riferimento per le tabelle di sistema di calcolo. È possibile utilizzare queste tabelle per monitorare l'attività e le metriche delle risorse di calcolo generico e dei lavori nell'account.
-
clusters
: registra le configurazioni di calcolo nell'account. -
node_types
: include un singolo record per ognuno dei tipi di nodo attualmente disponibili, incluse le informazioni sull'hardware. -
node_timeline
: Includono i registri minuto per minuto delle metriche di utilizzo della computazione.
Schema della tabella del cluster
La tabella cluster è una tabella delle dimensioni a modifica lenta che contiene la cronologia completa delle configurazioni di calcolo nel tempo per il calcolo di tutti gli scopi e i processi.
percorso tabella: questa tabella di sistema si trova in system.compute.clusters
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-crmpt124 |
cluster_name |
string | Nome definito dall'utente per il cluster. | My cluster |
owned_by |
string | Nome utente del proprietario del cluster. Per impostazione predefinita, il creatore del cluster è assegnato, ma 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 di lavoro. Corrisponde al nome del tipo di istanza del provider di servizi cloud. | Standard_D16s_v3 |
worker_count |
bigint | Numero di lavoratori. Definito solo per i cluster a dimensione fissa. | 4 |
min_autoscale_workers |
bigint | Numero minimo impostato di lavoratori. Questo campo è valido solo per i cluster di scalabilità automatica. | 1 |
max_autoscale_workers |
bigint | Numero massimo di lavoratori impostato. 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 , JOB e così 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 del pool di istanze se il driver è configurato in cima a 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.
percorso tabella: questa tabella di sistema si trova in system.compute.node_types
.
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 |
string | Identificatore univoco per il tipo di nodo. | Standard_D16s_v3 |
core_count |
doppio | Numero di vCPU per l'istanza. | 48.0 |
memory_mb |
lungo | Memoria totale per l'istanza. | 393216 |
gpu_count |
lungo | Numero di GPU per l'istanza. | 0 |
schema della tabella di cronologia del nodo
La tabella della sequenza temporale del nodo acquisisce i dati di utilizzo delle risorse a livello di nodo con granularità al minuto. Ogni record contiene dati per un determinato minuto di tempo per ogni istanza.
percorso tabella: questa tabella di sistema si trova in system.compute.node_timeline
.
Nome colonna | Tipo di dati | Descrizione | Esempio |
---|---|---|---|
account_id |
string | ID dell'account in cui è in esecuzione questa risorsa di calcolo. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | ID dell'area di lavoro in cui è in esecuzione questa risorsa di calcolo. | 1234567890123456 |
cluster_id |
string | ID della risorsa di calcolo. | 0000-123456-crmpt124 |
instance_id |
string | ID per l'istanza specifica. | i-1234a6c12a2681234 |
start_time |
timestamp | Ora di inizio del record in UTC. | 2024-07-16T12:00:00Z |
end_time |
timestamp | Ora di fine per il record in formato UTC. | 2024-07-16T13:00:00Z |
driver |
boolean | Indica se l'istanza è un driver o un nodo di lavoro. | true |
cpu_user_percent |
doppio | Percentuale di tempo impiegato dalla CPU nell'area utente. | 34.76163817234407 |
cpu_system_percent |
doppio | Percentuale di tempo impiegato dalla CPU nel kernel. | 1.0895310279488264 |
cpu_wait_percent |
doppio | Percentuale di tempo impiegato dalla CPU in attesa di I/O. | 0.03445157400629276 |
mem_used_percent |
doppio | Percentuale della memoria di calcolo usata durante il periodo di tempo ,inclusa la memoria usata dai processi in background in esecuzione nel calcolo. | 45.34858216779041 |
mem_swap_percent |
doppio | Percentuale di utilizzo della memoria attribuito allo scambio di memoria. | 0.014648443087939 |
network_sent_bytes |
bigint | Numero di byte inviati nel traffico di rete. | 517376 |
network_received_bytes |
bigint | Numero di byte ricevuti dal traffico di rete. | 179234 |
disk_free_bytes_per_mount_point |
mappa | Utilizzo del disco raggruppato per punto di montaggio. Si tratta di una risorsa di archiviazione temporanea di cui è stato effettuato il provisioning solo durante l'esecuzione del calcolo. | {"/var/lib/lxc":123455551234,"/": 123456789123,"/local_disk0":123412341234} |
node_type |
string | Nome del tipo di nodo. Corrisponderà al nome del tipo di istanza del provider di servizi cloud. | Standard_D16s_v3 |
Limitazioni note
- Le risorse di calcolo contrassegnate come eliminate prima del 23 ottobre 2023 non vengono visualizzate nella tabella cluster. Ciò potrebbe comportare join dalla tabella
system.billing.usage
non corrispondenti ai record nella tabella cluster. Tutte le risorse di calcolo attive sono state riempite. - Queste tabelle includono solo i record per il calcolo generico e le attività. Non contengono record per il calcolo serverless, il calcolo DLT o i warehouse SQL.
- I nodi eseguiti per meno di 10 minuti potrebbero non essere visualizzati nella tabella
node_timeline
.
Esempi di query
È possibile usare le query di esempio seguenti per rispondere a domande comuni:
- Unire i record del cluster ai record di fatturazione più recenti
- Identificare le risorse di calcolo con l'utilizzo medio più elevato e il picco di utilizzo
Nota
Alcuni di questi esempi uniscono la tabella cluster con la tabella system.billing.usage
. Poiché i record di fatturazione sono interregionali e i record dei cluster sono specifici per regione, i record di fatturazione corrispondono solo ai record del cluster per la regione in cui si sta eseguendo una query. Per visualizzare i record di un'altra area, eseguire la query in tale area.
Unire i record del cluster con i record di fatturazione più recenti
Questa query consente di comprendere le spese nel tempo. Dopo aver aggiornato il 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 attribuiti 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;
Identificare le risorse di calcolo con l'utilizzo medio più elevato e il picco di utilizzo
Identificare i calcoli all-purpose e jobs che hanno il maggiore utilizzo medio della CPU e il maggiore picco di utilizzo della 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;