Bekerja dengan tombol sortir - Amazon Redshift

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

Bekerja dengan tombol sortir

catatan

Kami menyarankan Anda membuat tabel Anda denganSORTKEY AUTO. Jika Anda melakukannya, Amazon Redshift menggunakan optimasi tabel otomatis untuk memilih tombol sortir. Untuk informasi selengkapnya, lihat Bekerja dengan optimasi tabel otomatis. Sisa bagian ini memberikan rincian tentang urutan pengurutan.

Saat Anda membuat tabel, Anda dapat mendefinisikan satu atau lebih kolomnya sebagai kunci pengurutan. Ketika data awalnya dimuat ke dalam tabel kosong, baris disimpan pada disk dalam urutan yang diurutkan. Informasi tentang kolom kunci sortir diteruskan ke perencana kueri, dan perencana menggunakan informasi ini untuk membuat rencana yang mengeksploitasi cara data diurutkan. Untuk informasi selengkapnya, lihat CREATE TABLE. Untuk informasi tentang praktik terbaik saat membuat kunci pengurutan, lihatPilih tombol sortir terbaik.

Penyortiran memungkinkan penanganan predikat terbatas rentang yang efisien. Amazon Redshift menyimpan data kolumnar dalam blok disk 1 MB. Nilai min dan max untuk setiap blok disimpan sebagai bagian dari metadata. Jika kueri menggunakan predikat yang dibatasi rentang, prosesor kueri dapat menggunakan nilai min dan maks untuk dengan cepat melewati sejumlah besar blok selama pemindaian tabel. Misalnya, tabel menyimpan lima tahun data yang diurutkan berdasarkan tanggal dan kueri menentukan rentang tanggal satu bulan. Dalam hal ini, Anda dapat menghapus hingga 98 persen blok disk dari pemindaian. Jika data tidak diurutkan, lebih banyak blok disk (mungkin semuanya) harus dipindai.

Anda dapat menentukan kunci sortir majemuk atau interleaved. Kunci sortir majemuk lebih efisien ketika predikat kueri menggunakan awalan, yang merupakan bagian dari kolom kunci pengurutan secara berurutan. Kunci sortir yang disisipkan memberikan bobot yang sama untuk setiap kolom dalam kunci pengurutan, sehingga predikat kueri dapat menggunakan subset kolom apa pun yang membentuk kunci pengurutan, dalam urutan apa pun.

Untuk memahami dampak kunci sortir yang dipilih pada kinerja kueri, gunakan EXPLAIN perintah. Untuk informasi selengkapnya, lihat Perencanaan kueri dan alur kerja eksekusi.

Untuk menentukan jenis pengurutan, gunakan kata kunci INTERLEAVED atau COMPOUND dengan pernyataan CREATE TABLE atau CREATE TABLE AS. Defaultnya adalah COMPOUND. COMPOUND direkomendasikan ketika Anda memperbarui tabel Anda secara teratur dengan operasi INSERT, UPDATE, atau DELETE. Kunci sortir INTERLEAVED dapat menggunakan maksimal delapan kolom. Bergantung pada data dan ukuran cluster Anda, VACUUM REINDEX membutuhkan waktu yang jauh lebih lama daripada VACUUM FULL karena membuat pass tambahan untuk menganalisis kunci sortir yang disisipkan. Operasi pengurutan dan penggabungan dapat memakan waktu lebih lama untuk tabel yang disisipkan karena pengurutan yang disisipkan mungkin harus mengatur ulang lebih banyak baris daripada pengurutan majemuk.

Untuk melihat tombol pengurutan untuk tabel, kueri tampilan SVV_TABLE_INFO sistem.

Penyortiran tata letak data multidimensi (pratinjau)

Berikut ini adalah dokumentasi prarilis untuk penyortiran tata letak data multidimensi tabel, yang dalam rilis pratinjau. Dokumentasi dan fitur dapat berubah. Kami menyarankan Anda menggunakan fitur ini hanya dengan cluster pengujian, dan bukan di lingkungan produksi. Untuk syarat dan ketentuan pratinjau, lihat Partisipasi Layanan Beta dalam Ketentuan AWS Layanan.
catatan

Fitur ini hanya tersedia menggunakan klaster pratinjau atau grup kerja pratinjau. Untuk membuat klaster pratinjau, lihat Membuat klaster pratinjau di Panduan Manajemen Pergeseran Merah Amazon. Untuk membuat grup kerja pratinjau, lihat Membuat grup kerja pratinjau di Panduan Manajemen Amazon Redshift.

