Menerapkan manual WLM - Amazon Redshift

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

Menerapkan manual WLM

Dengan WLM manual, Anda dapat mengelola kinerja sistem dan pengalaman pengguna Anda dengan memodifikasi konfigurasi WLM untuk membuat antrian terpisah untuk kueri yang berjalan lama dan kueri jangka pendek.

Saat pengguna menjalankan kueri di Amazon Redshift, kueri dirutekan ke antrian kueri. Setiap antrian kueri berisi sejumlah slot kueri. Setiap antrian dialokasikan sebagian dari memori cluster yang tersedia. Memori antrian dibagi di antara slot kueri antrian. Anda dapat mengaktifkan Amazon Redshift untuk mengelola konkurensi kueri dengan WLM otomatis. Untuk informasi selengkapnya, lihat Menerapkan WLM otomatis.

Atau Anda dapat mengonfigurasi properti WLM untuk setiap antrian kueri. Anda melakukannya untuk menentukan cara memori dialokasikan di antara slot dan bagaimana kueri dapat diarahkan ke antrian tertentu saat runtime. Anda juga dapat mengonfigurasi properti WLM untuk membatalkan kueri yang berjalan lama.

Secara default, Amazon Redshift mengonfigurasi antrian kueri berikut:

  • Satu antrian superuser

    Antrian superuser hanya disediakan untuk pengguna super dan tidak dapat dikonfigurasi. Gunakan antrian ini hanya ketika Anda perlu menjalankan kueri yang memengaruhi sistem atau untuk tujuan pemecahan masalah. Misalnya, gunakan antrean ini saat Anda perlu membatalkan kueri pengguna yang sudah berjalan lama atau menambahkan pengguna ke database. Jangan menggunakannya untuk melakukan kueri rutin. Antrian tidak muncul di konsol, tetapi muncul di tabel sistem dalam database sebagai antrian kelima. Untuk menjalankan kueri dalam antrean superuser, pengguna harus login sebagai superuser, dan harus menjalankan kueri menggunakan grup kueri yang telah superuser ditentukan sebelumnya.

  • Satu antrian pengguna default

    Antrian default awalnya dikonfigurasi untuk menjalankan lima kueri secara bersamaan. Bila Anda menggunakan WLM manual, Anda dapat mengubah properti konkurensi, batas waktu, dan alokasi memori untuk antrian default, tetapi Anda tidak dapat menentukan grup pengguna atau grup kueri. Antrian default harus antrian terakhir dalam konfigurasi WLM. Setiap kueri yang tidak dirutekan ke antrian lain berjalan dalam antrian default.

Antrian kueri didefinisikan dalam konfigurasi WLM. Konfigurasi WLM adalah parameter yang dapat diedit (wlm_json_configuration) dalam grup parameter, yang dapat dikaitkan dengan satu atau lebih cluster. Untuk informasi selengkapnya, lihat Mengonfigurasi Manajemen Beban Kerja di Panduan Manajemen Amazon Redshift.

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

  • Mode penskalaan konkurensi

  • Tingkat konkurensi

  • Grup pengguna

  • Grup kueri

  • Persen memori WLM untuk digunakan

  • Batas waktu WLM

  • Antrian kueri WLM melompat

  • Aturan pemantauan 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 melihat data terbaru, apakah kueri berjalan di cluster utama atau pada cluster 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.

Tingkat konkurensi

Kueri dalam antrian berjalan secara bersamaan hingga mencapai jumlah slot kueri WLM, atau tingkat konkurensi, yang ditentukan untuk antrian tersebut. Pertanyaan selanjutnya kemudian menunggu dalam antrian.

catatan

Tingkat konkurensi WLM berbeda dari jumlah koneksi pengguna bersamaan yang dapat dibuat ke cluster. Untuk informasi selengkapnya, lihat Menghubungkan ke Cluster di Panduan Manajemen Pergeseran Merah Amazon.

Dalam konfigurasi WLM otomatis, yang direkomendasikan, level konkurensi diatur ke Otomatis. Amazon Redshift secara dinamis mengalokasikan memori ke kueri, yang kemudian menentukan berapa banyak yang akan dijalankan secara bersamaan. Ini didasarkan pada sumber daya yang diperlukan untuk kueri berjalan dan antrian. Auto WLM tidak dapat dikonfigurasi. Untuk informasi selengkapnya, lihat Menerapkan WLM otomatis.

