Udostępnij za pośrednictwem


Odniesienie do tabel systemu komputerowego

Ważne

Ta tabela systemowa znajduje się w publicznej wersji próbnej . Aby uzyskać dostęp do tabeli, schemat musi być włączony w katalogu system. Aby uzyskać więcej informacji, zobacz Włączanie schematów tabel systemowych.

Ten artykuł zawiera przewodnik referencyjny dotyczący tabel systemu obliczeniowego. Za pomocą tych tabel można monitorować aktywność i metryki wszystkich celów i zadań obliczeniowych na koncie:

  • clusters: rejestruje konfiguracje obliczeniowe na koncie.
  • node_types: zawiera jeden rekord dla każdego z aktualnie dostępnych typów węzłów, w tym informacje o sprzęcie.
  • node_timeline: zawiera rekordy minut po minutach metryk wykorzystania zasobów obliczeniowych.

Schemat tabeli klastra

Tabela klastra to wolno zmieniająca się tabela wymiarów, która zawiera pełną historię konfiguracji obliczeniowych w czasie dla obliczeń wszystkich celów i zadań.

Ścieżka tabeli: ta tabela systemowa znajduje się w system.compute.clusters

Nazwa kolumny Typ danych opis Przykład
account_id string Identyfikator konta, na którym został utworzony ten klaster. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id string Identyfikator obszaru roboczego, w którym został utworzony ten klaster. 1234567890123456
cluster_id string Identyfikator klastra, dla którego jest skojarzony ten rekord. 0000-123456-crmpt124
cluster_name string Zdefiniowana przez użytkownika nazwa klastra. My cluster
owned_by sznurek Nazwa użytkownika właściciela klastra. Domyślnie jest to twórca klastra, ale można go zmienić poprzez API klastrów. sample_user@email.com
create_time znacznik czasu Sygnatura czasowa zmiany tej definicji obliczeniowej. 2023-01-09 11:00:00.000
delete_time znacznik czasu Sygnatura czasowa usunięcia klastra. Wartość jest równa null , jeśli klaster nie został usunięty. 2023-01-09 11:00:00.000
driver_node_type string Nazwa typu węzła sterownika. Jest to zgodne z nazwą typu wystąpienia od dostawcy usług w chmurze. Standard_D16s_v3
worker_node_type string Nazwa typu węzła roboczego. Jest to zgodne z nazwą typu wystąpienia od dostawcy usług w chmurze. Standard_D16s_v3
worker_count bigint Liczba pracowników. Zdefiniowano tylko dla klastrów o stałym rozmiarze. 4
min_autoscale_workers bigint Minimalna liczba pracowników. To pole jest prawidłowe tylko w przypadku klastrów skalowania automatycznego. 1
max_autoscale_workers bigint Ustawiona maksymalna liczba pracowników. To pole jest prawidłowe tylko w przypadku klastrów skalowania automatycznego. 1
auto_termination_minutes bigint Skonfigurowany czas trwania autoterminacji. 120
enable_elastic_disk boolean Stan włączania automatycznego skalowania dysku. true
tags mapa Tagi zdefiniowane przez użytkownika dla klastra (nie zawierają tagów domyślnych). {"ResourceClass":"SingleNode"}
cluster_source string Wskazuje twórcę klastra: UI, API, JOBitp. UI
init_scripts tablica Zestaw ścieżek dla skryptów init. "/Users/example@email.com
/files/scripts/install-python-pacakges.sh"
aws_attributes struktura Ustawienia specyficzne dla platformy AWS. null
azure_attributes struktura Ustawienia specyficzne dla platformy Azure. {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes struktura Ustawienia specyficzne dla platformy GCP. To pole będzie puste. null
driver_instance_pool_id string Identyfikator puli wystąpień, jeśli sterownik jest skonfigurowany na podstawie puli wystąpień. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id string Identyfikator puli wystąpień, jeśli proces roboczy jest skonfigurowany na podstawie puli wystąpień. 1107-555555-crhod16-pool-DIdnjazB
dbr_version string Środowisko uruchomieniowe klastra Databricks. 14.x-snapshot-scala2.12
change_time znacznik czasu Sygnatura czasowa zmiany definicji obliczeniowej. 2023-01-09 11:00:00.000
change_date data Zmień datę. Służy do przechowywania. 2023-01-09

Schemat tabeli typów węzłów

Tabela typów węzłów przechwytuje obecnie dostępne typy węzłów przy użyciu podstawowych informacji o sprzęcie.

ścieżka tabeli: ta tabela systemowa znajduje się w system.compute.node_types.

Nazwa kolumny Typ danych opis Przykład
account_id string Identyfikator konta, na którym został utworzony ten klaster. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type string Unikatowy identyfikator typu węzła. Standard_D16s_v3
core_count podwójny Liczba procesorów wirtualnych dla wystąpienia. 48.0
memory_mb długi Łączna ilość pamięci dla wystąpienia. 393216
gpu_count długi Liczba GPU dla instancji. 0

Schemat tabeli osi czasu węzła

Tabela czasowa węzła przechwytuje dane użycia zasobów na poziomie węzła z dokładnością do minut. Każdy rekord zawiera dane dla danej minuty czasu dla każdego wystąpienia.

ścieżka tabeli: ta tabela systemowa znajduje się w system.compute.node_timeline.

Nazwa kolumny Typ danych opis Przykład
account_id string Identyfikator konta, na którym jest uruchomiony ten zasób obliczeniowy. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id string Identyfikator obszaru roboczego, w którym jest uruchomiony ten zasób obliczeniowy. 1234567890123456
cluster_id string Identyfikator zasobu obliczeniowego. 0000-123456-crmpt124
instance_id string Identyfikator określonego wystąpienia. i-1234a6c12a2681234
start_time znacznik czasu Czas rozpoczęcia zapisu w formacie UTC. 2024-07-16T12:00:00Z
end_time znacznik czasu Godzina zakończenia rekordu w formacie UTC. 2024-07-16T13:00:00Z
driver boolean Czy instancja jest sterownikiem, czy węzłem roboczym. true
cpu_user_percent podwójny Procent czasu spędzonego przez CPU w przestrzeni użytkownika. 34.76163817234407
cpu_system_percent podwójny Procent czasu, jaki procesor CPU spędził w jądrze. 1.0895310279488264
cpu_wait_percent podwójny Procent czasu, przez jaki procesor spędził oczekiwanie na we/wy. 0.03445157400629276
mem_used_percent podwójny Procent pamięci obliczeniowej, która była używana w okresie (w tym pamięć używana przez procesy w tle uruchomione na obliczeniach). 45.34858216779041
mem_swap_percent podwójny Procent użycia pamięci przypisany do zamiany pamięci. 0.014648443087939
network_sent_bytes bigint Liczba bajtów wysłanych w ruchu sieciowym. 517376
network_received_bytes bigint Liczba odebranych bajtów z ruchu sieciowego. 179234
disk_free_bytes_per_mount_point mapa Wykorzystanie dysku pogrupowane według punktu instalacji. Jest to magazyn efemeryczny aprowizowany tylko podczas uruchamiania obliczeń. {"/var/lib/lxc":123455551234,"/":
123456789123,"/local_disk0":123412341234}
node_type string Nazwa typu węzła. Będzie to zgodne z nazwą typu wystąpienia od dostawcy usług w chmurze. Standard_D16s_v3

Znane ograniczenia

  • Zasoby obliczeniowe, które zostały oznaczone jako usunięte przed 23 października 2023 r., nie są wyświetlane w tabeli klastrów. Może to spowodować, że sprzężenia z tabeli system.billing.usage nie pasują do rekordów w tabeli klastrów. Wszystkie aktywne zasoby obliczeniowe zostały uzupełnione.
  • Te tabele zawierają tylko rekordy dla obliczeń uniwersalnych i obliczeń zadań. Nie zawierają rekordów dla bezserwerowych obliczeń, obliczeń DLT ani magazynów SQL Warehouse.
  • Węzły, które działały krócej niż 10 minut, mogą nie być wyświetlane w tabeli node_timeline.

Przykładowe zapytania

Aby odpowiedzieć na typowe pytania, możesz użyć następujących przykładowych zapytań:

Uwaga

Niektóre z tych przykładów łączą tabelę klastra z tabelą system.billing.usage . Ponieważ rekordy rozliczeń obejmują różne regiony, a rekordy klastra są specyficzne dla jednego regionu, rekordy rozliczeniowe pasują tylko do rekordów klastra w regionie, którego dotyczy zapytanie. Aby wyświetlić rekordy z innego regionu, wykonaj zapytanie w tym regionie.

Dołączanie rekordów klastra do najnowszych rekordów rozliczeniowych

To zapytanie może ułatwić zrozumienie wydatków w czasie. Po zaktualizowaniu usage_start_time bieżącego okresu rozliczeniowego pobiera najnowsze aktualizacje rekordów rozliczeniowych, aby dołączyć do danych klastrów.

Każdy rekord jest skojarzony z właścicielem klastra podczas tej konkretnej operacji. W związku z tym, jeśli właściciel klastra ulegnie zmianie, koszty zostaną przypisane do właściwego właściciela w zależności od tego, kiedy klaster został użyty.

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;

Identyfikowanie zasobów obliczeniowych z najwyższym średnim użyciem i szczytowym wykorzystaniem

Zidentyfikuj zasoby obliczeniowe ogólnego przeznaczenia i dla zadań, które mają najwyższe średnie i szczytowe wykorzystanie procesora.

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;