Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Biasanya, ketika Anda memuat data dari sumber data lain, Amazon DynamoDB mempartisi data tabel Anda pada beberapa server. Anda akan mendapatkan performa yang lebih baik jika mengunggah data ke semua server yang dialokasikan secara bersamaan.
Contoh, misalkan Anda ingin mengunggah pesan pengguna ke tabel DynamoDB yang menggunakan kunci primer komposit dengan UserID
sebagai kunci partisi dan MessageID
sebagai kunci urutan.
Saat mengunggah data, salah satu pendekatan yang dapat Anda lakukan adalah mengunggah semua item pesan untuk setiap pengguna, satu per satu:
UserID | MessageID |
---|---|
U1 |
1 |
U1 | 2 |
U1 | ... |
U1 | ... hingga 100 |
U2 |
1 |
U2 | 2 |
U2 | ... |
U2 | ... hingga 200 |
Masalahnya dalam kasus ini adalah Anda tidak mendistribusikan permintaan tulis ke DynamoDB di seluruh nilai kunci partisi Anda. Anda mengambil satu nilai kunci partisi pada satu waktu dan mengunggah semua itemnya sebelum melanjutkan ke nilai kunci partisi berikutnya dan melakukan hal yang sama.
Di balik layar, DynamoDB mempartisi data di tabel Anda di beberapa server. Untuk sepenuhnya menggunakan semua kapasitas throughput yang disediakan untuk tabel, Anda harus mendistribusikan beban kerja ke nilai kunci partisi Anda. Dengan mengarahkan pekerjaan unggahan dalam jumlah yang tidak merata ke item yang semuanya memiliki nilai kunci partisi yang sama, Anda tidak sepenuhnya menggunakan semua sumber daya yang telah disediakan DynamoDB untuk tabel Anda.
Anda dapat mendistribusikan pekerjaan unggahan Anda menggunakan kunci urutan untuk memuat satu item dari setiap nilai kunci partisi, kemudian item lain dari setiap nilai kunci partisi, dan seterusnya:
UserID | MessageID |
---|---|
U1 |
1 |
U2 | 1 |
U3 | 1 |
... | ... |
U1 |
2 |
U2 | 2 |
U3 | 2 |
... | ... |
Setiap unggahan dalam urutan ini menggunakan nilai kunci partisi yang berbeda, sehingga lebih banyak server DynamoDB sibuk secara bersamaan dan meningkatkan performa throughput Anda.