DynamoDB - Praktik Terbaik

Praktik tertentu mengoptimalkan kode, mencegah kesalahan, dan meminimalkan biaya throughput saat bekerja dengan berbagai sumber dan elemen.

Berikut ini adalah beberapa praktik terbaik yang paling penting dan umum digunakan di DynamoDB.

Tabel

Distribusi tabel berarti pendekatan terbaik menyebarkan aktivitas baca / tulis secara merata di semua item tabel.

Bertujuan untuk akses data seragam pada item tabel. Penggunaan throughput yang optimal bergantung pada pemilihan kunci utama dan pola beban kerja item. Sebarkan beban kerja secara merata di seluruh nilai kunci partisi. Hindari hal-hal seperti sejumlah kecil nilai kunci partisi yang banyak digunakan. Pilihlah pilihan yang lebih baik seperti sejumlah besar nilai kunci partisi yang berbeda.

Dapatkan pemahaman tentang perilaku partisi. Perkirakan partisi yang dialokasikan secara otomatis oleh DynamoDB.

DynamoDB menawarkan penggunaan throughput burst, yang menyimpan throughput yang tidak digunakan untuk "semburan" daya. Hindari penggunaan berlebihan opsi ini karena semburan menghabiskan banyak throughput dengan cepat; lebih jauh lagi, ini tidak membuktikan sumber daya yang dapat diandalkan.

Pada unggahan, distribusikan data untuk mencapai kinerja yang lebih baik. Terapkan ini dengan mengunggah ke semua server yang dialokasikan secara bersamaan.

Cache sering kali menggunakan item untuk memindahkan aktivitas baca ke cache daripada database.

Item

Pembatasan, kinerja, ukuran, dan biaya akses tetap menjadi perhatian terbesar dengan item. Pilih tabel satu-ke-banyak. Hapus atribut dan bagi tabel agar sesuai dengan pola akses. Anda dapat meningkatkan efisiensi secara dramatis melalui pendekatan sederhana ini.

Kompres nilai besar sebelum menyimpannya. Memanfaatkan alat kompresi standar. Gunakan penyimpanan alternatif untuk nilai atribut besar seperti S3. Anda dapat menyimpan objek di S3, dan pengenal di item tersebut.

Distribusikan atribut besar di beberapa item melalui potongan item virtual. Ini memberikan solusi untuk batasan ukuran item.

Kueri dan Pemindaian

Kueri dan pemindaian terutama mengalami tantangan konsumsi throughput. Hindari lonjakan, yang biasanya dihasilkan dari hal-hal seperti beralih ke pembacaan yang sangat konsisten. Gunakan pemindaian paralel dengan sumber daya rendah (mis., Fungsi latar belakang tanpa pembatasan). Selain itu, gunakan hanya dengan tabel besar, dan situasi di mana Anda tidak sepenuhnya memanfaatkan operasi throughput atau pemindaian menawarkan kinerja yang buruk.

Indeks Sekunder Lokal

Indeks menyajikan masalah di bidang biaya throughput dan penyimpanan, serta efisiensi kueri. Hindari pengindeksan kecuali Anda sering menanyakan atribut. Dalam proyeksi, pilihlah dengan bijak karena mereka menggembungkan indeks. Pilih hanya yang sering digunakan.

Memanfaatkan indeks renggang, artinya indeks di mana kunci pengurutan tidak muncul di semua item tabel. Mereka memanfaatkan kueri pada atribut yang tidak ada di sebagian besar item tabel.

Perhatikan ekspansi koleksi item (semua item tabel dan indeksnya). Operasi tambahkan / perbarui menyebabkan tabel dan indeks bertambah, dan 10 GB tetap menjadi batas untuk koleksi.

Indeks Sekunder Global

Indeks menyajikan masalah di bidang biaya throughput dan penyimpanan, serta efisiensi kueri. Memilih penyebaran atribut utama, yang seperti penyebaran baca / tulis dalam tabel memberikan keseragaman beban kerja. Pilih atribut yang menyebarkan data secara merata. Juga, gunakan indeks renggang.

Manfaatkan indeks sekunder global untuk pencarian cepat dalam kueri yang meminta sejumlah kecil data.