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 mengharuskan beban kerja pergudangan data menjadi lebih penting daripada yang lain. Pertimbangkan skenario di mana data penjualan penting misi dimuat sebelum periode fiskal ditutup. Pemuatan data untuk sumber lain seperti data cuaca tidak memiliki SLA yang ketat. Mengatur kepentingan tinggi untuk permintaan memuat data penjualan dan kepentingan rendah untuk permintaan memuat data cuaca memastikan pemuatan 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 dengan 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 data dan kueri.

Mengunci

Akses ke kunci untuk aktivitas membaca dan menulis adalah salah satu area pertentangan alami. Aktivitas seperti pengalihan partisi atau GANTI NAMA OBYEK memerlukan kunci yang ditinggikan. Tanpa beban kerja yang penting, kumpulan SQL khusus di Azure Synapse mengoptimalkan throughput. Mengoptimalkan throughput berarti saat menjalankan dan permintaan yang diantrekan memiliki kebutuhan penguncian yang sama dan sumber daya yang tersedia, permintaan yang diantrekan dapat melewati permintaan dengan kebutuhan penguncian yang lebih tinggi yang tiba di antrian permintaan lebih awal. Setelah kepentingan beban kerja diterapkan ke permintaan dengan kebutuhan penguncian yang lebih tinggi. Permintaan dengan tingkat kepentingan yang lebih tinggi akan dijalankan sebelum permintaan dengan tingkat kepentingan yang lebih rendah.

Perhatikan contoh berikut:

  • Q1 secara aktif menjalankan dan memilih data dari SalesFact.
  • Q2 mengantre menunggu Q1 selesai. Itu dikirimkan pada jam 9 pagi dan sedang mencoba untuk mempartisi, mengalihkan data baru ke SalesFact.
  • Q3 dikirimkan pada 09:01 dan ingin memilih data dari SalesFact.

Jika Q2 dan Q3 memiliki kepentingan yang sama dan Q1 masih dieksekusi, Q3 akan mulai dieksekusi. Q2 akan terus menunggu penguncian ekslkusif di SalesFact. Jika Q2 memiliki kepentingan lebih tinggi dari Q3, Q3 akan menunggu sampai Q2 selesai sebelum dapat memulai eksekusi.

Permintaan tidak seragam

Skenario lain di mana kepentingan dapat membantu memenuhi permintaan kueri adalah ketika permintaan dengan kelas sumber daya yang berbeda diajukan. Seperti yang telah 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 yang datang paling awal yang sesuai dengan sumber daya yang tersedia. Jika kepentingan beban kerja diterapkan, permintaan kepentingan tertinggi dijadwalkan berikutnya.

Perhatikan contoh berikut pada DW500c:

  • Q1, Q2, Q3, dan Q4 menjalankan kueri smallrc.
  • Q5 dikirimkan dengan kelas sumber daya mediumrc pada jam 9 pagi.
  • Q6 dikirimkan dengan kelas sumber daya smallrc pada 09:01.

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

Langkah berikutnya