Praktik terbaik untuk menyimpan item dan atribut besar di DynamoDB - Amazon DynamoDB

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

Praktik terbaik untuk menyimpan item dan atribut besar di DynamoDB

Amazon DynamoDB membatasi ukuran setiap item yang Anda simpan dalam tabel hingga 400 KB (lihat). Layanan, akun, dan tabel kuota di Amazon DynamoDB Jika aplikasi Anda perlu menyimpan data dalam suatu item lebih dari yang diizinkan oleh batas ukuran DynamoDB, Anda dapat mencoba mengompresi satu atau lebih atribut besar atau memecah item menjadi beberapa item (diindeks secara efisien dengan kunci pengurutan). Anda juga dapat menyimpan item sebagai objek di Amazon Simple Storage Service (Amazon S3) dan menyimpan pengidentifikasi objek Amazon S3 di item DynamoDB Anda.

Sebagai praktik terbaik, Anda harus memanfaatkan ReturnConsumedCapacityparameter saat menulis item untuk memantau dan memperingatkan ukuran item yang mendekati ukuran item maksimum 400 KB. Melebihi ukuran item maksimum akan mengakibatkan upaya penulisan yang gagal. Pemantauan dan peringatan pada ukuran item akan memungkinkan Anda untuk mengurangi masalah ukuran item sebelum berdampak pada aplikasi Anda.

Mengompresi nilai atribut besar

Mengompresi nilai atribut yang besar dapat membuatnya sesuai dengan batas item di DynamoDB dan mengurangi biaya penyimpanan Anda. Algoritma kompresi seperti GZIP atau LZO menghasilkan output biner yang kemudian dapat Anda simpan dalam tipe Binary atribut di dalam item.

Sebagai contoh, pertimbangkan tabel yang menyimpan pesan yang ditulis oleh pengguna forum. Pesan semacam itu sering mengandung string teks yang panjang, yang merupakan kandidat untuk kompresi. Meskipun kompresi dapat mengurangi ukuran item, sisi negatifnya adalah nilai atribut terkompresi tidak berguna untuk pemfilteran.

Untuk kode sampel yang menunjukkan cara mengompresi pesan tersebut di DynamoDB, lihat berikut ini:

Partisi vertikal

Solusi alternatif untuk menangani item besar adalah memecahnya menjadi potongan data yang lebih kecil dan mengaitkan semua item yang relevan dengan nilai kunci partisi. Anda kemudian dapat menggunakan string kunci sortir untuk mengidentifikasi informasi terkait yang disimpan di sampingnya. Dengan melakukan ini, dan memiliki beberapa item yang dikelompokkan berdasarkan nilai kunci partisi yang sama, Anda membuat koleksi item.

Untuk informasi lebih lanjut tentang pendekatan ini, lihat:

Menyimpan nilai atribut besar di Amazon S3

Seperti yang disebutkan sebelumnya, Anda juga dapat menggunakan Amazon S3 untuk menyimpan nilai atribut besar yang tidak dapat ditampung dalam item DynamoDB. Anda dapat menyimpannya sebagai objek di Amazon S3, lalu menyimpan pengidentifikasi objek di item DynamoDB Anda.

Anda juga dapat menggunakan dukungan metadata objek di Amazon S3 untuk menyediakan tautan kembali ke item induk di DynamoDB. Simpan nilai kunci primer item sebagai metadata Amazon S3 dari objek di Amazon S3. Tindakan ini sering kali membantu pemeliharaan objek Amazon S3.

Misalnya, perhatikan ProductCatalog tabelnya. Item dalam tabel ini menyimpan informasi tentang harga item, deskripsi, penulis buku, dan dimensi untuk produk lainnya. Jika Anda ingin menyimpan gambar produk yang terlalu besar untuk suatu item, Anda dapat menyimpan gambar tersebut di Amazon S3, bukan di DynamoDB.

Saat mengimplementasikan strategi ini, perhatikan hal berikut:

  • DynamoDB tidak mendukung transaksi yang melintasi Amazon S3 dan DynamoDB. Oleh karena itu, aplikasi Anda harus menangani segala kegagalan, yang dapat mencakup pembersihan objek Amazon S3 yang tidak ada lagi.

  • Amazon S3 membatasi panjang pengidentifikasi objek. Jadi, Anda harus mengatur data Anda sedemikian rupa sehingga tidak menghasilkan pengidentifikasi objek yang terlalu panjang atau melanggar batasan Amazon S3 lainnya.

Untuk informasi selengkapnya tentang cara menggunakan Amazon S3, lihat Panduan Pengguna Amazon Simple Storage Service.