Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Partisi dan distribusi data di DynamoDB
Amazon DynamoDB menyimpan data dalam partisi. Partisi adalah alokasi penyimpanan untuk tabel, didukung oleh solid state drive (SSDs) dan secara otomatis direplikasi di beberapa Availability Zone dalam suatu AWS Region. Manajemen partisi ditangani sepenuhnya oleh DynamoDB—Anda tidak perlu mengelola partisi sendiri.
Saat Anda membuat tabel, status awal tabel tersebut adalah CREATING
. Selama fase ini, DynamoDB mengalokasikan partisi yang memadai ke tabel sehingga dapat menangani persyaratan throughput yang Anda sediakan. Anda dapat mulai menulis dan membaca data tabel setelah status tabel berubah menjadi ACTIVE
.
DynamoDB mengalokasikan partisi tambahan ke tabel dalam situasi berikut:
-
Jika Anda meningkatkan pengaturan throughput tabel yang tersedia melebihi apa yang dapat didukung oleh partisi yang ada.
-
Jika partisi yang ada memenuhi kapasitas dan diperlukan lebih banyak ruang penyimpanan.
Manajemen partisi terjadi secara otomatis di latar belakang dan transparan bagi aplikasi Anda. Tabel Anda tetap tersedia dan sepenuhnya mendukung persyaratan throughput yang Anda sediakan.
Untuk rincian selengkapnya, lihat Desain kunci partisi.
Indeks sekunder global di DynamoDB juga terdiri dari partisi. Data dalam indeks sekunder global disimpan secara terpisah dari data dalam tabel dasarnya, namun partisi indeks berperilaku sama seperti partisi tabel.
Distribusi data: Kunci partisi
Jika tabel Anda memiliki kunci primer sederhana (hanya kunci partisi), DynamoDB menyimpan dan mengambil setiap item berdasarkan nilai kunci partisinya.
Untuk menulis item ke tabel, DynamoDB menggunakan nilai kunci partisi sebagai input ke fungsi hash internal. Nilai keluaran dari fungsi hash menentukan partisi tempat item akan disimpan.
Untuk membaca item dari tabel, Anda harus menentukan nilai kunci partisi untuk item tersebut. DynamoDB menggunakan nilai ini sebagai masukan ke fungsi hashnya, menghasilkan partisi tempat item dapat ditemukan.
Diagram berikut menunjukkan tabel bernama Pets, yang mencakup beberapa partisi. Kunci utama tabel adalah AnimalType(hanya atribut kunci ini yang ditampilkan). DynamoDB menggunakan fungsi hashnya untuk menentukan tempat menyimpan item baru, dalam hal ini berdasarkan nilai hash string Dog. Perhatikan bahwa item tidak disimpan dalam urutan yang diurutkan. Lokasi setiap item ditentukan oleh nilai hash kunci partisinya.
catatan
DynamoDB dioptimalkan untuk distribusi item yang seragam di seluruh partisi tabel, tidak peduli berapa banyak partisi yang ada. Kami menyarankan Anda memilih kunci partisi yang dapat memiliki sejumlah besar nilai berbeda yang berhubungan dengan jumlah item dalam tabel.
Distribusi data: Kunci partisi dan kunci urutan
Jika tabel memiliki kunci primer gabungan (kunci partisi dan kunci urutan), DynamoDB menghitung nilai hash kunci partisi dengan cara yang sama seperti yang dijelaskan dalamDistribusi data: Kunci partisi. Namun, ia cenderung menjaga item yang memiliki nilai kunci partisi yang sama berdekatan dan diurutkan berdasarkan nilai atribut kunci sortir. Kumpulan item yang memiliki nilai kunci partisi yang sama disebut koleksi item. Koleksi item dioptimalkan untuk pengambilan rentang item yang efisien dalam koleksi. Jika tabel Anda tidak memiliki indeks sekunder lokal, DynamoDB akan secara otomatis membagi koleksi item Anda menjadi partisi sebanyak yang diperlukan untuk menyimpan data dan menyajikan throughput baca dan tulis.
Untuk menulis item ke tabel, DynamoDB menghitung nilai hash kunci partisi untuk menentukan partisi mana yang harus berisi item tersebut. Di partisi itu, beberapa item mungkin memiliki nilai kunci partisi yang sama. Jadi DynamoDB menyimpan item tersebut di antara item lainnya dengan kunci partisi yang sama, dalam urutan menaik berdasarkan kunci urutan.
Untuk membaca item dari tabel, Anda harus menentukan nilai kunci partisi dan nilai kunci urutan. DynamoDB menghitung nilai hash kunci partisi, menghasilkan partisi tempat item dapat ditemukan.
Anda dapat membaca beberapa item dari tabel dalam satu operasi (Query
) jika item yang Anda inginkan memiliki nilai kunci partisi yang sama. DynamoDB mengembalikan semua item dengan nilai kunci partisi tersebut. Secara opsional, Anda dapat menerapkan ketentuan pada kunci urutan sehingga hanya mengembalikan item dalam rentang nilai tertentu.
Misalkan tabel Pets memiliki kunci primer komposit yang terdiri dari AnimalType(kunci partisi) dan Nama (kunci sortir). Diagram berikut menunjukkan DynamoDB menulis item dengan nilai kunci partisi Dog dan nilai kunci urutan Fido.
Untuk membaca item yang sama dari tabel Pets, DynamoDB menghitung nilai hash dari Dog, menghasilkan partisi tempat item tersebut disimpan. DynamoDB kemudian memindai nilai atribut kunci urutan hingga menemukan Fido.
Untuk membaca semua item dengan Dog, Anda dapat mengeluarkan Query
operasi tanpa menentukan kondisi kunci pengurutan. AnimalType Secara default, item dikembalikan dalam urutan penyimpanannya (yaitu, dalam urutan naik oleh kunci urutan). Atau, Anda dapat meminta urutan menurun.
Untuk mengkueri hanya beberapa item Dog, Anda dapat menerapkan syarat untuk kunci urutan (misalnya, hanya item Dog di mana Name dimulai dengan huruf yang berada dalam rentang A
hingga K
).
catatan
Dalam tabel DynamoDB, tidak ada batasan atas jumlah nilai kunci urutan yang berbeda per nilai kunci partisi. Jika Anda perlu untuk menyimpan jutaan item Dog di tabel Pets, DynamoDB akan mengalokasikan cukup penyimpanan untuk menangani persyaratan ini secara otomatis.