Distribusi data untuk optimasi kueri - Amazon Redshift

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

Distribusi data untuk optimasi kueri

Saat Anda memuat data ke dalam tabel, Amazon Redshift mendistribusikan baris tabel ke masing-masing node komputasi sesuai dengan gaya distribusi tabel. Saat Anda menjalankan kueri, pengoptimal kueri mendistribusikan ulang baris ke node komputasi sesuai kebutuhan untuk melakukan gabungan dan agregasi apa pun. Tujuan dalam memilih gaya distribusi tabel adalah untuk meminimalkan dampak dari langkah redistribusi dengan menemukan data di tempat yang seharusnya sebelum kueri dijalankan.

catatan

Bagian ini akan memperkenalkan Anda pada prinsip-prinsip distribusi data dalam database Amazon Redshift. Kami menyarankan Anda membuat tabel Anda denganDISTSTYLE AUTO. Jika Anda melakukannya, Amazon Redshift menggunakan optimasi tabel otomatis untuk memilih gaya distribusi data. Untuk informasi selengkapnya, lihat Optimalisasi tabel otomatis. Sisa bagian ini memberikan rincian tentang gaya distribusi.

Konsep distribusi data

Beberapa konsep distribusi data untuk Amazon Redshift mengikuti.

Node dan irisan

Cluster Amazon Redshift adalah sekumpulan node. Setiap node dalam cluster memiliki sistem operasi sendiri, memori khusus, dan penyimpanan disk khusus. Satu node adalah node pemimpin, yang mengelola distribusi data dan tugas pemrosesan kueri ke node komputasi. Node komputasi menyediakan sumber daya untuk melakukan tugas-tugas tersebut.

Penyimpanan disk untuk node komputasi dibagi menjadi beberapa irisan. Jumlah irisan per node tergantung pada ukuran node cluster. Semua node berpartisipasi dalam menjalankan query paralel, bekerja pada data yang didistribusikan secara merata di seluruh irisan. Untuk informasi selengkapnya tentang jumlah irisan yang dimiliki setiap ukuran node, lihat Tentang cluster dan node di Panduan Manajemen Pergeseran Merah Amazon.

Redistribusi data

Saat Anda memuat data ke dalam tabel, Amazon Redshift mendistribusikan baris tabel ke masing-masing irisan node sesuai dengan gaya distribusi tabel. Sebagai bagian dari rencana kueri, pengoptimal menentukan di mana blok data harus ditempatkan untuk menjalankan kueri dengan sebaik-baiknya. Data kemudian dipindahkan secara fisik, atau didistribusikan ulang, sementara kueri berjalan. Redistribusi mungkin melibatkan pengiriman baris tertentu ke node untuk bergabung atau menyiarkan seluruh tabel ke semua node.

Redistribusi data dapat menjelaskan sebagian besar biaya rencana kueri, dan lalu lintas jaringan yang dihasilkannya dapat memengaruhi operasi database lainnya dan memperlambat kinerja sistem secara keseluruhan. Sejauh Anda mengantisipasi tempat terbaik untuk menemukan data pada awalnya, Anda dapat meminimalkan dampak redistribusi data.

Tujuan distribusi data

Saat Anda memuat data ke dalam tabel, Amazon Redshift mendistribusikan baris tabel ke node komputasi dan irisan sesuai dengan gaya distribusi yang Anda pilih saat membuat tabel. Distribusi data memiliki dua tujuan utama:

  • Untuk mendistribusikan beban kerja secara seragam di antara node di cluster. Distribusi yang tidak merata, atau kemiringan distribusi data, memaksa beberapa node untuk melakukan lebih banyak pekerjaan daripada yang lain, yang mengganggu kinerja kueri.

  • Untuk meminimalkan pergerakan data saat kueri berjalan. Jika baris yang berpartisipasi dalam gabungan atau agregat sudah ditempatkan pada node dengan baris penggabungannya di tabel lain, pengoptimal tidak perlu mendistribusikan ulang sebanyak mungkin data saat kueri dijalankan.

Strategi distribusi yang Anda pilih untuk database Anda memiliki konsekuensi penting untuk kinerja kueri, persyaratan penyimpanan, pemuatan data, dan pemeliharaan. Dengan memilih gaya distribusi terbaik untuk setiap tabel, Anda dapat menyeimbangkan distribusi data Anda dan secara signifikan meningkatkan kinerja sistem secara keseluruhan.