JELASKAN redistribusi data untuk paket kueri Amazon Redshift - AWS Bimbingan Preskriptif

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

JELASKAN redistribusi data untuk paket kueri Amazon Redshift

Selama langkah-langkah bergabung, sepotong mungkin perlu bekerja dengan data yang tidak disimpan secara lokal, dan transmisi jaringan (pergerakan data antara node komputasi) adalah operasi kueri yang paling mahal.

EXPLAINOutput untuk gabungan juga menentukan metode untuk bagaimana data dipindahkan di sekitar cluster untuk memfasilitasi gabungan. Pergerakan data ini dapat berupa siaran atau redistribusi.

  • Dalam siaran, nilai data dari satu sisi gabungan disalin dari setiap node komputasi ke setiap node komputasi lainnya, sehingga setiap node komputasi berakhir dengan salinan data yang lengkap.

  • Dalam redistribusi, nilai data yang berpartisipasi dikirim dari irisan mereka saat ini ke irisan baru (mungkin pada node yang berbeda). Data biasanya didistribusikan ulang agar sesuai dengan kunci distribusi dari tabel lain yang berpartisipasi dalam gabungan jika kunci distribusi itu adalah salah satu kolom yang bergabung. Jika tidak satu pun dari tabel memiliki kunci distribusi pada salah satu kolom yang bergabung, baik kedua tabel didistribusikan atau tabel bagian dalam disiarkan ke setiap node.

EXPLAINOutputnya juga mereferensikan tabel dalam dan luar.

  • Tabel bagian dalam dipindai terlebih dahulu dan muncul di dekat bagian bawah rencana kueri. Tabel bagian dalam adalah tabel yang diperiksa untuk mencocokkan baris di tabel build. Biasanya, meja bagian dalam yang disimpan dalam memori adalah tabel sumber untuk hashing, dan jika mungkin, adalah tabel yang lebih kecil dari keduanya yang digabungkan.

  • Tabel luar adalah sumber baris yang cocok dengan tabel bagian dalam dan biasanya dibaca dari disk. Pengoptimal kueri memilih tabel bagian dalam dan luar berdasarkan statistik database dari perintah terbaru. ANALYZE Urutan tabel dalam FROM klausa kueri tidak menentukan tabel mana yang dalam dan mana yang luar.

Gunakan atribut berikut dalam rencana kueri untuk mengidentifikasi bagaimana data dipindahkan untuk memfasilitasi kueri:

  • DS_BCAST_INNER - Menunjukkan bahwa salinan dari seluruh tabel gabungan bagian dalam sedang disiarkan ke semua node komputasi.

  • DS_DIST_ALL_NONE — Tidak diperlukan redistribusi karena tabel bagian dalam telah didistribusikan ke setiap node yang menggunakan. DISTSTYLE ALL Seluruh tabel terletak di setiap node komputasi.

  • DS_DIST_NONE — Tidak diperlukan redistribusi karena irisan yang sesuai ditempatkan pada node komputasi. Ini adalah opsi yang paling efisien karena tidak ada transfer jaringan.

  • DS_DIST_INNER - Menunjukkan bahwa tabel gabungan bagian dalam didistribusikan kembali. Jika tabel bagian dalam jauh lebih kecil atau jarang diperbarui, pertimbangkan untuk mengubah tabel itu menjadiDISTSTYLE ALL.

  • DS_DIST_OUTER - Menunjukkan bahwa tabel gabungan luar didistribusikan kembali. Jika tabel luar jauh lebih kecil atau jarang diperbarui, pertimbangkan untuk mengubah tabel itu menjadiDISTSTYLE ALL.

  • DS_DIST_ALL_INNER - Menunjukkan bahwa tabel gabungan bagian dalam sedang dikirim ke satu node karena tabel gabungan menggunakan. DISTSTYLE ALL Gabungan ini dijalankan pada satu node dan cenderung lambat.

  • DS_DIST_BOTH - Menunjukkan bahwa kedua tabel dalam gabungan sedang didistribusikan kembali ke semua node. Ini adalah opsi terburuk yang mungkin.