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 manualWLM, Anda dapat mengelola kinerja sistem dan pengalaman pengguna Anda dengan memodifikasi WLM konfigurasi 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 otomatis. WLM Untuk informasi selengkapnya, lihat Menerapkan otomatis WLM.

Atau Anda dapat mengonfigurasi WLM properti 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 WLM properti 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 manualWLM, 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 berupa antrian terakhir dalam konfigurasi. WLM Setiap kueri yang tidak dirutekan ke antrian lain berjalan dalam antrian default.

Antrian kueri didefinisikan dalam konfigurasi. WLM WLMKonfigurasi 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 WLM konfigurasi default, hingga total delapan antrian pengguna. Anda dapat mengonfigurasi berikut ini untuk setiap antrian kueri:

  • Mode penskalaan konkurensi

  • Tingkat konkurensi

  • Grup pengguna

  • Grup kueri

  • WLMPersentase memori untuk digunakan

  • WLMbatas waktu

  • WLMlompatan antrian kueri

  • 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 Penskalaan konkurensi.

Tingkat konkurensi

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

catatan

WLMtingkat konkurensi 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 WLM konfigurasi 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. Otomatis WLM tidak dapat dikonfigurasi. Untuk informasi selengkapnya, lihat Menerapkan otomatis WLM.

Dalam WLM konfigurasi 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, WLM antrian 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 antrean terpisah untuk kueri pendek untuk sebagian besar alur kerja. Untuk informasi selengkapnya, lihat Akselerasi kueri pendek.

  • Jika Anda memiliki beberapa kueri yang masing-masing mengakses data pada satu irisan, siapkan WLM antrian 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.

WLMContoh manual

Contoh ini adalah WLM skenario manual sederhana untuk menunjukkan bagaimana slot dan memori dapat dialokasikan. Anda menerapkan manual WLM 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 otomatis WLM 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. Penskalaan konkurensi

Untuk informasi selengkapnya, lihat Peningkatan 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 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 WLM antrian, Anda dapat menetapkan grup pengguna dan grup kueri ke antrian baik secara individual maupun 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, 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.

WLMPersentase memori untuk digunakan

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

Dalam WLM konfigurasi manual, untuk menentukan jumlah memori yang tersedia yang dialokasikan ke kueri, Anda dapat mengatur WLM Memory Percent to Use parameter. 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.

WLMbatas waktu

WLMtimeout (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 WLMaturan pemantauan kueri.

Untuk membatasi jumlah waktu kueri dalam WLM antrian tertentu diizinkan untuk digunakan, Anda dapat menetapkan nilai WLM batas waktu 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.

WLMmencoba untuk melompat CREATETABLESEBAGAI (CTAS) pernyataan dan kueri hanya-baca, seperti pernyataan. SELECT Kueri yang tidak dapat dilewati dibatalkan. Untuk informasi selengkapnya, lihat WLMlompatan antrian kueri.

WLMbatas waktu tidak berlaku untuk kueri yang telah mencapai status pengembalian. Untuk melihat status kueri, lihat tabel STV_WLM_QUERY_STATE sistem. COPYpernyataan dan operasi pemeliharaan, seperti ANALYZE danVACUUM, tidak tunduk pada WLM batas waktu.

Fungsi batas WLM waktu mirip dengan parameter statement_timeout konfigurasi. Perbedaannya adalah, di mana parameter statement_timeout konfigurasi berlaku untuk seluruh cluster, WLM batas waktu 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 WLM antrian 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 WLMaturan pemantauan kueri.