Referensi tabel sistem komputer

Artikel ini memberi Anda panduan referensi untuk tabel sistem komputasi. Anda dapat menggunakan tabel ini untuk memantau aktivitas dan metrik komputasi serba guna klasik, komputasi pekerjaan, dan komputasi alur Lakeflow di akun Anda. Tabel komputasi klasik ini meliputi:

  • clusters: Mencatat konfigurasi komputasi di akun Anda.
  • node_types: Menyertakan satu rekaman untuk setiap jenis node yang saat ini tersedia, termasuk informasi perangkat keras.
  • node_timeline: Menyertakan catatan menit demi menit metrik pemanfaatan komputasi Anda.
  • instance_events: Menangkap transisi status instans komputasi klasik.
  • instance_pools: Merekam konfigurasi kumpulan instans di akun Anda.

Skema kluster tabel

Tabel kluster adalah tabel dimensi yang berubah lambat yang berisi riwayat lengkap konfigurasi komputasi dari waktu ke waktu untuk komputasi serba guna, komputasi pekerjaan, komputasi alur Lakeflow, dan komputasi pemeliharaan alur.

Jalur tabel: Tabel sistem ini terletak di system.compute.clusters

Nama kolom Jenis data Deskripsi Contoh
account_id string ID akun tempat kluster ini dibuat. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id string ID ruang kerja tempat kluster ini dibuat. 1234567890123456
cluster_id string ID kluster yang dikaitkan dengan rekaman ini. 0000-123456-crmpt124
cluster_name string Nama yang ditentukan pengguna untuk kluster. My cluster
owned_by string Nama pengguna pemilik kluster. Pengaturan bawaan adalah pembuat klaster, tetapi dapat diubah melalui API Klaster. sample_user@email.com
create_time stempel waktu Tanda waktu perubahan pada definisi komputasi ini. 2023-01-09 11:00:00.000
delete_time stempel waktu Tanda waktu saat kluster dihapus. Nilainya adalah null jika kluster tidak dihapus. 2023-01-09 11:00:00.000
driver_node_type string Nama tipe node driver. Ini cocok dengan nama jenis instans dari penyedia cloud. Standard_D16s_v3
worker_node_type string Nama tipe node pekerja. Ini cocok dengan nama jenis instans dari penyedia cloud. Standard_D16s_v3
worker_count bigint Jumlah pekerja. Ditentukan hanya untuk kluster ukuran tetap. 4
min_autoscale_workers bigint Jumlah minimum pekerja yang ditetapkan. Bidang ini hanya valid untuk kluster penskalaan otomatis. 1
max_autoscale_workers bigint Jumlah maksimum pekerja yang ditetapkan. Bidang ini hanya valid untuk kluster penskalaan otomatis. 1
auto_termination_minutes bigint Durasi penghentian otomatis yang dikonfigurasi. 120
enable_elastic_disk Boolean Status pengaktifan penskalaan otomatis disk. true
tags memetakan Tag yang ditentukan pengguna untuk kluster (tidak menyertakan tag default). {"ResourceClass":"SingleNode"}
cluster_source string Sumber kluster. Nilai UI atau API hanya berlaku untuk komputasi semua tujuan. Semua perhitungan tugas dicatat sebagai JOB. Alur adalah PIPELINE atau PIPELINE_MAINTENANCE. UI
init_scripts array Kumpulan jalur untuk skrip inisialisasi. "/Users/example@email.com
/files/scripts/install-python-pacakges.sh"
aws_attributes struktur Pengaturan khusus AWS. null
azure_attributes struktur Azure pengaturan tertentu. {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes struktur Pengaturan khusus Google Cloud Platform. Bidang ini akan kosong. null
driver_instance_pool_id string ID kumpulan instans jika driver dikonfigurasi berdasarkan kumpulan instans. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id string ID Kumpulan Instans jika pekerja dikonfigurasi di atas kumpulan instans. 1107-555555-crhod16-pool-DIdnjazB
dbr_version string Runtime Databricks untuk kluster. 14.x-snapshot-scala2.12
change_time stempel waktu Tanda waktu perubahan pada definisi komputasi. 2023-01-09 11:00:00.000
change_date tanggal Ubah tanggal. Digunakan untuk penyimpanan. 2023-01-09
data_security_mode string Mode akses sumber daya komputasi. Lihat Referensi Mode Akses. USER_ISOLATION
policy_id string ID kebijakan komputasi kluster, jika berlaku. 1234F35636110A5B

Referensi mode akses

Tabel berikut menerjemahkan kemungkinan nilai yang terkandung dalam data_security_mode kolom. Kolom juga dapat berupa null untuk alur tertentu dan kluster yang dibuat oleh sistem.

Nilai Mode akses
USER_ISOLATION Standar
SINGLE_USER Berdedikasi

Mode akses warisan direkam dengan nilai berikut:

Nilai Mode akses
LEGACY_PASSTHROUGH Penyampaian kredensial (berbagi)
LEGACY_SINGLE_USER Penerusan kredensial (satu pengguna)
LEGACY_TABLE_ACL Kustom
NONE Tidak ada isolasi yang dibagikan

Skema jenis node dalam tabel

Tabel jenis node menangkap jenis node yang saat ini tersedia dengan informasi perangkat keras dasarnya.

Jalur tabel: Tabel sistem ini terletak di system.compute.node_types.

Nama kolom Jenis data Deskripsi Contoh
account_id string ID akun tempat kluster ini dibuat. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type string Pengidentifikasi unik untuk jenis node. Standard_D16s_v3
core_count ganda Jumlah virtual CPU untuk instance. 48.0
memory_mb panjang/lama Memori total untuk instance. 393216
gpu_count panjang/lama Jumlah GPU untuk instance. 0

Skema tabel garis waktu simpul

Tabel linimasa simpul merekam data pemanfaatan sumber daya tingkat simpul dengan granularitas menit. Setiap rekaman berisi data untuk menit waktu tertentu per kejadian. Tabel ini menangkap garis waktu simpul untuk komputasi serba guna, komputasi pekerjaan, komputasi alur Lakeflow, dan sumber daya komputasi pemeliharaan alur di akun Anda.

Jalur tabel: Tabel sistem ini terletak di system.compute.node_timeline.

Nama kolom Jenis data Deskripsi Contoh
account_id string ID akun tempat sumber daya komputasi ini berjalan. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id string ID ruang kerja tempat sumber daya komputasi ini berjalan. 1234567890123456
cluster_id string ID sumber daya komputasi. 0000-123456-crmpt124
instance_id string ID untuk instance tertentu. i-1234a6c12a2681234
start_time stempel waktu Waktu mulai untuk rekaman di UTC. 2024-07-16T12:00:00Z
end_time stempel waktu Waktu akhir rekaman dalam UTC. 2024-07-16T13:00:00Z
driver Boolean Apakah instans tersebut adalah node pengemudi atau node pekerja. true
cpu_user_percent ganda Persentase waktu yang dihabiskan CPU di userland. 34.76163817234407
cpu_system_percent ganda Persentase waktu yang dihabiskan CPU dalam kernel. 1.0895310279488264
cpu_wait_percent ganda Persentase waktu yang dihabiskan CPU untuk menunggu I/O. 0.03445157400629276
mem_used_percent ganda Persentase memori komputasi yang digunakan selama periode waktu (termasuk memori yang digunakan oleh proses latar belakang yang berjalan pada komputasi). 45.34858216779041
mem_swap_percent ganda Persentase penggunaan memori yang dikaitkan dengan pertukaran memori. 0.014648443087939
network_sent_bytes bigint Jumlah byte yang dikirim dalam lalu lintas jaringan. 517376
network_received_bytes bigint Jumlah byte yang diterima dari lalu lintas jaringan. 179234
disk_free_bytes_per_mount_point memetakan Pemanfaatan disk dikelompokkan menurut titik pemasangan. Ini adalah penyimpanan sementara yang disediakan hanya saat komputasi berjalan. {"/var/lib/lxc":123455551234,"/":
123456789123,"/local_disk0":123412341234}
node_type string Nama jenis node. Ini cocok dengan nama jenis instans dari penyedia cloud. Standard_D16s_v3
private_ip string Alamat IP privat yang diberikan ke simpul. 10.0.0.42

Skema tabel peristiwa instans

Important

Tabel sistem ini berada dalam Pratinjau Umum.

Tabel peristiwa instans menangkap transisi status instans komputasi klasik. Setiap baris mewakili perubahan status untuk satu instans. Tabel ini mencakup rekaman untuk komputasi serba guna, komputasi pekerjaan, dan komputasi alur Lakeflow dari semua ruang kerja di akun Anda yang disebarkan dalam wilayah cloud yang sama.

Jalur tabel: Tabel sistem ini terletak di system.compute.instance_events.

Nama kolom Jenis data Deskripsi Contoh
account_id string ID akun tempat instans ini diluncurkan. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id string ID ruang kerja tempat instans ini diluncurkan. 1234567890123456
instance_id string ID instans. i-0a1b2c3d4e5f67890
event_time stempel waktu Tanda waktu peristiwa. 2024-01-15 10:30:00.000
event_type string Jenis peristiwa. Nilai yang mungkin adalah INSTANCE_LAUNCHING dan STATE_TRANSITION. STATE_TRANSITION
instance_pool_id string ID kumpulan instans jika instans termasuk dalam kumpulan. 1107-555555-pool-abcd1234
cluster_id string ID kluster tempat instans ini ditempatkan. Hanya diisi ketika state adalah INSTANCE_PLACED. Lihat detail cluster_id. 0000-123456-xxxxxxxx
node_type string Nama jenis node. Ini cocok dengan nama jenis instans dari penyedia cloud. Standard_D16s_v3
state string Status instans. Lihat Status instans. INSTANCE_PLACED
availability_type string Jenis ketersediaan instans. Nilai yang mungkin adalah ON_DEMAND dan SPOT (AWS, Azure) atau ON_DEMAND dan PREEMPTIBLE (GCP). ON_DEMAND

Status instans

  • INSTANCE_LAUNCHING: Instans sedang diinisialisasi.
  • INSTANCE_READY: Instans sepenuhnya diinisialisasi dan siap digunakan, tetapi saat ini tidak digunakan.
  • INSTANCE_PLACED: Instans saat ini sedang digunakan (bergabung dengan kluster).
  • INSTANCE_TERMINATED: Instans dihentikan.

Kapan cluster_id diisi?

Bidang cluster_id hanya diisi ketika instans dalam status INSTANCE_PLACED . Untuk semua status lainnya (INSTANCE_LAUNCHING, INSTANCE_READY, INSTANCE_TERMINATED), cluster_id adalah null. Perilaku ini konsisten untuk instans yang dikumpulkan dan tidak dikumpulkan.

Tabel instance_events hanya mencakup peristiwa penempatan untuk komputasi alur semua tujuan, pekerjaan, dan Lakeflow. Peristiwa penempatan untuk beban kerja lain, seperti gudang SQL, tidak disertakan dalam tabel ini.

Skema tabel kumpulan instans

Important

Tabel sistem ini berada dalam Pratinjau Umum.

Tabel kumpulan instans adalah tabel dimensi yang berubah lambat yang berisi riwayat lengkap konfigurasi kumpulan instans dari waktu ke waktu. Saat konfigurasi berubah, baris baru dipancarkan, secara logis menggantikan baris sebelumnya.

Jalur tabel: Tabel sistem ini terletak di system.compute.instance_pools.

Nama kolom Jenis data Deskripsi Contoh
account_id string ID akun tempat kumpulan instans ini dibuat. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id string ID ruang kerja tempat kumpulan instans ini dibuat. 1234567890123456
instance_pool_id string ID kumpulan instans. 1107-555555-pool-abcd1234
change_time stempel waktu Tanda waktu perubahan pada konfigurasi kumpulan instans. 2024-01-15 10:30:00.000
create_time stempel waktu Tanda waktu pembuatan kumpulan instans. 2024-01-10 08:00:00.000
delete_time stempel waktu Tanda waktu penghapusan kumpulan instans. Nilainya adalah null jika kumpulan instans tidak dihapus. null
instance_pool_name string Nama yang ditentukan pengguna dari kumpulan instans. My instance pool
tags memetakan Tag yang ditentukan pengguna untuk kumpulan instans (tidak menyertakan tag default). {"team":"data-engineering"}
node_type string Jenis node yang digunakan untuk instans di kumpulan. Ini cocok dengan nama jenis instans dari penyedia cloud. Standard_D16s_v3
idle_instance_autotermination_minutes bigint Jumlah menit instans menganggur di cache kumpulan secara otomatis dihentikan setelah tidak aktif. 120
min_idle_instances bigint Jumlah minimum instans diam untuk disimpan di kumpulan instans. 2
max_capacity bigint Jumlah maksimum instans belum diselesaikan untuk disimpan di dalam kumpulan, termasuk semua instans yang digunakan oleh kluster dan instans yang menganggur. 10
enable_elastic_disk Boolean Autoscaling Local Storage: saat diaktifkan, instans di kumpulan ini secara dinamis memperoleh ruang disk tambahan saat pekerja Spark hampir kehabisan ruang disk. true
disk_spec struktur Spesifikasi disk yang dilampirkan ke semua kontainer Spark. {
"disk_type": "PREMIUM_LRS",
"disk_count": 2,
"disk_size": 100
}
preloaded_docker_images array Gambar Docker kustom yang dimuat sebelumnya pada kumpulan. []
preloaded_spark_version string Versi gambar Spark yang dimuat sebelumnya untuk kumpulan, jika ditentukan. 14.3.x-scala2.12
aws_attributes struktur Atribut yang terkait dengan kumpulan instans yang berjalan di AWS. null
azure_attributes struktur Atribut yang terkait dengan kumpulan instans yang berjalan di Azure. {
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": -1
}
gcp_attributes struktur Atribut yang terkait dengan kumpulan instans yang berjalan di GCP. null

Pembatasan yang diketahui

  • Sumber daya komputasi yang ditandai dihapus sebelum 23 Oktober 2023 tidak muncul dalam tabel kluster. Ini mungkin mengakibatkan penggabungan dari tabel system.billing.usage tidak cocok dengan data dalam tabel kluster. Semua sumber daya komputasi aktif telah diisi ulang.
  • Tabel ini hanya mencakup rekaman untuk komputasi tujuan umum dan pekerjaan. Mereka tidak berisi rekaman untuk komputasi tanpa server atau gudang SQL.
  • Simpul yang beroperasi kurang dari 10 menit mungkin tidak muncul di tabel node_timeline.

Contoh kueri

Anda dapat menggunakan contoh kueri berikut untuk menjawab pertanyaan umum:

Catatan

Beberapa contoh ini menggabungkan tabel kluster dengan system.billing.usage tabel . Karena rekaman penagihan bersifat lintas regional sementara rekaman kluster spesifik wilayah, rekaman penagihan hanya akan cocok dengan rekaman kluster untuk wilayah tempat Anda melakukan kueri. Untuk melihat rekaman dari wilayah lain, jalankan kueri di wilayah tersebut.

Gabungkan catatan kluster dengan catatan penagihan terbaru

Kueri ini dapat membantu Anda memahami pengeluaran dari waktu ke waktu. Setelah Anda memperbarui usage_start_time ke periode penagihan terbaru, ia mengambil pembaruan terbaru pada catatan penagihan untuk bergabung ke dalam data kluster.

Setiap catatan dikaitkan dengan pemilik kluster selama proses yang bersangkutan. Jadi, jika pemilik kluster berubah, biaya akan digulung ke pemilik yang benar berdasarkan kapan kluster digunakan.

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;

Identifikasi sumber daya komputasi dengan pemanfaatan rata-rata tertinggi dan pemanfaatan puncak

Identifikasi komputasi serbaguna dan berbasis pekerjaan yang memiliki pemanfaatan CPU rata-rata tertinggi dan pemanfaatan CPU puncak tertinggi.

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;

Dapatkan versi terbaru dari setiap kumpulan instans

Tabel instance_pools adalah jenis SCD2, di mana alih-alih memperbarui rekaman yang ada, rekaman baru dibuat setiap kali perubahan dilakukan. Untuk mendapatkan versi terbaru, ambil entri dengan yang terbesar 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;

Menghitung waktu menganggur dan aktif instans

Kueri ini menghitung total waktu diam dan waktu aktif untuk setiap instans menggunakan transisi status dari 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;