Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Perencanaan kueri dan alur kerja pelaksanaan
Ilustrasi berikut memberikan tampilan tingkat tinggi dari alur kerja perencanaan kueri dan eksekusi.
Alur kerja perencanaan kueri dan eksekusi mengikuti langkah-langkah berikut:
-
Node pemimpin menerima kueri dan mengurai SQL.
-
Parser menghasilkan pohon kueri awal yang merupakan representasi logis dari kueri asli. Amazon Redshift kemudian memasukkan pohon kueri ini ke pengoptimal kueri.
-
Pengoptimal mengevaluasi dan jika perlu menulis ulang kueri untuk memaksimalkan efisiensinya. Proses ini terkadang menghasilkan pembuatan beberapa kueri terkait untuk menggantikan satu kueri.
-
Pengoptimal menghasilkan rencana kueri (atau beberapa, jika langkah sebelumnya menghasilkan beberapa kueri) untuk eksekusi dengan kinerja terbaik. Rencana kueri menentukan opsi eksekusi seperti tipe gabungan, urutan gabungan, opsi agregasi, dan persyaratan distribusi data.
Anda dapat menggunakan EXPLAIN perintah untuk melihat rencana kueri. Rencana kueri adalah alat mendasar untuk menganalisis dan menyetel kueri kompleks. Untuk informasi selengkapnya, lihat Membuat dan menafsirkan rencana kueri.
-
Mesin eksekusi menerjemahkan rencana kueri ke dalam langkah-langkah, segmen, dan aliran:
- Langkah
-
Setiap langkah adalah operasi individual yang diperlukan selama eksekusi query. Langkah-langkah dapat digabungkan untuk memungkinkan node komputasi melakukan query, join, atau operasi database lainnya.
- Segment
-
Kombinasi beberapa langkah yang dapat dilakukan oleh satu proses, juga unit kompilasi terkecil yang dapat dieksekusi oleh irisan node komputasi. I ris an adalah unit pemrosesan paralel di Amazon Redshift. Segmen dalam aliran berjalan secara paralel.
- Streaming
-
Kumpulan segmen yang akan dibagikan di atas irisan simpul komputasi yang tersedia.
Mesin eksekusi menghasilkan kode yang dikompilasi berdasarkan langkah, segmen, dan aliran. Kode yang dikompilasi berjalan lebih cepat daripada kode yang ditafsirkan dan menggunakan kapasitas komputasi yang lebih sedikit. Kode yang dikompilasi ini kemudian disiarkan ke node komputasi.
catatan
Saat membandingkan kueri Anda, Anda harus selalu membandingkan waktu untuk eksekusi kedua kueri, karena waktu eksekusi pertama mencakup overhead kompilasi kode. Untuk informasi selengkapnya, lihat Faktor-faktor yang mempengaruhi kinerja kueri.
-
Irisan simpul komputasi menjalankan segmen kueri secara paralel. Sebagai bagian dari proses ini, Amazon Redshift memanfaatkan komunikasi jaringan, memori, dan manajemen disk yang dioptimalkan untuk meneruskan hasil perantara dari satu langkah rencana kueri ke langkah berikutnya. Ini juga membantu mempercepat eksekusi query.
Langkah 5 dan 6 terjadi sekali untuk setiap aliran. Mesin membuat segmen yang dapat dieksekusi untuk satu aliran dan mengirimkannya ke node komputasi. Ketika segmen aliran itu selesai, mesin menghasilkan segmen untuk aliran berikutnya. Dengan cara ini, mesin dapat menganalisis apa yang terjadi di aliran sebelumnya (misalnya, apakah operasi berbasis disk) untuk mempengaruhi generasi segmen di aliran berikutnya.
Ketika node komputasi selesai, mereka mengembalikan hasil kueri ke node pemimpin untuk pemrosesan akhir. Node pemimpin menggabungkan data ke dalam satu set hasil dan menangani penyortiran atau agregasi yang diperlukan. Node pemimpin kemudian mengembalikan hasil ke klien.
catatan
Node komputasi mungkin mengembalikan beberapa data ke node pemimpin selama eksekusi kueri jika perlu. Misalnya, jika Anda memiliki subquery dengan klausa LIMIT, batas diterapkan pada node pemimpin sebelum data didistribusikan kembali di seluruh cluster untuk diproses lebih lanjut.