View a markdown version of this page

Kinerja Amazon Redshift  - Amazon Redshift

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 yang diterbitkan pada 30 Juni 2025.

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

Kinerja Amazon Redshift 

Topik ini menjelaskan komponen Amazon Redshift yang mendorong kinerja. Memahami komponen ini akan membantu Anda menyesuaikan kinerja dan memecahkan masalah kinerja yang buruk dengan Amazon Redshift.

Amazon Redshift mencapai kueri yang dijalankan sangat cepat dengan menggunakan fitur kinerja ini.

Pemrosesan paralel besar-besaran

Pemrosesan paralel besar-besaran (MPP) memungkinkan menjalankan cepat kueri paling kompleks yang beroperasi pada sejumlah besar data. Beberapa node komputasi menangani semua pemrosesan kueri yang mengarah ke agregasi hasil akhir, dengan setiap inti dari setiap node menjalankan segmen kueri terkompilasi yang sama pada bagian dari seluruh data.

Amazon Redshift mendistribusikan baris tabel ke node komputasi sehingga data dapat diproses secara paralel. Dengan memilih kunci distribusi yang sesuai untuk setiap tabel, Anda dapat mengoptimalkan distribusi data untuk menyeimbangkan beban kerja dan meminimalkan pergerakan data dari node ke node. Untuk informasi selengkapnya, lihat Pilih gaya distribusi terbaik.

Memuat data dari file datar memanfaatkan pemrosesan paralel dengan menyebarkan beban kerja di beberapa node sambil membaca dari beberapa file secara bersamaan. Untuk informasi selengkapnya tentang cara memuat data ke dalam tabel, lihatPraktik terbaik Amazon Redshift untuk memuat data.

Penyimpanan data kolumnar

Penyimpanan kolumnar untuk tabel database secara drastis mengurangi I/O kebutuhan disk secara keseluruhan dan merupakan faktor penting dalam mengoptimalkan kinerja kueri analitik. Untuk informasi selengkapnya, lihat Penyimpanan kolumnar.

Ketika kolom diurutkan dengan tepat, prosesor kueri dapat dengan cepat menyaring sebagian besar blok data. Untuk informasi selengkapnya, lihat Pilih kunci pengurutan terbaik.

Kompresi data

Kompresi data mengurangi kebutuhan penyimpanan, sehingga mengurangi disk I/O, yang meningkatkan kinerja kueri. Ketika Anda menjalankan kueri, data terkompresi dibaca ke dalam memori, kemudian dikompresi selama menjalankan kueri. Memuat lebih sedikit data ke dalam memori memungkinkan Amazon Redshift mengalokasikan lebih banyak memori untuk menganalisis data. Karena penyimpanan kolumnar menyimpan data serupa secara berurutan, Amazon Redshift dapat menerapkan pengkodean kompresi adaptif yang secara khusus terkait dengan tipe data kolumnar. Cara terbaik untuk mengaktifkan kompresi data pada kolom tabel adalah dengan mengizinkan Amazon Redshift menerapkan pengkodean kompresi optimal saat Anda memuat tabel dengan data. Untuk mempelajari lebih lanjut tentang menggunakan kompresi data otomatis, lihatMemuat tabel dengan kompresi otomatis.

Pengoptimal kueri

Mesin run kueri Amazon Redshift menggabungkan pengoptimal kueri yang juga MPP-aware memanfaatkan penyimpanan data berorientasi kolom. Pengoptimal kueri Amazon Redshift menerapkan peningkatan dan ekstensi signifikan untuk memproses kueri analitik kompleks yang sering menyertakan gabungan multi-tabel, subkueri, dan agregasi. Untuk mempelajari lebih lanjut tentang mengoptimalkan kueri, lihatPenyetelan kinerja kueri.

Caching hasil

Untuk mengurangi runtime kueri dan meningkatkan kinerja sistem, Amazon Redshift menyimpan hasil jenis kueri tertentu dalam memori pada node pemimpin. Saat pengguna mengirimkan kueri, Amazon Redshift memeriksa cache hasil untuk salinan hasil kueri yang valid dan di-cache. Jika kecocokan ditemukan di cache hasil, Amazon Redshift menggunakan hasil yang di-cache dan tidak menjalankan kueri. Caching hasil transparan bagi pengguna.

