DynamoDB - Indeks
DynamoDB menggunakan indeks untuk atribut kunci utama guna meningkatkan akses. Mereka mempercepat akses aplikasi dan pengambilan data, dan mendukung kinerja yang lebih baik dengan mengurangi kelambatan aplikasi.
Indeks Sekunder
Indeks sekunder memiliki subset atribut dan kunci alternatif. Anda menggunakannya melalui operasi kueri atau pemindaian, yang menargetkan indeks.
Isinya termasuk atribut yang Anda proyeksikan atau salin. Dalam pembuatan, Anda menentukan kunci alternatif untuk indeks, dan atribut apa pun yang ingin Anda proyeksikan dalam indeks. DynamoDB kemudian melakukan salinan atribut ke dalam indeks, termasuk atribut kunci utama yang bersumber dari tabel. Setelah melakukan tugas-tugas ini, Anda cukup menggunakan query / scan seolah-olah melakukan di atas meja.
DynamoDB secara otomatis menyimpan semua indeks sekunder. Pada operasi item, seperti menambah atau menghapus, itu memperbarui indeks apa pun di tabel target.
DynamoDB menawarkan dua jenis indeks sekunder -
Global Secondary Index- Indeks ini menyertakan kunci partisi dan kunci sortir, yang mungkin berbeda dari tabel sumber. Ini menggunakan label "global" karena kemampuan query / scan pada indeks untuk menjangkau semua data tabel, dan di semua partisi.
Local Secondary Index- Indeks ini berbagi kunci partisi dengan tabel, tetapi menggunakan kunci pengurutan yang berbeda. Sifat “lokal” -nya dihasilkan dari semua partisi yang mencakup partisi tabel dengan nilai kunci partisi yang identik.
Jenis indeks terbaik untuk digunakan bergantung pada kebutuhan aplikasi. Pertimbangkan perbedaan antara keduanya yang disajikan dalam tabel berikut -
Kualitas | Indeks Sekunder Global | Indeks Sekunder Lokal |
---|---|---|
Skema Kunci | Ini menggunakan kunci utama sederhana atau komposit. | Itu selalu menggunakan kunci utama komposit. |
Atribut Kunci | Kunci partisi indeks dan kunci urutkan dapat terdiri dari atribut string, angka, atau tabel biner. | Kunci partisi dari indeks adalah atribut yang dibagikan dengan kunci partisi tabel. Kunci pengurutan dapat berupa atribut string, angka, atau tabel biner. |
Batas Ukuran Per Nilai Kunci Partisi | Mereka tidak memiliki batasan ukuran. | Ini memberlakukan batas maksimum 10GB pada ukuran total item yang diindeks yang terkait dengan nilai kunci partisi. |
Operasi Indeks Online | Anda dapat menelurkannya saat pembuatan tabel, menambahkannya ke tabel yang sudah ada, atau menghapus yang sudah ada. | Anda harus membuatnya saat pembuatan tabel, tetapi tidak dapat menghapusnya atau menambahkannya ke tabel yang sudah ada. |
Pertanyaan | Ini memungkinkan kueri yang mencakup seluruh tabel, dan setiap partisi. | Mereka menangani satu partisi melalui nilai kunci partisi yang disediakan dalam kueri. |
Konsistensi | Kueri indeks ini hanya menawarkan opsi yang pada akhirnya konsisten. | Pertanyaan ini menawarkan pilihan yang pada akhirnya konsisten atau sangat konsisten. |
Biaya Throughput | Ini termasuk pengaturan throughput untuk membaca dan menulis. Kueri / pemindaian menggunakan kapasitas dari indeks, bukan tabel, yang juga berlaku untuk pembaruan penulisan tabel. | Query / scan menggunakan kapasitas pembacaan tabel. Tabel menulis memperbarui indeks lokal, dan menggunakan unit kapasitas tabel. |
Proyeksi | Kueri / pemindaian hanya dapat meminta atribut yang diproyeksikan ke dalam indeks, tanpa pengambilan atribut tabel. | Queries / scan dapat meminta atribut-atribut yang tidak diproyeksikan; selanjutnya, pengambilan otomatis dari mereka terjadi. |
Saat membuat beberapa tabel dengan indeks sekunder, lakukan secara berurutan; artinya membuat tabel dan menunggu hingga mencapai status AKTIF sebelum membuat tabel lain dan menunggu lagi. DynamoDB tidak mengizinkan pembuatan bersamaan.
Setiap indeks sekunder membutuhkan spesifikasi tertentu -
Type - Tentukan lokal atau global.
Name - Menggunakan aturan penamaan yang identik dengan tabel.
Key Schema - Hanya string tingkat atas, angka, atau jenis biner yang diizinkan, dengan jenis indeks menentukan persyaratan lainnya.
Attributes for Projection - DynamoDB secara otomatis memproyeksikannya, dan mengizinkan semua tipe data.
Throughput - Tentukan kapasitas baca / tulis untuk indeks sekunder global.
Batas indeks tetap 5 global dan 5 lokal per tabel.
Anda dapat mengakses informasi rinci tentang indeks dengan DescribeTable. Ini mengembalikan nama, ukuran, dan jumlah item.
Note - Nilai-nilai ini diperbarui setiap 6 jam.
Dalam kueri atau pemindaian yang digunakan untuk mengakses data indeks, berikan nama tabel dan indeks, atribut yang diinginkan untuk hasil, dan pernyataan bersyarat apa pun. DynamoDB menawarkan opsi untuk mengembalikan hasil dalam urutan naik atau turun.
Note - Penghapusan tabel juga menghapus semua indeks.