Mengaktifkan mode ketat Presto - Amazon EMR

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

Mengaktifkan mode ketat Presto

Dalam situasi tertentu, kueri yang berjalan lama dapat menyebabkan biaya tinggi dan menyebabkan Amazon EMR menggunakan lebih banyak sumber daya cluster. Ini menghilangkan sumber daya dari beban kerja lain di cluster. Dengan Amazon EMR versi 6.8 dan yang lebih baru, Anda dapat menggunakan fitur mode ketat yang menolak atau memperingatkan Anda tentang jenis kueri yang berjalan lama berikut:

  • Kueri tanpa predikat pada kolom yang dipartisi yang menghasilkan pemindaian tabel sejumlah besar data

  • Kueri dengan gabungan silang antara dua tabel besar

  • Kueri yang mengurutkan sejumlah besar baris tanpa batas

Setelah Presto benar-benar mengoptimalkan rencana kueri, mode ketat berjalan. Untuk menggunakan dan menyesuaikan mode ketat dengan kebutuhan kueri Anda, Anda dapat mengonfigurasi Presto dengan cara berikut.

Konfigurasi Presto untuk mode ketat
Pengaturan Deskripsi Default
strict-mode-enabled Menghidupkan dan mematikan mode ketat. Nilai true menunjukkan bahwa mode ketat aktif. false
strict-mode-fail-query Menolak kueri jika mode ketat mendeteksi kemungkinan kueri yang berjalan lama. Jikafalse, Amazon EMR hanya memunculkan peringatan. false
strict-mode-restrictions Menentukan batasan untuk diterapkan ketika modus ketat dihidupkan. Mode ketat mendukung pembatasan berikut: MANDATORY_PARTITION_PREDICATE, DISALLOW_CROSS_JOIN, dan LIMITED_SORT.

MANDATORY_PARTITION_PREDICATE, DISALLOW_CROSS_JOIN, LIMITED_SORT

Untuk bereksperimen dengan mode ketat, Anda dapat mengganti konfigurasi ini, atau mengaturnya sebagai properti sesi saat Anda menggunakan klien Presto.

Untuk mengatur konfigurasi pada pembuatan cluster dengan AWS Management Console
  1. Pilih Buat cluster dan pilih Amazon EMR versi 6.8.0, dan Presto atau Trino. Untuk informasi selengkapnya, lihat Menginstal PrestoDB dan Trino.

  2. Tentukan properti konfigurasi untuk mode ketat secara langsung, atau unggah file JSON ke Amazon S3. Secara opsional, pilih untuk metastore Anda. Tentukan VPC, subnet, tindakan bootstrap, key pair, dan grup keamanan Anda. Pilih Buat cluster untuk membuat klaster Anda.

  3. Masuk ke node utama cluster dan jalankan presto-cli atautrino-cli.

  4. Kirim pertanyaan Anda. Mode ketat memvalidasi setiap kueri dan menentukan apakah itu berjalan lama. Bergantung pada strict-mode-fail-query pengaturan Anda, Amazon EMR menolak kueri atau memunculkan peringatan.

  5. Setelah selesai dengan kueri, hentikan klaster dan hapus sumber daya Anda.

Untuk mengatur konfigurasi pada cluster yang sedang berjalan dengan AWS CLI
  1. Masuk ke node utama cluster Anda dengan AWS CLI dan jalankan presto-cli atautrino-cli.

  2. Jalankan perintah berikut dengan nilai yang Anda inginkan.

    set session strict_mode_enabled = true; set session strict_mode_fail_query = false; set session strict_mode_restrictions = 'DISALLOW_CROSS_JOIN,LIMITED_SORT';

Pertimbangan-pertimbangan

Saat Anda menggunakan mode ketat, pertimbangkan hal berikut:

  • Dalam beberapa kasus, mode ketat dapat menolak kueri jangka pendek yang tidak menghabiskan banyak sumber daya. Misalnya, kueri pada tabel kecil tidak menerapkan pemfilteran dinamis atau mengganti gabungan bagian dalam dengan gabungan silang. Ini dapat menyebabkan kueri menggunakan predikat partisi wajib atau melarang gabungan silang. Ketika ini terjadi, mode ketat menolak kueri.

  • Pemeriksaan mode ketat hanya diterapkan pada jenis kueri SELECT, INSERT, CREATE TABLE AS SELECT, dan EXPLORE ANALYSIS.

  • Anda hanya dapat menggunakan batasan pada predikat partisi wajib dengan konektor Hive.