Bilgisayar sistem tabloları başvuru kaynağı

Bu makalede, işlem sistemi tabloları için bir başvuru kılavuzu sağlanır. Bu tabloları, hesabınızdaki klasik çok amaçlı işlem, iş işlemleri ve Lakeflow işlem hatları işleminin etkinliğini ve ölçümlerini izlemek için kullanabilirsiniz. Bu klasik işlem tabloları şunlardır:

  • clusters: Hesabınızdaki işlem yapılandırmalarını kaydeder.
  • node_types: Donanım bilgileri de dahil olmak üzere şu anda kullanılabilir olan düğüm türlerinin her biri için tek bir kayıt içerir.
  • node_timeline: İşleminizin kullanım ölçümlerinin dakika dakika kayıtlarını içerir.
  • instance_events: Klasik işlem örneklerinin durum geçişlerini yakalar.
  • instance_pools: Hesabınızdaki örnek havuzu yapılandırmalarını kaydeder.

Küme tablosu şeması

Küme tablosu, çok amaçlı işlem, işler işlem, Lakeflow işlem hatları işlemi ve işlem hattı bakım işlemi için zaman içindeki işlem yapılandırmalarının tam geçmişini içeren yavaş değişen bir boyut tablosudur.

Tablo yolu: Bu sistem tablosu system.compute.clusters'de yer almaktadır.

Sütun adı Veri türü Açıklama Örnek
account_id Dize Bu kümenin oluşturulduğu hesabın kimliği. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id Dize Bu kümenin oluşturulduğu çalışma alanının kimliği. 1234567890123456
cluster_id Dize Bu kaydın ilişkilendirildiği kümenin kimliği. 0000-123456-crmpt124
cluster_name Dize Küme için kullanıcı tanımlı ad. My cluster
owned_by Dize Küme sahibinin kullanıcı adı. Varsayılan olarak küme oluşturucusu kullanılır, ancak Kümeler API'sini kullanarak değiştirilebilir. sample_user@email.com
create_time Tarih damgası Bu işlem tanımında yapılan değişikliğin zaman damgası. 2023-01-09 11:00:00.000
delete_time Tarih damgası Silinmiş kümenin zaman damgası. Küme silinmezse değer null olur. 2023-01-09 11:00:00.000
driver_node_type Dize Sürücü düğümü türü adı. Bu, bulut sağlayıcısındaki örnek türü adıyla eşleşir. Standard_D16s_v3
worker_node_type Dize Çalışan düğüm tipi adı. Bu, bulut sağlayıcısındaki örnek türü adıyla eşleşir. Standard_D16s_v3
worker_count bigint çalışan sayısı. Yalnızca sabit boyutlu kümeler için tanımlanır. 4
min_autoscale_workers bigint Ayarlanan en az çalışan sayısı. Bu alan yalnızca otomatik ölçeklendirme kümeleri için geçerlidir. 1
max_autoscale_workers bigint Ayarlanan en fazla çalışan sayısı. Bu alan yalnızca otomatik ölçeklendirme kümeleri için geçerlidir. 1
auto_termination_minutes bigint Yapılandırılan otomatik sonlandırma süresi. 120
enable_elastic_disk Boolean Disk otomatik ölçeklendirme etkinleştirme durumu. true
tags harita Küme için kullanıcı tanımlı etiketler (varsayılan etiketleri içermez). {"ResourceClass":"SingleNode"}
cluster_source Dize Kümenin kaynağı. UI veya API değerleri yalnızca tüm amaçlı işlemler için geçerlidir. Tüm iş hesabı JOB olarak günlüğe kaydedilir. İşlem hatları PIPELINE veya PIPELINE_MAINTENANCE. UI
init_scripts dizi Başlatma komut dosyaları için init yolları kümesi. "/Users/example@email.com
/files/scripts/install-python-pacakges.sh"
aws_attributes yapı AWS'ye özgü ayarlar. null
azure_attributes yapı Azure'a özgü ayarlar. {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes yapı GCP'ye özgü ayarlar. Bu alan boş olacaktır. null
driver_instance_pool_id Dize Sürücü bir örnek havuzunun üzerinde yapılandırılmışsa örnek havuzu kimliği. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id Dize Eğer çalışan bir örnek havuzunun üzerinde yapılandırılmışsa, Örnek Havuzu Kimliği. 1107-555555-crhod16-pool-DIdnjazB
dbr_version Dize Kümenin Databricks Çalışma Süresi. 14.x-snapshot-scala2.12
change_time Tarih damgası İşlem tanımında yapılan değişikliğin zaman damgası. 2023-01-09 11:00:00.000
change_date tarih Tarihi değiştirin. Saklama için kullanılır. 2023-01-09
data_security_mode Dize İşlem kaynağının erişim modu. Bkz. Erişim modu referansı. USER_ISOLATION
policy_id Dize Varsa, kümenin işlem ilkesinin kimliği. 1234F35636110A5B