Kunci pengurutan tata letak data multidimensi adalah jenis kunci pengurutan AUTO yang didasarkan pada predikat berulang yang ditemukan dalam beban kerja. Jika beban kerja Anda memiliki predikat berulang, Amazon Redshift dapat meningkatkan kinerja pemindaian tabel dengan mengkolokasi baris data yang memenuhi predikat berulang. Alih-alih menyimpan data tabel dalam urutan kolom yang ketat, kunci pengurutan tata letak data multidimensi menyimpan data dengan menganalisis predikat berulang yang muncul dalam beban kerja. Lebih dari satu predikat berulang dapat ditemukan dalam beban kerja. Bergantung pada beban kerja Anda, jenis kunci semacam ini dapat meningkatkan kinerja banyak predikat. Amazon Redshift secara otomatis menentukan apakah metode kunci sortir ini harus digunakan untuk tabel yang didefinisikan dengan kunci AUTO pengurutan.

Misalnya, Anda memiliki tabel yang memiliki data diurutkan dalam urutan kolom. Banyak blok data mungkin perlu diperiksa untuk menentukan apakah mereka memenuhi predikat dalam beban kerja Anda. Tetapi, jika data disimpan pada disk dalam urutan predikat, maka lebih sedikit blok yang perlu dipindai untuk memenuhi kueri. Menggunakan kunci pengurutan tata letak data multidimensi bermanfaat dalam kasus ini.

Untuk melihat apakah kueri menggunakan kunci tata letak data multidimensi, lihat step_attribute kolom SYS_QUERY_DETAIL tampilan. Ketika nilainya multi-dimensional maka tata letak data multidimensi digunakan untuk kueri. Untuk melihat apakah tabel yang ditentukan dengan kunci pengurutan AUTO menggunakan tata letak data multidimensi, lihat sortkey1 kolom SVV_TABLE_INFO tampilan. Ketika nilainya padb_internal_mddl_key_col maka tata letak data multidimensi digunakan untuk kunci pengurutan tabel.

Untuk mencegah Amazon Redshift menggunakan kunci pengurutan tata letak data multidimensi, pilih opsi tombol sortir tabel yang berbeda selain. SORTKEY AUTO Untuk informasi selengkapnya tentang opsi SORTKEY, lihat. CREATE TABLE

Kunci sortir majemuk

Kunci majemuk terdiri dari semua kolom yang tercantum dalam definisi kunci sortir, dalam urutan mereka terdaftar. Kunci sortir majemuk paling berguna ketika filter kueri menerapkan kondisi, seperti filter dan gabungan, yang menggunakan awalan kunci pengurutan. Manfaat kinerja penyortiran majemuk berkurang ketika kueri hanya bergantung pada kolom pengurutan sekunder, tanpa mereferensikan kolom utama. COMPOUND adalah tipe pengurutan default.

Tombol sortir majemuk dapat mempercepat operasi gabungan, GROUP BY dan ORDER BY, dan fungsi jendela yang menggunakan PARTITION BY dan ORDER BY. Misalnya, gabungan gabungan, yang seringkali lebih cepat daripada gabungan hash, layak dilakukan ketika data didistribusikan dan di-presorting pada kolom penggabungan. Tombol sortir majemuk juga membantu meningkatkan kompresi.

Saat Anda menambahkan baris ke tabel yang diurutkan yang sudah berisi data, wilayah yang tidak disortir akan bertambah, yang memiliki efek signifikan pada kinerja. Efeknya lebih besar ketika tabel menggunakan penyortiran interleaved, terutama ketika kolom pengurutan menyertakan data yang meningkat secara monoton, seperti kolom tanggal atau stempel waktu. Jalankan operasi VACUUM secara teratur, terutama setelah pemuatan data yang besar, untuk mengurutkan ulang dan menganalisis ulang data. Untuk informasi selengkapnya, lihat Mengelola ukuran wilayah yang tidak disortir. Setelah menyedot debu untuk menggunakan data, adalah praktik yang baik untuk menjalankan perintah ANALYZE untuk memperbarui metadata statistik untuk perencana kueri. Untuk informasi selengkapnya, lihat Menganalisis tabel.

Kunci pengurutan disisipkan