Dalam konfigurasi WLM manual, Amazon Redshift secara statis mengalokasikan jumlah memori tetap untuk setiap antrian. Memori antrian dibagi secara merata di antara slot kueri. Sebagai ilustrasi, jika antrian dialokasikan 20% dari memori cluster dan memiliki 10 slot, setiap kueri dialokasikan 2% dari memori cluster. Alokasi memori tetap tetap terlepas dari jumlah kueri yang berjalan secara bersamaan. Karena alokasi memori tetap ini, kueri yang berjalan sepenuhnya dalam memori ketika jumlah slot adalah 5 mungkin menulis hasil antara ke disk jika jumlah slot ditingkatkan menjadi 20. Dalam hal ini, setiap bagian kueri dari memori antrian dikurangi dari 1/5 menjadi 1/20. Disk I/O tambahan dapat menurunkan kinerja.

Jumlah slot maksimum di semua antrian yang ditentukan pengguna adalah 50. Ini membatasi total slot untuk semua antrian, termasuk antrian default. Satu-satunya antrian yang tidak tunduk pada batas adalah antrian superuser yang dicadangkan.

Secara default, antrian WLM manual memiliki tingkat konkurensi 5. Beban kerja Anda mungkin mendapat manfaat dari tingkat konkurensi yang lebih tinggi dalam kasus-kasus tertentu, seperti berikut ini:

  • Jika banyak kueri kecil dipaksa untuk menunggu kueri yang berjalan lama, buat antrian terpisah dengan jumlah slot yang lebih tinggi dan tetapkan kueri yang lebih kecil ke antrian itu. Antrian dengan tingkat konkurensi yang lebih tinggi memiliki lebih sedikit memori yang dialokasikan untuk setiap slot kueri, tetapi kueri yang lebih kecil membutuhkan lebih sedikit memori.

    catatan

    Jika Anda mengaktifkan akselerasi kueri pendek (SQA), WLM secara otomatis memprioritaskan kueri pendek daripada kueri yang berjalan lebih lama, sehingga Anda tidak memerlukan antrian terpisah untuk kueri singkat untuk sebagian besar alur kerja. Untuk informasi selengkapnya, lihat Bekerja dengan akselerasi kueri pendek.

  • Jika Anda memiliki beberapa kueri yang masing-masing mengakses data pada satu irisan, siapkan antrian WLM terpisah untuk menjalankan kueri tersebut secara bersamaan. Amazon Redshift menetapkan kueri bersamaan ke irisan terpisah, yang memungkinkan beberapa kueri berjalan secara paralel pada beberapa irisan. Misalnya, jika kueri adalah agregat sederhana dengan predikat pada kunci distribusi, data untuk kueri terletak pada satu irisan.

Contoh WLM manual

Contoh ini adalah skenario WLM manual sederhana untuk menunjukkan bagaimana slot dan memori dapat dialokasikan. Anda menerapkan WLM manual dengan tiga antrian, yaitu sebagai berikut:

  • data-ingestion queue — Ini diatur untuk menelan data. Ini dialokasikan 20% dari memori cluster dan memiliki 5 slot. Selanjutnya, 5 kueri dapat berjalan secara bersamaan dalam antrian dan masing-masing dialokasikan 4% dari memori.

  • antrian data-scientist — Ini dirancang untuk kueri intensif memori. Ini dialokasikan 40% dari memori cluster dan memiliki 5 slot. Selanjutnya, 5 kueri dapat berjalan secara bersamaan dan masing-masing dialokasikan 8% dari memori.

  • antrian default — Ini dirancang untuk sebagian besar pengguna dalam organisasi. Ini termasuk grup penjualan dan akuntansi yang biasanya memiliki kueri berjalan pendek atau menengah yang tidak rumit. Ini dialokasikan 40% dari memori cluster dan memiliki 40 slot. 40 kueri dapat berjalan secara bersamaan dalam antrian ini, dengan setiap kueri dialokasikan 1% dari memori. Ini adalah jumlah maksimum slot yang dapat dialokasikan untuk antrian ini karena di antara semua antrian batasnya adalah 50.