Erişim modu referansı

Aşağıdaki tablo, sütunda data_security_mode yer alan olası değerleri çevirir. Sütun, belirli işlem hatları ve sistem tarafından oluşturulan kümeler için de olabilir null .

Değer Erişim modu
USER_ISOLATION Standart
SINGLE_USER Adanmış

Eski erişim modları aşağıdaki değerlerle kaydedilir:

Değer Erişim modu
LEGACY_PASSTHROUGH Kimlik bilgisi geçişi (paylaşılan)
LEGACY_SINGLE_USER Kimlik bilgisi geçişi (tek kullanıcı)
LEGACY_TABLE_ACL Özelleştirilmiş
NONE Paylaşılan yalıtım yok

Düğüm türleri tablo şeması

Düğüm türü tablosu, şu anda kullanılabilir olan düğüm türlerini temel donanım bilgileriyle yakalar.

Tablo yolu: Bu sistem tablosu system.compute.node_typeskonumunda bulunur.

Sütun adı Veri türü Açıklama Örnek
account_id Dize Bu kümenin oluşturulduğu hesabın kimliği. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type Dize Düğüm türünün benzersiz tanımlayıcısı. Standard_D16s_v3
core_count iki katı Örnek için vCPU sayısı. 48.0
memory_mb uzun Örnek için toplam bellek. 393216
gpu_count uzun Örnek için GPU sayısı. 0

Düğüm zaman çizelgesi tablosu şeması

Düğüm zaman çizelgesi tablosu, düğüm düzeyinde kaynak kullanım verilerini dakika ayrıntı düzeyinde yakalar. Her kayıt, örnek başına belirli bir dakika boyunca veri içerir. Bu tablo, hesabınızdaki tüm amaçlı işlem, iş işlemleri, Lakeflow işlem hatları işlem ve işlem hattı bakım işlem kaynakları için düğüm zaman çizelgelerini yakalar.

Tablo yolu: Bu sistem tablosu system.compute.node_timelinekonumunda bulunur.

Sütun adı Veri türü Açıklama Örnek
account_id Dize Bu işlem kaynağının çalıştığı hesabın kimliği. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id Dize Bu işlem kaynağının çalıştığı çalışma alanının kimliği. 1234567890123456
cluster_id Dize İşlem kaynağının kimliği. 0000-123456-crmpt124
instance_id Dize Belirli bir örneğin tanımlayıcısı. i-1234a6c12a2681234
start_time Tarih damgası Kayıt için başlangıç saati UTC'ye göre. 2024-07-16T12:00:00Z
end_time Tarih damgası Utc'de kaydın bitiş saati. 2024-07-16T13:00:00Z
driver Boolean İster örnek bir sürücü düğümü ister işçi düğümü olsun. true
cpu_user_percent iki katı CPU'nun userland'da harcadığı sürenin yüzdesi. 34.76163817234407
cpu_system_percent iki katı CPU'nun çekirdekte harcadığı sürenin yüzdesi. 1.0895310279488264
cpu_wait_percent iki katı CPU'nun G/Ç beklerken harcadığı sürenin yüzdesi. 0.03445157400629276
mem_used_percent iki katı İşlemde çalışan arka plan işlemleri tarafından kullanılan bellek de dahil olmak üzere, zaman aralığında kullanılan işlem belleğinin yüzdesi. 45.34858216779041
mem_swap_percent iki katı Bellek değiştirme ile ilişkilendirilen bellek kullanımı yüzdesi. 0.014648443087939
network_sent_bytes bigint Ağ trafiğinde gönderilen bayt sayısı. 517376
network_received_bytes bigint Ağ trafiğinden alınan bayt sayısı. 179234
disk_free_bytes_per_mount_point harita Bağlama noktasına göre gruplandırılmış disk kullanımı. Bu, yalnızca işlem çalışırken sağlanan kısa süreli depolamadır. {"/var/lib/lxc":123455551234,"/":
123456789123,"/local_disk0":123412341234}
node_type Dize Düğüm türünün adı. Bu, bulut sağlayıcısındaki örnek türü adıyla eşleşir. Standard_D16s_v3
private_ip Dize Düğüme atanmış olan özel IP adresi. 10.0.0.42

