Referenční informace k tabulkám výpočetního systému

Tento článek obsahuje referenční příručku pro tabulky výpočetních systémů. Pomocí těchto tabulek můžete monitorovat aktivity a metriky klasických výpočetních prostředků pro všechny účely, výpočetních úloh a výpočetních prostředků Sparku Lakeflow deklarativních kanálů ve vašem účtu. Mezi klasické výpočetní tabulky patří:

  • clusters: Zaznamenává výpočetní konfigurace ve vašem účtu.
  • node_types: Zahrnuje jeden záznam pro každý z aktuálně dostupných typů uzlů, včetně informací o hardwaru.
  • node_timeline: Zahrnuje záznamy metrik využití výpočetních prostředků po minutách.
  • instance_events: Zachycuje přechody stavu klasických výpočetních instancí.
  • instance_pools: Zaznamenává konfigurace fondu instancí ve vašem účtu.

Schéma tabulky clusteru

Tabulka klastru je tabulka dimenze s pomalými změnami, která obsahuje úplnou historii konfigurace výpočetního prostředí v čase pro univerzální výpočet, výpočet úloh, výpočet deklarativních kanálů Spark Lakeflow a výpočet údržby kanálů.

Cesta k tabulce: Tato systémová tabulka se nachází na adrese . system.compute.clusters

