Bagian 3: Merutekan kueri ke antrian berdasarkan grup pengguna dan grup kueri - Amazon Redshift

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

Bagian 3: Merutekan kueri ke antrian berdasarkan grup pengguna dan grup kueri

Sekarang Anda memiliki cluster Anda terkait dengan grup parameter baru dan Anda telah mengkonfigurasi WLM. Selanjutnya, jalankan beberapa kueri untuk melihat bagaimana Amazon Redshift merutekan kueri ke antrian untuk diproses.

Langkah 1: Lihat konfigurasi antrian kueri dalam database

Pertama, verifikasi bahwa database memiliki konfigurasi WLM yang Anda harapkan.

Untuk melihat konfigurasi antrian kueri

  1. Buka RSQL dan jalankan query berikut. Kueri menggunakan tampilan WLM_QUEUE_STATE_VW yang Anda buat. Langkah 1: Buat tampilan WLM_QUEUE_STATE_VW Jika Anda sudah memiliki sesi yang terhubung ke database sebelum cluster reboot, Anda perlu menyambung kembali.

    select * from wlm_queue_state_vw;

    Berikut ini adalah contoh hasil.

    Bandingkan hasil ini dengan hasil yang Anda terimaLangkah 1: Buat tampilan WLM_QUEUE_STATE_VW. Perhatikan bahwa sekarang ada dua antrian tambahan. Antrian 1 sekarang menjadi antrian untuk grup kueri pengujian, dan antrean 2 adalah antrian untuk grup pengguna admin.

    Antrian 3 sekarang menjadi antrian default. Antrian terakhir dalam daftar selalu antrian default. Itulah antrian ke mana kueri dirutekan secara default jika tidak ada grup pengguna atau grup kueri yang ditentukan dalam kueri.

  2. Jalankan kueri berikut untuk mengonfirmasi bahwa kueri Anda sekarang berjalan dalam antrian 3.

    select * from wlm_query_state_vw;

    Berikut ini adalah contoh hasil.

Langkah 2: Jalankan kueri menggunakan antrian grup kueri

Untuk menjalankan kueri menggunakan antrian grup kueri

  1. Jalankan query berikut untuk merutekan ke grup test query.

    set query_group to test; select avg(l.priceperticket*s.qtysold) from listing l, sales s where l.listid <40000;
  2. Dari jendela RSQL lainnya, jalankan query berikut.

    select * from wlm_query_state_vw;

    Berikut ini adalah contoh hasil.

    Kueri dirutekan ke grup kueri uji, yang sekarang merupakan antrian 1.

  3. Pilih semua dari tampilan status antrian.

    select * from wlm_queue_state_vw;

    Anda melihat hasil yang mirip dengan berikut ini.

  4. Sekarang, atur ulang grup kueri dan jalankan kueri panjang lagi:

    reset query_group; select avg(l.priceperticket*s.qtysold) from listing l, sales s where l.listid <40000;
  5. Jalankan kueri terhadap tampilan untuk melihat hasilnya.

    select * from wlm_queue_state_vw; select * from wlm_query_state_vw;

    Berikut ini adalah contoh hasil.

    Hasilnya seharusnya kueri sekarang berjalan dalam antrian 3 lagi.

Langkah 3: Buat pengguna database dan grup

Sebelum Anda dapat menjalankan kueri apa pun dalam antrian ini, Anda perlu membuat grup pengguna dalam database dan menambahkan pengguna ke grup. Kemudian Anda masuk dengan RSQL menggunakan kredensi pengguna baru dan menjalankan kueri. Anda perlu menjalankan kueri sebagai superuser, seperti pengguna admin, untuk membuat pengguna database.

Untuk membuat pengguna database baru dan grup pengguna

  1. Dalam database, buat pengguna database baru bernama adminwlm dengan menjalankan perintah berikut di jendela RSQL.

    create user adminwlm createuser password '123Admin';
  2. Kemudian, jalankan perintah berikut untuk membuat grup pengguna baru dan menambahkan adminwlm pengguna baru Anda ke dalamnya.

    create group admin; alter group admin add user adminwlm;

Langkah 4: Jalankan kueri menggunakan antrian grup pengguna

Selanjutnya Anda menjalankan kueri dan mengarahkannya ke antrian grup pengguna. Anda melakukan ini ketika Anda ingin merutekan kueri Anda ke antrian yang dikonfigurasi untuk menangani jenis kueri yang ingin Anda jalankan.

Untuk menjalankan kueri menggunakan antrean grup pengguna

  1. Di jendela RSQL 2, jalankan kueri berikut untuk beralih ke adminwlm akun dan menjalankan kueri sebagai pengguna tersebut.

    set session authorization 'adminwlm'; select avg(l.priceperticket*s.qtysold) from listing l, sales s where l.listid <40000;
  2. Di jendela RSQL 1, jalankan kueri berikut untuk melihat antrian kueri yang dirutekan kueri.

    select * from wlm_query_state_vw; select * from wlm_queue_state_vw;

    Berikut ini adalah contoh hasil.

    Antrian tempat kueri ini dijalankan adalah antrian 2, antrian admin pengguna. Setiap kali Anda menjalankan kueri yang masuk sebagai pengguna ini, kueri tersebut berjalan dalam antrian 2 kecuali Anda menentukan grup kueri yang berbeda untuk digunakan. Antrian yang dipilih tergantung pada aturan penetapan antrian. Untuk informasi selengkapnya, lihat Aturan penetapan antrian WLM.

  3. Sekarang jalankan query berikut dari jendela RSQL 2.

    set query_group to test; select avg(l.priceperticket*s.qtysold) from listing l, sales s where l.listid <40000;
  4. Di jendela RSQL 1, jalankan kueri berikut untuk melihat antrian kueri yang dirutekan kueri.

    select * from wlm_queue_state_vw; select * from wlm_query_state_vw;

    Berikut ini adalah contoh hasil.

  5. Setelah selesai, setel ulang grup kueri.

    reset query_group;