Caching hasil diaktifkan secara default. Untuk mematikan cache hasil untuk sesi saat ini, atur mengaktifkan_hasil_cache_untuk_sesi parameter keoff.

Amazon Redshift menggunakan hasil cache untuk kueri baru jika semua hal berikut benar:

  • Pengguna yang mengirimkan kueri memiliki izin akses ke objek yang digunakan dalam kueri.

  • Tabel atau tampilan dalam kueri belum dimodifikasi.

  • Kueri tidak menggunakan fungsi yang harus dievaluasi setiap kali dijalankan, seperti GETDATE.

  • Kueri tidak mereferensikan tabel eksternal Amazon Redshift Spectrum.

  • Parameter konfigurasi yang mungkin mempengaruhi hasil kueri tidak berubah.

  • Kueri secara sintaksis cocok dengan kueri yang di-cache.

Untuk memaksimalkan efektivitas cache dan penggunaan sumber daya yang efisien, Amazon Redshift tidak menyimpan beberapa set hasil kueri yang besar. Amazon Redshift menentukan apakah hasil kueri akan di-cache berdasarkan sejumlah faktor. Faktor-faktor ini termasuk jumlah entri dalam cache dan jenis instans cluster Amazon Redshift Anda.

Untuk menentukan apakah kueri menggunakan cache hasil, kueri SVL_QLOG tampilan sistem. Jika kueri menggunakan cache hasil, kolom source_query mengembalikan ID kueri dari kueri sumber. Jika hasil caching tidak digunakan, nilai kolom source_query adalah NULL.

Contoh berikut menunjukkan bahwa kueri yang dikirimkan oleh userid 104 dan userid 102 menggunakan cache hasil dari kueri yang dijalankan oleh userid 100.

select userid, query, elapsed, source_query from svl_qlog where userid > 1 order by query desc; userid | query | elapsed | source_query -------+--------+----------+------------- 104 | 629035 | 27 | 628919 104 | 629034 | 60 | 628900 104 | 629033 | 23 | 628891 102 | 629017 | 1229393 | 102 | 628942 | 28 | 628919 102 | 628941 | 57 | 628900 102 | 628940 | 26 | 628891 100 | 628919 | 84295686 | 100 | 628900 | 87015637 | 100 | 628891 | 58808694 |

Kode yang dikompilasi

Kompilasi kode — Amazon Redshift menghasilkan dan mengkompilasi kode yang dioptimalkan untuk setiap rencana eksekusi kueri. Kode yang dikompilasi berjalan lebih cepat karena menghilangkan overhead menggunakan penerjemah. Untuk meminimalkan latensi untuk kueri baru sambil mempertahankan manfaat kinerja kode yang dikompilasi, Amazon Redshift menggunakan teknik yang disebut komposisi. Komposisi menghasilkan pengaturan ringan dari logika yang sudah ada sebelumnya untuk memproses kueri baru segera, sementara secara bersamaan mengkompilasi kode khusus kueri yang sangat dioptimalkan di latar belakang. Ini menghapus kompilasi dari jalur kritis eksekusi kueri, sehingga kueri baru dimulai lebih cepat dan memberikan kinerja yang konsisten dengan proses berikutnya.

Amazon Redshift juga menggunakan layanan kompilasi tanpa server untuk menskalakan kompilasi kueri di luar sumber daya komputasi cluster Amazon Redshift. Segmen kode yang dikompilasi di-cache baik secara lokal di cluster dan dalam cache jarak jauh yang hampir tidak terbatas yang tetap ada setelah reboot cluster. Eksekusi berikutnya dari kueri yang sama berjalan lebih cepat karena mereka dapat melewati fase kompilasi. Dengan menggunakan layanan kompilasi yang dapat diskalakan, Amazon Redshift mengkompilasi kode secara paralel untuk memberikan kinerja cepat secara konsisten.