Verwijzing naar computersysteemtabel

Dit artikel bevat een naslaghandleiding voor de rekensysteemtabellen. U kunt deze tabellen gebruiken om de activiteit en metrische gegevens van klassieke all-purpose compute, jobs compute en Lakeflow Spark Declarative Pipelines compute in uw account te bewaken. Deze klassieke rekentabellen zijn onder andere:

  • clusters: legt de configuraties voor berekeningen in uw account vast.
  • node_types: Bevat één record voor elk van de momenteel beschikbare knooppunttypen, inclusief hardwaregegevens.
  • node_timeline: Bevat minuut-per-minuut-records van de metrische gegevens over het gebruik van uw rekenproces.
  • instance_events: legt statusovergangen vast van klassieke rekeninstanties.
  • instance_pools: registreert configuraties van exemplaarpools in uw account.

Clustertabelschema

De clustertabel is een langzaam veranderende dimensietabel die de volledige geschiedenis van rekenconfiguraties in de loop van de tijd bevat voor berekeningen voor alle doeleinden, taken berekenen, declaratieve pijplijnen berekenen van Lakeflow Spark en berekeningen voor pijplijnonderhoud.

tabelpad: deze systeemtabel bevindt zich op system.compute.clusters

Kolomnaam Gegevenstype Beschrijving Voorbeeld
account_id tekenreeks Id van het account waarin dit cluster is gemaakt. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id tekenreeks Id van de werkruimte waarin dit cluster is gemaakt. 1234567890123456
cluster_id tekenreeks Id van het cluster waaraan deze record is gekoppeld. 0000-123456-crmpt124
cluster_name tekenreeks Door de gebruiker gedefinieerde naam voor het cluster. My cluster
owned_by tekenreeks Gebruikersnaam van de eigenaar van het cluster. Standaard ingesteld op de maker van het cluster, maar kan worden gewijzigd via de Clusters-API. sample_user@email.com
create_time tijdstempel Tijdstempel van de wijziging in deze rekendefinitie. 2023-01-09 11:00:00.000
delete_time tijdstempel Tijdstempel van het moment waarop het cluster is verwijderd. De waarde is null als het cluster niet wordt verwijderd. 2023-01-09 11:00:00.000
driver_node_type tekenreeks Naam van het type besturingsknooppunt. Dit komt overeen met de naam van het exemplaartype van de cloudprovider. Standard_D16s_v3
worker_node_type tekenreeks Naam van werkknooppunttype. Dit komt overeen met de naam van het exemplaartype van de cloudprovider. Standard_D16s_v3
worker_count Bigint Aantal werknemers. Alleen gedefinieerd voor clusters met een vaste grootte. 4
min_autoscale_workers Bigint Het ingestelde minimumaantal werknemers. Dit veld is alleen geldig voor autoscaling-clusters. 1
max_autoscale_workers Bigint Het ingestelde maximum aantal werknemers. Dit veld is alleen geldig voor autoscaling-clusters. 1
auto_termination_minutes Bigint De geconfigureerde duur van automatischeterminatie. 120
enable_elastic_disk booleaan Status van de inschakeling van automatische schaling voor schijf. true
tags kaart Door de gebruiker gedefinieerde tags voor het cluster (bevat geen standaardtags). {"ResourceClass":"SingleNode"}
cluster_source tekenreeks Bron van het cluster. De UI of API waarden zijn alleen van toepassing op berekeningen voor alle doeleinden. Alle taak berekenen wordt geregistreerd als JOB. Pijplijnen zijn PIPELINE of PIPELINE_MAINTENANCE. UI
init_scripts gegevensreeks Een verzameling van paden voor init-scripts. "/Users/example@email.com
/files/scripts/install-python-pacakges.sh"
aws_attributes Struct SPECIFIEKE AWS-instellingen. null
azure_attributes Struct Azure specifieke instellingen. {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes Struct Specifieke GCP-instellingen. Dit veld is leeg. null
driver_instance_pool_id tekenreeks Exemplaargroep-ID als het stuurprogramma is geconfigureerd binnen een exemplaargroep. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id tekenreeks Exemplaargroep-ID indien de werknemer op een exemplaargroep is geconfigureerd. 1107-555555-crhod16-pool-DIdnjazB
dbr_version tekenreeks De Databricks Runtime van het cluster. 14.x-snapshot-scala2.12
change_time tijdstempel Tijdstempel van wijziging in de berekeningsdefinitie. 2023-01-09 11:00:00.000
change_date datum Datum wijzigen. Wordt gebruikt voor retentie. 2023-01-09
data_security_mode tekenreeks De toegangsmodus van de rekenresource. Zie referentie voor toegangsmodes. USER_ISOLATION
policy_id tekenreeks Id van het rekenbeleid van het cluster, indien van toepassing. 1234F35636110A5B

Naslaginformatie over de toegangsmodus

In de volgende tabel worden de mogelijke waarden in de data_security_mode kolom vertaald. De kolom kan ook voor bepaalde pijplijnen en door het systeem gemaakte clusters zijn null .

Waarde Toegangsmodus
USER_ISOLATION Standaard
SINGLE_USER Toegewijd

De verouderde toegangsmodi worden vastgelegd met de volgende waarden:

Waarde Toegangsmodus
LEGACY_PASSTHROUGH Inloggegevensdoorvoer (gedeeld)
LEGACY_SINGLE_USER Credential-doorgifte (enkele gebruiker)
LEGACY_TABLE_ACL Op maat gemaakt
NONE Geen isolatie gedeeld

tabelschema voor knooppunttypen

De tabel van het knooppunttype legt de momenteel beschikbare knooppunttypen vast met de basishardwaregegevens.

tabelpad: deze systeemtabel bevindt zich op system.compute.node_types.

Kolomnaam Gegevenstype Beschrijving Voorbeeld
account_id tekenreeks Id van het account waarin dit cluster is gemaakt. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type tekenreeks Unieke id voor knooppunttype. Standard_D16s_v3
core_count dubbel Aantal vCPU's voor de instantie. 48.0
memory_mb lang Totaal geheugen voor de instance. 393216
gpu_count lang Aantal GPU's voor de instantie. 0

tijdlijntabelschema voor knooppunten

De tijdlijntabel voor knooppunten legt gegevens over resourcegebruik op knooppuntniveau vast op minuutgranulariteit. Elke record bevat gegevens voor een bepaalde minuut per instantie. In deze tabel worden knooppunttijdlijnen vastgelegd voor de rekenresources voor algemeen gebruik, taakberekening, declaratieve pijplijnen van Lakeflow Spark en rekenresources voor onderhoud van pijplijnen in uw account.

tabelpad: deze systeemtabel bevindt zich op system.compute.node_timeline.

Kolomnaam Gegevenstype Beschrijving Voorbeeld
account_id tekenreeks Id van het account waarop deze rekenresource wordt uitgevoerd. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id tekenreeks Id van de werkruimte waarop deze rekenresource wordt uitgevoerd. 1234567890123456
cluster_id tekenreeks Id van de rekenresource. 0000-123456-crmpt124
instance_id tekenreeks ID voor de specifieke instantie. i-1234a6c12a2681234
start_time tijdstempel Begintijd voor de record in UTC. 2024-07-16T12:00:00Z
end_time tijdstempel Eindtijd voor de record in UTC. 2024-07-16T13:00:00Z
driver booleaan Of het exemplaar een besturingsknooppunt of werkknooppunt is. true
cpu_user_percent dubbel Percentage tijd dat de CPU in userland heeft besteed. 34.76163817234407
cpu_system_percent dubbel Percentage tijd dat de CPU in de kernel heeft besteed. 1.0895310279488264
cpu_wait_percent dubbel Percentage tijd dat de CPU heeft gewacht op I/O. 0.03445157400629276
mem_used_percent dubbel Percentage van het rekengeheugen dat tijdens de periode is gebruikt (inclusief geheugen dat wordt gebruikt door achtergrondprocessen die op de berekening worden uitgevoerd). 45.34858216779041
mem_swap_percent dubbel Percentage geheugengebruik dat is toegeschreven aan het wisselen van geheugen. 0.014648443087939
network_sent_bytes Bigint Het aantal bytes dat wordt verzonden in netwerkverkeer. 517376
network_received_bytes Bigint Het aantal ontvangen bytes van netwerkverkeer. 179234
disk_free_bytes_per_mount_point kaart Het schijfgebruik gegroepeerd op koppelpunt. Dit is tijdelijke opslag die alleen is ingericht terwijl de berekening wordt uitgevoerd. {"/var/lib/lxc":123455551234,"/":
123456789123,"/local_disk0":123412341234}
node_type tekenreeks De naam van het knooppunttype. Dit komt overeen met de naam van het exemplaartype van de cloudprovider. Standard_D16s_v3
private_ip tekenreeks Het privé-IP-adres dat is toegewezen aan het knooppunt. 10.0.0.42

Schema van tabel met instantie-gebeurtenissen

Important

Deze systeemtabel bevindt zich in Openbare Preview.

In de tabel met instantie gebeurtenissen worden statusovergangen van klassieke rekeninstanties vastgelegd. Elke rij vertegenwoordigt een statuswijziging voor één exemplaar. Deze tabel bevat records voor berekeningen voor alle doeleinden, taken en declaratieve pijplijnen van Lakeflow Spark vanuit alle werkruimten in uw account die zijn geïmplementeerd in dezelfde cloudregio.

tabelpad: deze systeemtabel bevindt zich op system.compute.instance_events.

Kolomnaam Gegevenstype Beschrijving Voorbeeld
account_id tekenreeks Id van het account waarop dit exemplaar wordt gestart. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id tekenreeks Id van de werkruimte waarin dit exemplaar wordt gestart. 1234567890123456
instance_id tekenreeks Id van het exemplaar. i-0a1b2c3d4e5f67890
event_time tijdstempel Tijdstempel van de gebeurtenis. 2024-01-15 10:30:00.000
event_type tekenreeks Gebeurtenistype. Mogelijke waarden zijn INSTANCE_LAUNCHING en STATE_TRANSITION. STATE_TRANSITION
instance_pool_id tekenreeks Exemplaargroep-id als het exemplaar deel uitmaakt van een pool. 1107-555555-pool-abcd1234
cluster_id tekenreeks De id van het cluster waarop dit exemplaar is geplaatst. Alleen ingevuld wanneer state dit is INSTANCE_PLACED. Zie cluster_id details. 0000-123456-xxxxxxxx
node_type tekenreeks De naam van het knooppunttype. Dit komt overeen met de naam van het exemplaartype van de cloudprovider. Standard_D16s_v3
state tekenreeks Instantiestatus. Zie Exemplaarstatussen. INSTANCE_PLACED
availability_type tekenreeks Beschikbaarheidstype van het exemplaar. Mogelijke waarden zijn ON_DEMAND en SPOT (AWS, Azure) of ON_DEMAND en PREEMPTIBLE (GCP). ON_DEMAND

Exemplaarstatussen

  • INSTANCE_LAUNCHING: het exemplaar wordt geïnitialiseerd.
  • INSTANCE_READY: Het exemplaar is volledig geïnitialiseerd en gereed om te worden gebruikt, maar is momenteel niet in gebruik.
  • INSTANCE_PLACED: Het exemplaar is momenteel in gebruik (gekoppeld aan een cluster).
  • INSTANCE_TERMINATED: Het exemplaar wordt beëindigd.

Wanneer wordt cluster_id ingevuld?

Het cluster_id veld wordt alleen ingevuld wanneer het exemplaar de INSTANCE_PLACED status heeft. Voor alle andere staten (INSTANCE_LAUNCHING, INSTANCE_READY, INSTANCE_TERMINATED), cluster_id is null. Dit gedrag is consistent voor zowel gegroepeerde als niet-poolexemplaren.

De instance_events tabel bevat alleen plaatsingsgebeurtenissen voor alle doeleinden, taken en declaratieve pijplijnen van Lakeflow Spark. Plaatsingsgebeurtenissen voor andere workloads, zoals SQL-warehouses, worden niet opgenomen in deze tabel.

Tabelschema exemplaargroepen

Important

Deze systeemtabel bevindt zich in Openbare Preview.

De tabel exemplaarpools is een langzaam veranderende dimensietabel die de volledige geschiedenis van de configuraties van exemplaargroepen in de loop van de tijd bevat. Wanneer een configuratie wordt gewijzigd, wordt er een nieuwe rij verzonden, waarbij de vorige logisch wordt vervangen.

tabelpad: deze systeemtabel bevindt zich op system.compute.instance_pools.

Kolomnaam Gegevenstype Beschrijving Voorbeeld
account_id tekenreeks Id van het account waarin deze exemplaargroep is gemaakt. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id tekenreeks Id van de werkruimte waarin deze exemplaarpool is gemaakt. 1234567890123456
instance_pool_id tekenreeks Id van de exemplaargroep. 1107-555555-pool-abcd1234
change_time tijdstempel Tijdstempel van wijziging in exemplaargroepconfiguratie. 2024-01-15 10:30:00.000
create_time tijdstempel Tijdstempel van het maken van exemplaarpools. 2024-01-10 08:00:00.000
delete_time tijdstempel Tijdstempel van het verwijderen van exemplaargroepen. De waarde is null als de exemplaargroep niet wordt verwijderd. null
instance_pool_name tekenreeks Door de gebruiker gedefinieerde naam van de exemplaargroep. My instance pool
tags kaart Door de gebruiker gedefinieerde tags voor de exemplaargroep (bevat geen standaardtags). {"team":"data-engineering"}
node_type tekenreeks Het knooppunttype dat wordt gebruikt voor exemplaren in de pool. Dit komt overeen met de naam van het exemplaartype van de cloudprovider. Standard_D16s_v3
idle_instance_autotermination_minutes Bigint Het aantal minuten dat niet-actieve exemplaren in de poolcache automatisch worden beëindigd nadat ze inactief zijn. 120
min_idle_instances Bigint Minimaal aantal niet-actieve exemplaren dat in de exemplaarpool moet worden bewaard. 2
max_capacity Bigint Maximum aantal uitstaande instanties dat in de pool moet worden gehouden, inclusief zowel instanties die worden gebruikt door clusters als niet-actieve instanties. 10
enable_elastic_disk booleaan Lokale opslag automatisch schalen: wanneer deze functie is ingeschakeld, verkrijgen exemplaren in deze pool dynamisch extra schijfruimte wanneer Spark-werkrollen weinig schijfruimte hebben. true
disk_spec Struct De specificatie van de schijven die zijn gekoppeld aan alle Spark-containers. {
"disk_type": "PREMIUM_LRS",
"disk_count": 2,
"disk_size": 100
}
preloaded_docker_images gegevensreeks Aangepaste Docker-installatiekopieën die vooraf in de pool zijn geladen. []
preloaded_spark_version tekenreeks Vooraf geladen Versie van Spark-installatiekopieën voor de pool, indien gedefinieerd. 14.3.x-scala2.12
aws_attributes Struct Kenmerken met betrekking tot exemplaargroepen die worden uitgevoerd op AWS. null
azure_attributes Struct Kenmerken met betrekking tot exemplaargroepen die worden uitgevoerd op Azure. {
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": -1
}
gcp_attributes Struct Kenmerken met betrekking tot exemplaargroepen die worden uitgevoerd op GCP. null

Bekende beperkingen

  • Rekenresources die gemarkeerd waren als verwijderd vóór 23 oktober 2023, worden niet weergegeven in de clustertabel. Dit kan leiden tot joins uit de system.billing.usage-tabel die niet overeenkomen met de records in de clustertabel. Alle actieve rekenresources zijn weer ingevuld.
  • Deze tabellen bevatten alleen records voor generieke en taakcomputing. Ze bevatten geen records voor serverloze berekeningen of SQL-warehouses.
  • Knooppunten die minder dan 10 minuten hebben gedraaid, worden mogelijk niet weergegeven in de node_timeline tabel.

Voorbeeldqueries

U kunt de volgende voorbeeldquery's gebruiken om veelgestelde vragen te beantwoorden:

Notitie

Sommige van deze voorbeelden voegen de clustertabel samen met de system.billing.usage tabel. Omdat factureringsrecords regio-overschrijdend en clusterrecords zijn, komen factureringsrecords alleen overeen met clusterrecords voor de regio waarin u een query uitvoert. Als u records uit een andere regio wilt zien, voert u de query in die regio uit.

Clusterrecords koppelen met de meest recente factureringsrecords

Deze query kan u helpen inzicht te hebben in de uitgaven in de loop van de tijd. Zodra u de usage_start_time hebt bijgewerkt naar de meest recente factureringsperiode, worden de laatste updates voor de factureringsgegevens opgehaald om te worden samengevoegd tot clustergegevens.

Elke record is gekoppeld aan de eigenaar van het cluster tijdens die specifieke uitvoering. Dus als de eigenaar van het cluster verandert, worden de kosten doorberekend naar de juiste eigenaar op basis van het gebruiksmoment van het 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;

De rekenresources identificeren met het hoogste gemiddelde gebruik en piekgebruik

Identificeer het rekenproces voor alle doeleinden en taken met het hoogste gemiddelde CPU-gebruik en het hoogste PIEK-CPU-gebruik.

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;

De meest recente versie van elke exemplaargroep ophalen

De instance_pools tabel is SCD2-type, waarbij in plaats van bestaande records een nieuwe record wordt gemaakt telkens wanneer er een wijziging wordt aangebracht. Als u de meest recente versie wilt ophalen, neemt u de vermelding met het grootste 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;

De niet-actieve en actieve tijd van het exemplaar berekenen

Deze query berekent de totale inactieve tijd en de actieve tijd voor elk exemplaar met behulp van statusovergangen uit de instance_events tabel.

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;