Menerapkan WLM otomatis - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menerapkan WLM otomatis

Dengan manajemen beban kerja otomatis (WLM), Amazon Redshift mengelola konkurensi kueri dan alokasi memori. Anda dapat membuat hingga delapan antrian dengan pengidentifikasi kelas layanan 100—107. Setiap antrian memiliki prioritas. Untuk informasi selengkapnya, lihat Prioritas kueri.

WLM otomatis menentukan jumlah sumber daya yang dibutuhkan kueri dan menyesuaikan konkurensi berdasarkan beban kerja. Ketika kueri yang membutuhkan sumber daya dalam jumlah besar ada di sistem (misalnya, hash bergabung di antara tabel besar), konkurensi lebih rendah. Ketika kueri yang lebih ringan (seperti sisipan, penghapusan, pemindaian, atau agregasi sederhana) dikirimkan, konkurensi lebih tinggi.

WLM otomatis terpisah dari akselerasi kueri pendek (SQA) dan mengevaluasi kueri secara berbeda. WLM dan SQA otomatis bekerja sama untuk memungkinkan kueri berjalan singkat dan ringan untuk diselesaikan bahkan saat berjalan lama, kueri intensif sumber daya aktif. Untuk informasi lebih lanjut tentang SQA, lihatBekerja dengan akselerasi kueri pendek.

Amazon Redshift memungkinkan WLM otomatis melalui grup parameter:

  • Jika cluster Anda menggunakan grup parameter default, Amazon Redshift mengaktifkan WLM otomatis untuk mereka.

  • Jika cluster Anda menggunakan grup parameter kustom, Anda dapat mengonfigurasi cluster untuk mengaktifkan WLM otomatis. Kami menyarankan Anda membuat grup parameter terpisah untuk konfigurasi WLM otomatis Anda.

Untuk mengkonfigurasi WLM, edit wlm_json_configuration parameter dalam grup parameter yang dapat dikaitkan dengan satu atau beberapa cluster. Untuk informasi selengkapnya, lihat Memodifikasi konfigurasi WLM.

Anda menentukan antrian kueri dalam konfigurasi WLM. Anda dapat menambahkan antrian kueri tambahan ke konfigurasi WLM default, hingga total delapan antrian pengguna. Anda dapat mengonfigurasi berikut ini untuk setiap antrian kueri:

  • Prioritas

  • Mode penskalaan konkurensi

  • Grup pengguna

  • Grup kueri

  • Aturan pemantauan kueri

Prioritas

Anda dapat menentukan kepentingan relatif kueri dalam beban kerja dengan menetapkan nilai prioritas. Prioritas ditentukan untuk antrian dan diwarisi oleh semua kueri yang terkait dengan antrian. Untuk informasi selengkapnya, lihat Prioritas kueri.

Mode penskalaan konkurensi

Saat penskalaan konkurensi diaktifkan, Amazon Redshift secara otomatis menambahkan kapasitas klaster tambahan saat Anda membutuhkannya untuk memproses peningkatan kueri baca dan tulis bersamaan. Pengguna Anda melihat data terbaru, apakah kueri berjalan di klaster utama atau pada klaster penskalaan konkurensi.

Anda mengelola kueri mana yang dikirim ke cluster penskalaan konkurensi dengan mengonfigurasi antrian WLM. Saat Anda mengaktifkan penskalaan konkurensi untuk antrian, kueri yang memenuhi syarat akan dikirim ke klaster penskalaan konkurensi alih-alih menunggu dalam antrian. Untuk informasi selengkapnya, lihat Bekerja dengan penskalaan konkurensi.

Grup pengguna

Anda dapat menetapkan satu set grup pengguna ke antrian dengan menentukan setiap nama grup pengguna atau dengan menggunakan wildcard. Ketika anggota grup pengguna yang terdaftar menjalankan kueri, kueri tersebut berjalan dalam antrean yang sesuai. Tidak ada batasan yang ditetapkan pada jumlah grup pengguna yang dapat ditetapkan ke antrian. Untuk informasi selengkapnya, lihat Menetapkan kueri ke antrian berdasarkan grup pengguna.

Grup kueri

Anda dapat menetapkan satu set grup kueri ke antrian dengan menentukan setiap nama grup kueri atau dengan menggunakan wildcard. Grup kueri hanyalah sebuah label. Saat runtime, Anda dapat menetapkan label grup kueri ke serangkaian kueri. Setiap kueri yang ditetapkan ke grup kueri terdaftar berjalan dalam antrean yang sesuai. Tidak ada batasan yang ditetapkan untuk jumlah grup kueri yang dapat ditetapkan ke antrian. Untuk informasi selengkapnya, lihat Menetapkan kueri ke grup kueri.

Wildcard

Jika wildcard diaktifkan dalam konfigurasi antrian WLM, Anda dapat menetapkan grup pengguna dan grup kueri ke antrian baik secara individual atau dengan menggunakan wildcard bergaya shell Unix. Pencocokan pola tidak peka huruf besar/kecil.

Misalnya, karakter wildcard '*' cocok dengan sejumlah karakter. Jadi, jika Anda menambahkan dba_* ke daftar grup pengguna untuk antrian, setiap kueri yang dijalankan pengguna yang termasuk dalam grup dengan nama yang dimulai dengan dba_ ditetapkan ke antrian tersebut. Contohnya adalah dba_admin atauDBA_primary. Yang '?' karakter wildcard cocok dengan karakter tunggal apa pun. Jadi, jika antrian menyertakan grup penggunadba?1, maka grup pengguna bernama dba11 dan dba21 cocok, tetapi dba12 tidak cocok.

Secara default, wildcard tidak diaktifkan.

Aturan pemantauan kueri

Aturan pemantauan kueri menentukan batas kinerja berbasis metrik untuk antrian WLM dan menentukan tindakan apa yang harus diambil ketika kueri melampaui batas-batas tersebut. Misalnya, untuk antrian yang didedikasikan untuk kueri berjalan pendek, Anda dapat membuat aturan yang membatalkan kueri yang berjalan selama lebih dari 60 detik. Untuk melacak kueri yang dirancang dengan buruk, Anda mungkin memiliki aturan lain yang mencatat kueri yang berisi loop bersarang. Untuk informasi selengkapnya, lihat Aturan pemantauan kueri WLM.

Memeriksa WLM otomatis

Untuk memeriksa apakah WLM otomatis diaktifkan, jalankan kueri berikut. Jika kueri mengembalikan setidaknya satu baris, maka WLM otomatis diaktifkan.

select * from stv_wlm_service_class_config where service_class >= 100;

Kueri berikut menunjukkan jumlah kueri yang melewati setiap antrian kueri (kelas layanan). Ini juga menunjukkan waktu eksekusi rata-rata, jumlah kueri dengan waktu tunggu pada persentil ke-90, dan waktu tunggu rata-rata. Kueri WLM otomatis menggunakan kelas layanan 100 hingga 107.

select final_state, service_class, count(*), avg(total_exec_time), percentile_cont(0.9) within group (order by total_queue_time), avg(total_queue_time) from stl_wlm_query where userid >= 100 group by 1,2 order by 2,1;

Untuk menemukan kueri mana yang dijalankan oleh WLM otomatis, dan berhasil diselesaikan, jalankan kueri berikut.

select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class >= 100 and a.final_state = 'Completed' order by b.query desc limit 5;