Örnek olayları tablosu şeması

Important

Bu sistem tablosu Genel Önizleme aşamasındadır.

Örnek olayları tablosu, klasik işlem örneklerinin durum geçişlerini yakalar. Her satır, tek bir örnek için durum değişikliğini temsil eder. Bu tablo, hesabınızdaki tüm çalışma alanlarından aynı bulut bölgesine dağıtılan tüm çalışma alanlarındaki tüm amaçlı işlem, iş hesaplama ve Lakeflow işlem hatları için kayıtları içerir.

Tablo yolu: Bu sistem tablosu system.compute.instance_eventskonumunda bulunur.

Sütun adı Veri türü Açıklama Örnek
account_id Dize Bu örneğin başlatıldığı hesabın kimliği. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id Dize Bu örneğin başlatıldığı çalışma alanının kimliği. 1234567890123456
instance_id Dize Örneğin kimliği. i-0a1b2c3d4e5f67890
event_time Tarih damgası Olayın zaman damgası. 2024-01-15 10:30:00.000
event_type Dize Etkinlik türü. Olası değerler INSTANCE_LAUNCHING ve STATE_TRANSITION şeklindedir. STATE_TRANSITION
instance_pool_id Dize Örnek bir havuza aitse örnek havuzu kimliği. 1107-555555-pool-abcd1234
cluster_id Dize Bu örneğin yerleştirildiği kümenin kimliği. Yalnızca state, INSTANCE_PLACED olduğunda doldurulur. Cluster_id ayrıntılarına bakın. 0000-123456-xxxxxxxx
node_type Dize Düğüm türünün adı. Bu, bulut sağlayıcısındaki örnek türü adıyla eşleşir. Standard_D16s_v3
state Dize Örnek durumu. Bkz . Örnek durumları. INSTANCE_PLACED
availability_type Dize Örneğin kullanılabilirlik türü. Olası değerler ON_DEMAND ve SPOT (AWS, Azure) veya ON_DEMAND ve PREEMPTIBLE (GCP) değerleridir. ON_DEMAND

Örnek durumları

  • INSTANCE_LAUNCHING: Örnek başlatılıyor.
  • INSTANCE_READY: Örnek tamamen başlatılır ve kullanılmaya hazırdır, ancak şu anda kullanımda değildir.
  • INSTANCE_PLACED: Örnek şu anda kullanımda (kümeye katılmış).
  • INSTANCE_TERMINATED: Örnek sonlandırıldı.

cluster_id ne zaman doldurulur?

Alan cluster_id yalnızca örnek INSTANCE_PLACED durumunda olduğunda doldurulur. Diğer tüm eyaletler için (INSTANCE_LAUNCHING, INSTANCE_READY), INSTANCE_TERMINATEDcluster_idşeklindedirnull. Bu davranış hem havuza alınan hem de havuza alınan olmayan örnekler için tutarlıdır.

Tablo instance_events yalnızca tüm amaçlı, işler ve Lakeflow işlem hatları için yerleştirme olaylarını içerir. SQL ambarları gibi diğer iş yükleri için yerleştirme olayları bu tabloya dahil değildir.

Örnek havuzları tablo şeması

Important

Bu sistem tablosu Genel Önizleme aşamasındadır.

Örnek havuzları tablosu, zaman içindeki örnek havuzu yapılandırmalarının tam geçmişini içeren yavaş değişen bir boyut tablosudur. Yapılandırma değiştiğinde, mantıksal olarak öncekinin yerini alan yeni bir satır yayılır.

Tablo yolu: Bu sistem tablosu system.compute.instance_poolskonumunda bulunur.

