Bagikan melalui


Pentingnya beban kerja Azure Synapse Analytics

Artikel ini menjelaskan bagaimana kepentingan beban kerja dapat memengaruhi urutan eksekusi untuk permintaan kumpulan SQL khusus di Azure Synapse.

Pentingnya

Kebutuhan bisnis dapat memerlukan beban kerja pergudangan data untuk diprioritaskan lebih tinggi daripada yang lain. Pertimbangkan skenario di mana data penjualan yang sangat penting dimuat sebelum periode fiskal berakhir. Pemuatan data untuk sumber lain seperti data cuaca tidak memiliki SLA yang ketat. Mengatur kepentingan tinggi untuk permintaan untuk memuat data penjualan dan kepentingan rendah terhadap permintaan untuk memuat data cuaca memastikan beban data penjualan mendapatkan akses pertama ke sumber daya dan selesai lebih cepat.

Tingkat kepentingan

Ada lima tingkat kepentingan: rendah, di bawah normal, normal, di atas normal, dan tinggi. Permintaan yang tidak menetapkan kepentingan akan ditetapkan ke tingkat normal secara default. Permintaan yang memiliki tingkat kepentingan yang sama memiliki perilaku penjadwalan yang sama seperti yang ada saat ini.

Skenario penting

Di luar skenario kepentingan dasar yang dijelaskan di atas dengan data penjualan dan cuaca, ada skenario lain di mana kepentingan beban kerja membantu memenuhi kebutuhan pemrosesan dan kueri data.

Penguncian

Akses ke kunci untuk aktivitas baca dan tulis adalah salah satu area ketidakcocokan alami. Aktivitas seperti pengalihan partisi atau RENAME OBJECT memerlukan kunci dengan hak akses lebih tinggi. Tanpa kepentingan beban kerja, kumpulan SQL khusus di Azure Synapse mengoptimalkan throughput. Mengoptimalkan throughput berarti bahwa ketika permintaan yang berjalan dan mengantre memiliki kebutuhan penguncian yang sama dan sumber daya tersedia, permintaan yang mengantre dapat melewati permintaan dengan kebutuhan penguncian yang lebih tinggi yang sudah ada sebelumnya di antrean. Setelah prioritas beban kerja diterapkan pada permintaan dengan kebutuhan penguncian yang lebih tinggi. Permintaan dengan kepentingan yang lebih tinggi akan dijalankan sebelum permintaan dengan kepentingan yang lebih rendah.

Pertimbangkan contoh berikut:

  • Q1 secara aktif berjalan dan memilih data dari SalesFact.
  • Q2 diantrekan menunggu Q1 selesai. Ini dikirimkan pada pukul 09.00 dan sedang mencoba mempartisi serta mengalihkan data baru ke dalam SalesFact.
  • Q3 dikirimkan pada pukul 09.01 dan ingin memilih data dari SalesFact.

Jika Q2 dan Q3 memiliki kepentingan yang sama dan Q1 masih dijalankan, Q3 akan mulai dieksekusi. Q2 akan tetap menunggu untuk mendapatkan kunci eksklusif pada SalesFact. Jika Q2 memiliki kepentingan yang lebih tinggi daripada Q3, Q3 akan menunggu hingga Q2 selesai sebelum dapat memulai eksekusi.

Permintaan yang tidak seragam

Skenario lain di mana kepentingan dapat membantu memenuhi permintaan kueri adalah ketika permintaan dengan kelas sumber daya yang berbeda dikirimkan. Seperti yang disebutkan sebelumnya, di bawah kepentingan yang sama, kumpulan SQL khusus di Azure Synapse mengoptimalkan throughput. Ketika permintaan ukuran campuran (seperti smallrc atau mediumrc) diantrekan, kumpulan SQL khusus akan memilih permintaan kedatangan paling awal yang sesuai dengan sumber daya yang tersedia. Jika kepentingan beban kerja diterapkan, permintaan dengan tingkat kepentingan tertinggi dijadwalkan berikutnya.

Pertimbangkan contoh berikut pada DW500c:

  • Q1, Q2, Q3, dan Q4 menjalankan kueri smallrc.
  • Q5 diajukan menggunakan kelas sumber daya mediumrc pada pukul 09.00 pagi.
  • Q6 dikirimkan menggunakan kelas sumber daya smallrc pada pukul 09.01.

Karena Q5 adalah mediumrc, diperlukan dua slot konkurensi. Q5 perlu menunggu hingga dua kueri yang sedang berjalan selesai. Namun, ketika salah satu kueri yang sedang berjalan (Q1-Q4) selesai, Q6 segera dijadwalkan karena sumber daya ada untuk menjalankan kueri. Jika Q5 memiliki kepentingan yang lebih tinggi daripada Q6, Q6 menunggu hingga Q5 berjalan sebelum dapat mulai dieksekusi.

Langkah berikutnya