Referenz zu Herkunftssystemtabellen
Wichtig
Diese Systemtabelle befindet sich in der Public Preview. Um auf die Tabelle zuzugreifen, muss das Schema in Ihrem system
Katalog aktiviert sein. Weitere Informationen finden Sie unter Aktivieren des Systemtabellenschemas.
Dieser Artikel enthält einen Referenzleitfaden für die Computesystemtabellen. Sie können diese Tabellen verwenden, um die Aktivitäten und Metriken universeller und auftragsbezogener Computeressourcen in Ihrem Konto zu überwachen:
clusters
: zeichnet Computekonfigurationen in Ihrem Konto auf.node_types
: enthält einen einzelnen Datensatz für jeden der derzeit verfügbaren Knotentypen, einschließlich Hardwareinformationen.node_timeline
: enthält minutengenaue Datensätze der Auslastungsmetriken Ihrer Computeressourcen.
Clustertabellenschema
Die Clustertabelle ist eine sich langsam ändernde Dimensionstabelle, die den vollständigen Verlauf von Computekonfigurationen im Lauf der Zeit für universelle und auftragsbezogene Computeressourcen enthält.
Tabellenpfad: Diese Systemtabelle befindet sich unter system.compute.clusters
Spaltenname | Datentyp | Beschreibung | Beispiel |
---|---|---|---|
account_id |
Zeichenfolge | ID des Kontos, auf dem dieser Cluster erstellt wurde. | 23e22ba4-87b9- 4cc2-9770-d10b894b7118 |
workspace_id |
Zeichenfolge | ID des Arbeitsbereichs, in dem dieser Cluster erstellt wurde. | 1234567890123456 |
cluster_id |
Zeichenfolge | ID des Clusters, für den dieser Datensatz zugeordnet ist. | 0000-123456-crmpt124 |
cluster_name |
Zeichenfolge | Benutzerdefinierter Name für den Cluster. | My cluster |
owned_by |
Zeichenfolge | Benutzername des Clusterbesitzers. Standardmäßig der Clusterersteller, kann aber über die Cluster-API geändert werden. | sample_user@email.com |
create_time |
Zeitstempel | Zeitstempel der Änderung an dieser Berechnungsdefinition. | 2023-01-09 11:00:00.000 |
delete_time |
Zeitstempel | Zeitstempel des Zeitpunkts, zu dem der Cluster gelöscht wurde. Der Wert ist null , wenn der Cluster nicht gelöscht wird. |
2023-01-09 11:00:00.000 |
driver_node_type |
Zeichenfolge | Name des Treiberknotentyps. Dies entspricht dem Namen des Instanztyps vom Cloudanbieter. | Standard_D16s_v3 |
worker_node_type |
Zeichenfolge | Name des Arbeitsknotentyps. Dies entspricht dem Namen des Instanztyps vom Cloudanbieter. | Standard_D16s_v3 |
worker_count |
BIGINT | Anz. von Workern. Nur für Cluster mit fester Größe definiert. | 4 |
min_autoscale_workers |
BIGINT | Die festgelegte Mindestanzahl von Workern. Dieses Feld ist nur für automatische Skalierungscluster gültig. | 1 |
max_autoscale_workers |
BIGINT | Die maximale Anzahl der Worker. Dieses Feld ist nur für automatische Skalierungscluster gültig. | 1 |
auto_termination_minutes |
BIGINT | Die konfigurierte Autoterminierungsdauer. | 120 |
enable_elastic_disk |
boolean | Status der automatischen Skalierung der Datenträgeraktivierung. | true |
tags |
map | Benutzerdefinierte Tags für den Cluster (umfasst keine Standardtags). | {"ResourceClass":"SingleNode"} |
cluster_source |
Zeichenfolge | Gibt den Ersteller für den Cluster an: UI , API , JOB usw. |
UI |
init_scripts |
array | Satz von Pfaden für Init-Skripts. | "/Users/example@email.com /files/scripts/install-python-pacakges.sh" |
aws_attributes |
struct | AWS-spezifische Einstellungen. | null |
azure_attributes |
struct | Azure-spezifische Einstellungen. | { "first_on_demand": "0", "availability": "ON_DEMAND_AZURE", "spot_bid_max_price": "—1" } |
gcp_attributes |
struct | GCP-spezifische Einstellungen. Dieses Feld bleibt leer. | null |
driver_instance_pool_id |
Zeichenfolge | Instanzpool-ID, wenn der Treiber über einem Instanzpool konfiguriert ist. | 1107-555555-crhod16-pool-DIdnjazB |
worker_instance_pool_id |
Zeichenfolge | Instanzpool-ID, wenn der Worker über einem Instanzpool konfiguriert ist. | 1107-555555-crhod16-pool-DIdnjazB |
dbr_version |
Zeichenfolge | Die Databricks-Laufzeit des Clusters. | 14.x-snapshot-scala2.12 |
change_time |
Zeitstempel | Zeitstempel der Änderung an der Computedefinition. | 2023-01-09 11:00:00.000 |
change_date |
date | Datum ändern. Wird für die Aufbewahrung verwendet. | 2023-01-09 |
Tabellenschema für Knotentypen
Die Knotentyp-Tabelle erfasst die derzeit verfügbaren Knotentypen mit ihren grundlegenden Hardwareinformationen.
Tabellenpfad: Diese Systemtabelle befindet sich unter system.compute.node_types
.
Spaltenname | Datentyp | Beschreibung | Beispiel |
---|---|---|---|
account_id |
Zeichenfolge | ID des Kontos, auf dem dieser Cluster erstellt wurde. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
node_type |
Zeichenfolge | Eindeutige ID für diesen Knotentyp. | Standard_D16s_v3 |
core_count |
double | Anzahl der vCPUs für die Instanz. | 48.0 |
memory_mb |
lang | Gesamtspeicher für die Instanz. | 393216 |
gpu_count |
lang | Anzahl der GPUs für die Instanz. | 0 |
Tabellenschema für Knotenzeitachsen
In der Tabelle für Knotenzeitachsen wird der Ressourcenverbrauch auf Knotenebene minutengenau erfasst. Jeder Datensatz enthält Daten für eine bestimmte Minute pro Instanz.
Tabellenpfad: Diese Systemtabelle befindet sich unter system.compute.node_timeline
.
Spaltenname | Datentyp | Beschreibung | Beispiel |
---|---|---|---|
account_id |
Zeichenfolge | ID des Kontos, unter dem diese Computeressource ausgeführt wird | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
Zeichenfolge | ID des Arbeitsbereichs, in dem diese Computeressource ausgeführt wird | 1234567890123456 |
cluster_id |
Zeichenfolge | ID der Computeressource | 0000-123456-crmpt124 |
instance_id |
Zeichenfolge | ID der Instanz | i-1234a6c12a2681234 |
start_time |
Zeitstempel | UTC-Startzeit des Datensatzes | 2024-07-16T12:00:00Z |
end_time |
Zeitstempel | UTC-Endzeit des Datensatzes | 2024-07-16T13:00:00Z |
driver |
boolean | Gibt an, ob es sich bei der Instanz um einen Treiber- oder Workerknoten handelt | true |
cpu_user_percent |
double | Prozentsatz der Zeit, die die CPU in der Benutzerumgebung aufgewendet hat | 34.76163817234407 |
cpu_system_percent |
double | Prozentsatz der Zeit, die die CPU im Kernel aufgewendet hat | 1.0895310279488264 |
cpu_wait_percent |
double | Prozentsatz der Zeit, die die CPU für das Warten auf E/A aufgewendet hat | 0.03445157400629276 |
mem_used_percent |
double | Prozentsatz des Arbeitsspeichers der Computeressource, der während des Zeitraums verwendet wurde (einschließlich des Arbeitsspeichers, der von Hintergrundprozessen verwendet wird, die auf der Computeressource ausgeführt werden) | 45.34858216779041 |
mem_swap_percent |
double | Prozentsatz der Speicherauslastung für Auslagerungsspeicher | 0.014648443087939 |
network_sent_bytes |
bigint | Anzahl Bytes, die über Netzwerkdatenverkehr gesendet wurden | 517376 |
network_received_bytes |
bigint | Anzahl Bytes, die über Netzwerkdatenverkehr empfangen wurden | 179234 |
disk_free_bytes_per_mount_point |
Karte | Datenträgerauslastung gruppiert nach Bereitstellungspunkt. Dies ist kurzlebiger Speicher, der nur während der Computeausführung bereitgestellt wird. | {"/var/lib/lxc":123455551234,"/": 123456789123,"/local_disk0":123412341234} |
node_type |
Zeichenfolge | Name des Knotentyps. Er entspricht dem Namen des Instanztyps vom Cloudanbieter. | Standard_D16s_v3 |
Bekannte Einschränkungen
- Clusterressourcen, die vor dem 23. Oktober 2023 als gelöscht markiert wurden, sind nicht in der Clustertabelle enthalten. Dies kann dazu führen, dass Verknüpfungen aus der Tabelle
system.billing.usage
keinen Clusterdatensätzen in der Clustertabelle entsprechen. Alle aktiven Computeressourcen wurden abgeglichen. - Diese Tabellen enthalten nur Datensätze für universelle und auftragsbezogene Computeressourcen. Sie enthalten keine Datensätze für serverloses Computing, Delta Live Tables-Computeressourcen oder SQL-Warehouses.
- Knoten, die weniger als 10 Minuten ausgeführt wurden, werden in der Tabelle
node_timeline
möglicherweise nicht angezeigt.
Beispielabfragen
Sie können die folgenden Beispielabfragen verwenden, um häufig gestellte Fragen zu beantworten:
- Verknüpfen von Clusterdatensätzen mit den neuesten Abrechnungsdatensätzen
- Zuordnen von Kosten zum Clusterbesitzer
- Ermitteln der Computeressourcen mit der höchsten durchschnittlichen Auslastung und der höchsten Auslastung
Hinweis
In einigen dieser Beispiele wird die Clustertabelle mit der Tabelle system.billing.usage
verknüpft. Da Abrechnungsdatensätze regionsübergreifend und Clusterdatensätze regionsspezifisch sind, stimmen Abrechnungsdatensätze nur mit Clusterdatensätzen für die Region überein, in der Sie abfragen. Um Datensätze aus einer anderen Region anzuzeigen, führen Sie die Abfrage bitte in dieser Region aus.
Verbinden von Clusterdatensätzen mit den neuesten Abrechnungsdatensätzen
Diese Abfrage kann Ihnen helfen, die Ausgaben im Laufe der Zeit zu verstehen. Nachdem Sie den usage_start_time
auf den aktuellen Abrechnungszeitraum aktualisiert haben, erfasst er die neuesten Aktualisierungen der Abrechnungsdaten, um die Clusterdaten zu verknüpfen.
Jeder Datensatz wird während dieser bestimmten Ausführung dem Clusterbesitzer zugeordnet. Wenn sich der Clusterbesitzer ändert, werden die Kosten also basierend auf dem Zeitpunkt der Verwendung des Clusters auf den richtigen Besitzer angewendet.
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;
Zuordnen von Kosten zum Clusterbesitzer
Wenn Sie die Berechnungskosten reduzieren möchten, können Sie diese Abfrage verwenden, um herauszufinden, welche Clusterbesitzer in Ihrem Konto die meisten DBUs verwenden.
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;
Ermitteln der Computeressourcen mit der höchsten durchschnittlichen Auslastung und der höchsten Auslastung
Ermitteln der universellen und auftragsbezogenen Computeressourcen mit der höchsten durchschnittlichen Auslastung und der höchsten CPU-Auslastung
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;