Jika Anda menjalankan WLM otomatis dan beban kerja Anda memerlukan lebih dari 15 kueri untuk dijalankan secara paralel, sebaiknya aktifkan penskalaan konkurensi. Ini karena meningkatkan jumlah slot kueri di atas 15 dapat menciptakan pertengkaran untuk sumber daya sistem dan membatasi keseluruhan throughput dari satu cluster. Dengan penskalaan konkurensi, Anda dapat menjalankan ratusan kueri secara paralel, hingga sejumlah cluster penskalaan konkurensi yang dikonfigurasi. Jumlah cluster penskalaan konkurensi dikendalikan oleh. max_concurrency_scaling_clusters Untuk informasi selengkapnya tentang penskalaan konkurensi, lihat. Bekerja dengan penskalaan konkurensi

Untuk informasi selengkapnya, lihat Meningkatkan kinerja kueri.

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 antrian 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.

Wildcard dimatikan secara default.

Persen memori WLM untuk digunakan

Dalam konfigurasi WLM otomatis, persen memori diatur ke. auto Untuk informasi selengkapnya, lihat Menerapkan WLM otomatis.

Dalam konfigurasi WLM manual, untuk menentukan jumlah memori yang tersedia yang dialokasikan ke kueri, Anda dapat mengatur parameter. WLM Memory Percent to Use Secara default, setiap antrian yang ditentukan pengguna dialokasikan porsi yang sama dari memori yang tersedia untuk kueri yang ditentukan pengguna. Misalnya, jika Anda memiliki empat antrian yang ditentukan pengguna, setiap antrian dialokasikan 25 persen dari memori yang tersedia. Antrian superuser memiliki memori yang dialokasikan sendiri dan tidak dapat dimodifikasi. Untuk mengubah alokasi, Anda menetapkan persentase integer memori untuk setiap antrian, hingga total 100 persen. Memori yang tidak teralokasi dikelola oleh Amazon Redshift dan dapat diberikan sementara ke antrian jika antrian meminta memori tambahan untuk diproses.

Misalnya, jika Anda mengonfigurasi empat antrian, Anda dapat mengalokasikan memori sebagai berikut: 20 persen, 30 persen, 15 persen, 15 persen. Sisanya 20 persen tidak dialokasikan dan dikelola oleh layanan.

Batas waktu WLM

WLM timeout (max_execution_time) tidak digunakan lagi. Sebagai gantinya, buat aturan pemantauan kueri (QMR) menggunakan query_execution_time untuk membatasi waktu eksekusi yang telah berlalu untuk kueri. Untuk informasi selengkapnya, lihat Aturan pemantauan kueri WLM.

Untuk membatasi jumlah waktu kueri dalam antrian WLM tertentu diizinkan untuk digunakan, Anda dapat mengatur nilai batas waktu WLM untuk setiap antrian. Parameter batas waktu menentukan jumlah waktu, dalam milidetik, Amazon Redshift menunggu kueri berjalan sebelum membatalkan atau melompati kueri. Batas waktu didasarkan pada waktu eksekusi kueri dan tidak termasuk waktu yang dihabiskan menunggu dalam antrian.

WLM mencoba untuk melompat BUAT TABEL SEBAGAI (CTAS) pernyataan dan query read-only, seperti pernyataan SELECT. Kueri yang tidak dapat dilewati dibatalkan. Untuk informasi selengkapnya, lihat Antrian kueri WLM melompat.

Batas waktu WLM tidak berlaku untuk kueri yang telah mencapai status kembali. Untuk melihat status kueri, lihat tabel STV_WLM_QUERY_STATE sistem. Pernyataan COPY dan operasi pemeliharaan, seperti ANALISIS dan VACUUM, tidak tunduk pada batas waktu WLM.

Fungsi batas waktu WLM mirip dengan parameter konfigurasi. statement_timeout Perbedaannya adalah, di mana parameter statement_timeout konfigurasi berlaku untuk seluruh cluster, batas waktu WLM khusus untuk antrian tunggal dalam konfigurasi WLM.

Jika juga statement_timeout ditentukan, yang lebih rendah dari statement_timeout dan WLM timeout (max_execution_time) digunakan.

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.