Urutan yang disisipkan memberikan bobot yang sama untuk setiap kolom, atau subset kolom, dalam kunci pengurutan. Jika beberapa kueri menggunakan kolom yang berbeda untuk filter, maka Anda sering dapat meningkatkan kinerja untuk kueri tersebut dengan menggunakan gaya pengurutan interleaved. Ketika kueri menggunakan predikat restriktif pada kolom pengurutan sekunder, penyortiran interleaved secara signifikan meningkatkan kinerja kueri dibandingkan dengan pengurutan majemuk.

penting

Jangan gunakan kunci sortir interleaved pada kolom dengan atribut yang meningkat secara monoton, seperti kolom identitas, tanggal, atau stempel waktu.

Peningkatan kinerja yang Anda peroleh dengan menerapkan kunci sortir interleaved harus ditimbang terhadap peningkatan waktu beban dan vakum.

Jenis interleaved paling efektif dengan kueri yang sangat selektif yang memfilter pada satu atau lebih kolom kunci sortir di klausa WHERE, misalnya. select c_name from customer where c_region = 'ASIA' Manfaat penyortiran interleaved meningkat dengan jumlah kolom yang diurutkan yang dibatasi.

Jenis interleaved lebih efektif dengan tabel besar. Penyortiran diterapkan pada setiap irisan. Dengan demikian, jenis interleaved paling efektif ketika tabel cukup besar untuk membutuhkan beberapa blok 1 MB per irisan. Di sini, prosesor kueri dapat melewati sebagian besar blok menggunakan predikat restriktif. Untuk melihat jumlah blok yang digunakan tabel, kueri tampilan STV_BLOCKLIST sistem.

Saat menyortir pada satu kolom, pengurutan yang disisipkan mungkin memberikan kinerja yang lebih baik daripada pengurutan majemuk jika nilai kolom memiliki awalan umum yang panjang. Misalnya, URL biasanya dimulai dengan "http://www”. Tombol sortir majemuk menggunakan sejumlah karakter dari awalan, yang menghasilkan banyak duplikasi kunci. Jenis interleaved menggunakan skema kompresi internal untuk nilai peta zona yang memungkinkan mereka untuk membedakan dengan lebih baik di antara nilai kolom yang memiliki awalan umum yang panjang.

Saat memigrasikan cluster yang disediakan Amazon Redshift ke Amazon Redshift Tanpa Server, Redshift mengonversi tabel dengan kunci pengurutan yang disisipkan dan KUNCI DISTSTYLE menjadi kunci pengurutan majemuk. DISTSTYLE tidak berubah. Untuk informasi selengkapnya tentang gaya distribusi, lihat Bekerja dengan gaya distribusi data.

INDEKS ULANG VAKUM

Saat Anda menambahkan baris ke tabel yang diurutkan yang sudah berisi data, kinerja mungkin memburuk seiring waktu. Kerusakan ini terjadi untuk jenis majemuk dan interleaved, tetapi memiliki efek yang lebih besar pada tabel yang disisipkan. VACUUM mengembalikan urutan pengurutan, tetapi operasi dapat memakan waktu lebih lama untuk tabel interleaved karena menggabungkan data interleaved baru mungkin melibatkan modifikasi setiap blok data.

Saat tabel awalnya dimuat, Amazon Redshift menganalisis distribusi nilai di kolom kunci sortir dan menggunakan informasi tersebut untuk interleaving kolom kunci pengurutan yang optimal. Saat tabel tumbuh, distribusi nilai dalam kolom kunci sortir dapat berubah, atau miring, terutama dengan kolom tanggal atau stempel waktu. Jika kemiringan menjadi terlalu besar, kinerja mungkin terpengaruh. Untuk menganalisis kembali kunci sortir dan mengembalikan kinerja, jalankan perintah VACUUM dengan kata kunci REINDEX. Karena harus mengambil analisis ekstra melewati data, VACUUM REINDEX dapat memakan waktu lebih lama dari VACUUM standar untuk tabel interleaved. Untuk melihat informasi tentang kemiringan distribusi kunci dan waktu indeks ulang terakhir, kueri tampilan sistem. SVV_INTERLEAVED_COLUMNS

Untuk informasi lebih lanjut tentang cara menentukan seberapa sering menjalankan VACUUM dan kapan menjalankan VACUUM REINDEX, lihatMemutuskan apakah akan mengindeks ulang.