Název sloupce Datový typ Popis Příklad
account_id řetězec ID účtu, ve kterém byl tento cluster vytvořen. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id řetězec ID pracovního prostoru, ve kterém byl tento cluster vytvořen. 1234567890123456
cluster_id řetězec ID clusteru, ke kterému je tento záznam přidružený. 0000-123456-crmpt124
cluster_name řetězec Uživatelem definovaný název clusteru My cluster
owned_by řetězec Uživatelské jméno vlastníka clusteru Ve výchozím nastavení je nastaveno na tvůrce clusteru, ale lze ho změnit prostřednictvím rozhraní API clusterů. sample_user@email.com
create_time časové razítko Časové razítko změny této definice výpočetního systému. 2023-01-09 11:00:00.000
delete_time časové razítko Časové razítko odstranění clustru Hodnota je null v případě, že se cluster neodstraní. 2023-01-09 11:00:00.000
driver_node_type řetězec Název typu uzlu ovladače Odpovídá názvu typu instance od poskytovatele cloudu. Standard_D16s_v3
worker_node_type řetězec Název typu pracovního uzlu Odpovídá názvu typu instance od poskytovatele cloudu. Standard_D16s_v3
worker_count bigint Počet pracovníků. Definované pouze pro clustery s pevnou velikostí. 4
min_autoscale_workers bigint Minimální stanovený počet pracovníků. Toto pole je platné jenom pro clustery automatického škálování. 1
max_autoscale_workers bigint Nastavený maximální počet pracovníků. Toto pole je platné jenom pro clustery automatického škálování. 1
auto_termination_minutes bigint Nakonfigurovaná doba trvání automatického ukončení. 120
enable_elastic_disk booleovský Stav povolení automatického škálování disku true
tags mapa Uživatelem definované značky pro cluster (nezahrnuje výchozí značky). {"ResourceClass":"SingleNode"}
cluster_source řetězec Zdroj clusteru Hodnoty UI nebo API se vztahují pouze na univerzální výpočetní prostředky. Všechny výpočty úlohy jsou protokolovány jako JOB. Potrubí jsou PIPELINE nebo PIPELINE_MAINTENANCE. UI
init_scripts pole Sada cest pro inicializační skripty "/Users/example@email.com
/files/scripts/install-python-pacakges.sh"
aws_attributes struktura Konkrétní nastavení AWS. null
azure_attributes struktura Nastavení specifická pro Azure. {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes struktura Nastavení specifické pro GCP. Toto pole bude prázdné. null
driver_instance_pool_id řetězec ID fondu instancí, pokud je ovladač nakonfigurovaný nad fondem instancí. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id řetězec ID fondu instancí, pokud je pracovník nakonfigurován na vrcholu fondu instancí. 1107-555555-crhod16-pool-DIdnjazB
dbr_version řetězec Databricks Runtime u daného clusteru. 14.x-snapshot-scala2.12
change_time časové razítko Časové razítko změny výpočetní definice 2023-01-09 11:00:00.000
change_date datum Změnit datum. Používá se k uchovávání. 2023-01-09
data_security_mode řetězec Režim přístupu výpočetního prostředku. Viz referenční informace k režimu accessu. USER_ISOLATION
policy_id řetězec ID výpočetních zásad clusteru, pokud je to možné. 1234F35636110A5B

Referenční informace k režimu přístupu

Následující tabulka překládá možné hodnoty obsažené ve sloupci data_security_mode . Sloupec může být null také pro určité kanály a clustery vytvořené systémem.

Hodnota Režim přístupu
USER_ISOLATION Standard
SINGLE_USER Dedicated

Starší režimy přístupu se zaznamenávají s následujícími hodnotami:

Hodnota Režim přístupu
LEGACY_PASSTHROUGH Sdílené předávání přihlašovacích údajů
LEGACY_SINGLE_USER Předávání přihlašovacích údajů (jeden uživatel)
LEGACY_TABLE_ACL Na zakázku
NONE Žádná sdílená izolace

Schéma tabulky typů uzlů

Tabulka typu uzlu zachycuje aktuálně dostupné typy uzlů s jejich základními informacemi o hardwaru.

cesta k tabulce: Tato systémová tabulka se nachází v system.compute.node_types.

Název sloupce Datový typ Popis Příklad
account_id řetězec ID účtu, ve kterém byl tento cluster vytvořen. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type řetězec Jedinečný identifikátor pro typ uzlu. Standard_D16s_v3
core_count dvojitý Počet virtuálních procesorů instance 48.0
memory_mb dlouhý Celková paměť pro instanci. 393216
gpu_count dlouhý Počet grafických procesorů pro instanci 0

Schéma tabulky časového průběhu uzlu

Tabulka časové osy uzlu zachycuje data o využití prostředků na úrovni uzlu v minutovém rozlišení. Každý záznam obsahuje data za danou minutu času na instanci. Tato tabulka zaznamenává časové osy uzlů pro výpočetní prostředky pro všestranné použití, výpočetní prostředky pro úlohy, deklarativní kanály Lakeflow Spark a výpočetní prostředky údržby kanálů ve vašem účtu.

cesta k tabulce: Tato systémová tabulka se nachází v system.compute.node_timeline.

Název sloupce Datový typ Popis Příklad
account_id řetězec ID účtu, na kterém je tento výpočetní prostředek spuštěný. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id řetězec ID pracovního prostoru, na kterém je tento výpočetní prostředek spuštěný. 1234567890123456
cluster_id řetězec ID výpočetního prostředku. 0000-123456-crmpt124
instance_id řetězec ID konkrétní instance. i-1234a6c12a2681234
start_time časové razítko Čas zahájení záznamu v UTC. 2024-07-16T12:00:00Z
end_time časové razítko Koncový čas záznamu v UTC. 2024-07-16T13:00:00Z
driver booleovský Určuje, zda je instance ovladačem nebo pracovním uzlem. true
cpu_user_percent dvojitý Procento času, které procesor strávil v uživatelském prostoru 34.76163817234407
cpu_system_percent dvojitý Procento času stráveného procesorem v jádru 1.0895310279488264
cpu_wait_percent dvojitý Procento času stráveného čekáním na vstupně-výstupní operace procesoru 0.03445157400629276
mem_used_percent dvojitý Procento paměti výpočetních prostředků, které se použily během časového období (včetně paměti používané procesy na pozadí spuštěných na výpočetním prostředí). 45.34858216779041
mem_swap_percent dvojitý Procento využití paměti přičítané odkládací paměti 0.014648443087939
network_sent_bytes bigint Počet bajtů odesílaných v síťovém provozu 517376
network_received_bytes bigint Počet přijatých bajtů ze síťového provozu 179234
disk_free_bytes_per_mount_point mapa Využití disku seskupené podle přípojného bodu. Toto je dočasné úložiště zřízené jenom v době, kdy je výpočetní prostředí spuštěné. {"/var/lib/lxc":123455551234,"/":
123456789123,"/local_disk0":123412341234}
node_type řetězec Název typu uzlu. Odpovídá názvu typu instance od poskytovatele cloudu. Standard_D16s_v3
private_ip řetězec Privátní IP adresa přiřazená uzlu. 10.0.0.42

Schéma tabulky událostí instancí

Important

Tato systémová tabulka je ve verzi Public Preview.

Tabulka událostí instance zachycuje přechody stavu klasických výpočetních instancí. Každý řádek představuje změnu stavu pro jednu instanci. Tato tabulka obsahuje záznamy pro výpočetní prostředky, úlohy a deklarativní kanály Lakeflow Sparku ze všech pracovních prostorů ve vašem účtu nasazené ve stejné cloudové oblasti.

cesta k tabulce: Tato systémová tabulka se nachází v system.compute.instance_events.

Název sloupce Datový typ Popis Příklad
account_id řetězec ID účtu, ve kterém je tato instance spuštěna. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id řetězec ID pracovního prostoru, ve kterém je tato instance spuštěna. 1234567890123456
instance_id řetězec ID instance. i-0a1b2c3d4e5f67890
event_time časové razítko Časová značka události. 2024-01-15 10:30:00.000
event_type řetězec Typ události. Možné hodnoty jsou INSTANCE_LAUNCHING a STATE_TRANSITION. STATE_TRANSITION
instance_pool_id řetězec ID fondu instancí, pokud instance patří do fondu. 1107-555555-pool-abcd1234
cluster_id řetězec ID clusteru, na který je tato instance umístěná. Vyplní se pouze když state je INSTANCE_PLACED. Viz cluster_id podrobnosti. 0000-123456-xxxxxxxx
node_type řetězec Název typu uzlu. Odpovídá názvu typu instance od poskytovatele cloudu. Standard_D16s_v3
state řetězec Stav instance Viz Stavy instancí. INSTANCE_PLACED
availability_type řetězec Typ dostupnosti instance. Možné hodnoty jsou ON_DEMAND a SPOT (AWS, Azure) nebo ON_DEMAND a PREEMPTIBLE (GCP). ON_DEMAND

Stavy instancí

  • INSTANCE_LAUNCHING: Instance se inicializuje.
  • INSTANCE_READY: Instance je plně inicializovaná a připravená k použití, ale aktuálně se nepoužívá.
  • INSTANCE_PLACED: Instance se právě používá (připojený ke clusteru).
  • INSTANCE_TERMINATED: Instance je ukončena.

Kdy se cluster_id naplní?

Pole cluster_id se vyplní pouze v případě, že INSTANCE_PLACED je instance ve stavu. Pro všechny ostatní státy (INSTANCE_LAUNCHING, INSTANCE_READY, INSTANCE_TERMINATED), cluster_id je null. Toto chování je konzistentní pro instance ve fondu i bez fondu.

Tabulka instance_events obsahuje pouze události umístění pro výpočetní prostředky deklarativních kanálů Sparku pro všechny účely, úlohy a deklarativní kanály Lakeflow. Události umístění pro jiné úlohy, jako jsou sql warehouse, nejsou zahrnuty v této tabulce.

Schéma tabulek fondů instancí

Important

Tato systémová tabulka je ve verzi Public Preview.

Tabulka fondů instancí je pomalá tabulka dimenzí, která obsahuje úplnou historii konfigurací fondu instancí v průběhu času. Když se konfigurace změní, vygeneruje se nový řádek a logicky nahradí předchozí řádek.

cesta k tabulce: Tato systémová tabulka se nachází v system.compute.instance_pools.

Název sloupce Datový typ Popis Příklad
account_id řetězec ID účtu, ve kterém byl tento fond instancí vytvořen. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id řetězec ID pracovního prostoru, ve kterém byl tento fond instancí vytvořen. 1234567890123456
instance_pool_id řetězec ID fondu instancí. 1107-555555-pool-abcd1234
change_time časové razítko Časové razítko změny konfigurace fondu instancí 2024-01-15 10:30:00.000
create_time časové razítko Časové razítko vytvoření fondu instancí 2024-01-10 08:00:00.000
delete_time časové razítko Časové razítko odstranění fondu instancí Hodnota je null , pokud fond instancí není odstraněn. null
instance_pool_name řetězec Uživatelem definovaný název fondu instancí. My instance pool
tags mapa Uživatelem definované značky pro fond instancí (neobsahují výchozí značky). {"team":"data-engineering"}
node_type řetězec Typ uzlu používaný pro instance ve fondu. Odpovídá názvu typu instance od poskytovatele cloudu. Standard_D16s_v3
idle_instance_autotermination_minutes bigint Počet minut, po které jsou nečinné instance v mezipaměti fondu automaticky ukončeny po jejich nečinnosti. 120
min_idle_instances bigint Minimální počet nečinných instancí k udržení v poolu instancí. 2
max_capacity bigint Maximální počet nevyřízených instancí, které mají být ve fondu zachovány, včetně obou instancí používaných clustery a nečinných instancí. 10
enable_elastic_disk booleovský Automatické škálování místního úložiště: Pokud je povoleno, instance v tomto fondu dynamicky získávají další místo na disku, když pracovní procesy Sparku běží málo místa na disku. true
disk_spec struktura Specifikace disků, které jsou připojené ke všem kontejnerům Sparku. {
"disk_type": "PREMIUM_LRS",
"disk_count": 2,
"disk_size": 100
}
preloaded_docker_images pole Vlastní image Dockeru předem načtené do fondu []
preloaded_spark_version řetězec Předinstalovaná verze image Sparku pro fond, pokud je definovaná. 14.3.x-scala2.12
aws_attributes struktura Atributy související s fondy instancí spuštěnými v AWS null
azure_attributes struktura Atributy související s fondy instancí běžícími na Azure {
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": -1
}
gcp_attributes struktura Atributy související s fondy instancí spuštěnými v GCP null

Známá omezení

  • Výpočetní prostředky, které byly označeny jako odstraněné před 23. říjnem 2023, se v tabulce clusterů nezobrazují. To může vést k tomu, že sloučení z tabulky system.billing.usage neodpovídají záznamům v tabulce clusterů. Všechny aktivní výpočetní prostředky byly znovu vyplněny.
  • Tyto tabulky obsahují jen záznamy pro výpočty zaměřené na všeobecné účely a úlohy. Neobsahují záznamy pro výpočetní prostředky bez serveru ani pro sql warehouse.
  • Uzly, které běžely méně než 10 minut, se v tabulce node_timeline nemusí objevit.

Vzorové dotazy

K zodpovězení běžných otázek můžete použít následující ukázkové dotazy:

Poznámka:

Některé z těchto příkladů spojují tabulku clusteru s tabulkou system.billing.usage . Vzhledem k tomu, že fakturační záznamy jsou regionálně křížové a záznamy clusteru jsou specifické pro danou oblast, odpovídají fakturační záznamy záznamům clusteru pouze pro oblast, na kterou se dotazujete. Pokud chcete zobrazit záznamy z jiné oblasti, spusťte dotaz v této oblasti.

Připojení záznamů clusteru s nejnovějšími fakturačními záznamy

Tento dotaz vám pomůže porozumět útratě v průběhu času. Jakmile aktualizujete usage_start_time na nejaktuálnější fakturační období, vezmou nejnovější aktualizace fakturačních záznamů, aby se připojily k datům clusterů.

Každý záznam je přidružený k vlastníkovi clusteru během tohoto konkrétního spuštění. Pokud se tedy vlastník clusteru změní, náklady se přiřadí správnému vlastníkovi podle toho, kdy byl cluster používán.

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;

Identifikace výpočetních prostředků s nejvyšším průměrným využitím a nejvyšším využitím ve špičce

Identifikujte výpočetní prostředky pro všechny účely a úlohy, které mají nejvyšší průměrné využití procesoru a nejvyšší využití procesoru ve špičce.

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;

Získání nejnovější verze každého fondu instancí

Tabulka instance_pools je typu SCD2, kde místo aktualizace existujících záznamů se při každé změně vytvoří nový záznam. Pokud chcete získat nejnovější verzi, vezměte položku s největším change_time.

SELECT *
FROM system.compute.instance_pools
QUALIFY row_number() OVER (
  PARTITION BY workspace_id, instance_pool_id
  ORDER BY change_time DESC
) = 1;

Výpočet nečinnosti instance a aktivního času

Tento dotaz vypočítá celkovou dobu nečinnosti a aktivní čas pro každou instanci pomocí přechodů stavu z instance_events tabulky.

WITH instance_states AS (
  SELECT
    *,
    event_time AS start_time,
    lead(event_time) OVER (
      PARTITION BY workspace_id, instance_id
      ORDER BY event_time
    ) AS end_time
  FROM system.compute.instance_events
  WHERE event_type IN ('INSTANCE_LAUNCHING', 'STATE_TRANSITION')
)
SELECT
  workspace_id,
  instance_id,
  instance_pool_id,
  sum(if(state = 'INSTANCE_READY',
    TIMESTAMPDIFF(SECOND, start_time, end_time), 0)) / 60 AS idle_minutes,
  sum(if(state = 'INSTANCE_PLACED',
    TIMESTAMPDIFF(SECOND, start_time, end_time), 0)) / 60 AS active_minutes
FROM instance_states
GROUP BY workspace_id, instance_id, instance_pool_id;