Sütun adı Veri türü Açıklama Örnek
account_id Dize Bu örnek havuzunun oluşturulduğu hesabın kimliği. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id Dize Bu örnek havuzunun oluşturulduğu çalışma alanının kimliği. 1234567890123456
instance_pool_id Dize Örnek havuzunun kimliği. 1107-555555-pool-abcd1234
change_time Tarih damgası Örnek havuzu yapılandırmasında değişiklik zaman damgası. 2024-01-15 10:30:00.000
create_time Tarih damgası Örnek havuzu oluşturma zaman damgası. 2024-01-10 08:00:00.000
delete_time Tarih damgası Örnek havuzu silme zaman damgası. Değer, null örnek havuzu silinmezse olur. null
instance_pool_name Dize Örnek havuzunun kullanıcı tanımlı adı. My instance pool
tags harita Örnek havuzu için kullanıcı tanımlı etiketler (varsayılan etiketleri içermez). {"team":"data-engineering"}
node_type Dize Havuzdaki örnekler için kullanılan düğüm türü. Bu, bulut sağlayıcısındaki örnek türü adıyla eşleşir. Standard_D16s_v3
idle_instance_autotermination_minutes bigint Havuz önbelleğindeki boştaki örneklerin devre dışı bırakıldıktan sonra otomatik olarak sonlandırıldığı dakika sayısı. 120
min_idle_instances bigint Instance havuzunda tutulacak en az boştaki instance sayısı. 2
max_capacity bigint Kümeler tarafından kullanılan ve boştaki örnekler de dahil olmak üzere, havuzda tutulacak en fazla açık kalan örnek sayısı. 10
enable_elastic_disk Boolean Yerel DepolamaYı Otomatik Ölçeklendirme: Etkinleştirildiğinde, Spark çalışanlarının disk alanı azaldığında bu havuzdaki örnekler dinamik olarak ek disk alanı alır. true
disk_spec yapı Tüm Spark kapsayıcılarına bağlı disklerin belirtimi. {
"disk_type": "PREMIUM_LRS",
"disk_count": 2,
"disk_size": 100
}
preloaded_docker_images dizi Havuza önceden yüklenmiş özel Docker görüntüleri. []
preloaded_spark_version Dize Tanımlanmışsa havuz için önceden yüklenmiş Spark görüntüsü sürümü. 14.3.x-scala2.12
aws_attributes yapı AWS üzerinde çalışan örnek havuzlarıyla ilgili öznitelikler. null
azure_attributes yapı Azure üzerinde çalışan örnek havuzlarıyla ilgili öznitelikler. {
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": -1
}
gcp_attributes yapı GCP üzerinde çalışan örnek havuzlarıyla ilgili öznitelikler. null

Bilinen sınırlamalar

  • 23 Ekim 2023'e kadar silinmiş olarak işaretlenen işlem kaynakları kümeler tablosunda görünmez. Bu, system.billing.usage tablosundan birleştirmelerin kümeler tablosundaki kayıtlarla eşleşmemesiyle sonuçlanabilir. Tüm etkin işlem kaynakları yedeklendi.
  • Bu tablolar yalnızca genel amaçlı ve iş hesaplama için kayıtları içerir. Sunucusuz işlem veya SQL ambarları için kayıtlar içermezler.
  • 10 dakikadan kısa bir süre boyunca çalıştırılmayan düğümler node_timeline tablosunda görünmeyebilir.

Örnek sorgular

Sık sorulan soruları yanıtlamak için aşağıdaki örnek sorguları kullanabilirsiniz:

Not

Bu örneklerden bazıları küme tablosunu system.billing.usage tablosuyla birleştirir. Bu nedenle, faturalama kayıtları bölgeye özgü olduğundan ve küme kayıtları bölge-spesifik olduğundan, faturalama kayıtları yalnızca sorguladığınız bölge için küme kayıtlarıyla eşleşir. Başka bir bölgedeki kayıtları görmek için lütfen sorguyu bu bölgede yürütür.

En son faturalama kayıtlarıyla küme kayıtlarını birleştirme

Bu sorgu, zaman içindeki harcamaları anlamanıza yardımcı olabilir. usage_start_time en güncel faturalama dönemine güncelleştirdiğinizde, küme verilerine katılmak için faturalama kayıtlarında yapılan en son güncelleştirmeleri alır.

Her kayıt, o belirli çalıştırma sırasında küme sahibiyle ilişkilendirilir. Bu nedenle, küme sahibi değişirse maliyetler, kümenin ne zaman kullanıldığına bağlı olarak doğru sahipe yuvarlanır.

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;

En yüksek ortalama kullanıma ve maksimum kullanıma sahip hesaplama kaynaklarını belirleyin.

En yüksek ortalama CPU kullanımı ve en yüksek zirve CPU kullanımı olan çok amaçlı ve görev amaçlı hesaplamayı belirleyin.

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;

Her örnek havuzunun en son sürümünü alma

Tablo instance_pools SCD2 türüdür; burada mevcut kayıtları güncelleştirmek yerine her değişiklik yapıldığında yeni bir kayıt oluşturulur. En son sürümü almak için en büyük change_timeile girdisini alın.

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

Boşta ve etkin zamanı hesaplama

Bu sorgu, tablodan durum geçişlerini instance_events kullanarak her örnek için toplam boşta kalma süresini ve etkin süreyi hesaplar.

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;