JELASKAN bergabung 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 bergabung untuk paket kueri Amazon Redshift

Amazon Redshift menggunakan operator gabungan yang berbeda untuk mengambil data berdasarkan hal berikut:

  • Desain fisik tabel yang sedang digabungkan

  • Struktur kueri

  • Lokasi data yang dibutuhkan oleh join

  • Persyaratan spesifik dari kueri itu sendiri

Jenis gabungan berikut biasanya digunakan di Amazon Redshift:

  • Loop bersarang — Loop bersarang terjadi ketika tabel hash tidak dapat dibuat di antara dua tabel. Loop bersarang digunakan terutama untuk cross-join (produk Cartesian) dan beberapa ketidaksetaraan bergabung. Ini akan membutuhkan database untuk memeriksa setiap nilai di tabel kiri terhadap setiap nilai di tabel kanan. Kompleksitas gabungan loop bersarang adalah “kuadrat” di mana Anda harus melakukan kira-kira N* N (atau N²) operasi yang berbeda untuk memproses gabungan. Loop bersarang adalah tipe gabungan yang paling tidak optimal.

  • Hash join — Dalam bergabung dengan hash, kondisi gabungan tidak sempurna untuk satu sama lain, tetapi Amazon Redshift dapat mengelola menggunakan gabungan hash dengan sedikit kerja. Gabungan hash biasanya lebih cepat daripada gabungan loop bersarang. Amazon Redshift melihat kedua tabel dan di antara mereka membuat tabel hash, yang seperti tabel pencarian yang berada di tengah tabel. Misalnya, operator hash join dan hash digunakan saat menggabungkan tabel di mana kolom gabungan bukan kunci distribusi dan kunci pengurutan.

  • Gabung bergabung - Gabungan gabungan biasanya merupakan gabungan tercepat dan digunakan untuk sambungan dalam dan gabungan luar. Dalam gabungan gabungan, kedua tabel sempurna untuk satu sama lain. Ini berarti bahwa kondisi gabungan di setiap sisi adalah kunci distribusi dan kunci sortir. Kedua tabel berbaris sempurna tanpa perlu penyesuaian. Perhatikan bahwa baris yang tidak disortir dalam tabel harus kurang dari 20 persen dari tabel yang bergabung. Untuk melihat persentase baris yang tidak disortir, kueri tabel sistem SVV_TABLE_INFO. Gabungan gabungan tidak digunakan untuk bergabung penuh.