Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.usagetidak 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:
- Menggabungkan rekaman kluster dengan rekaman penagihan terbaru
- Identifikasi sumber daya komputasi dengan pemanfaatan rata-rata tertinggi dan pemanfaatan puncak
- Dapatkan versi terbaru dari setiap kumpulan instans
- Menghitung waktu menganggur dan aktif instans
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;