Paginasi DynamoDB: Ikhtisar, Kasus Penggunaan, dan Contoh

Paginasi Dynamodb Ikhtisar Kasus Penggunaan Dan Contoh



Mengelola data dalam jumlah besar dapat menjadi tugas berat bagi pengelola data, terutama jika kueri atau hasil pemindaian Anda mencapai beberapa halaman. Paginasi di DynamoDB memungkinkan database untuk menangani jumlah data yang besar dengan memecah hasilnya menjadi beberapa halaman yang dapat dikelola. Tulisan ini menjelaskan paginasi DynamoDB dan menyediakan berbagai kemungkinan kasus penggunaan dan contoh. Ini juga menyoroti perbedaan paginasi di DynamoDB dari paginasi di database lain.

Apa itu Paginasi di DynamoDB?

Secara umum, pagination, yang berasal dari kata pages, adalah teknik yang digunakan oleh database untuk membagi record data menjadi beberapa potongan, segmen, atau halaman. Dan karena AWS DynamoDB mendukung penyimpanan data dalam jumlah besar, fitur ini memiliki kemampuan paginasi yang andal.







Komponen paginasi DynamoDB memastikan bahwa Anda hanya dapat mengambil hingga 1 GB data per pemindaian atau kueri. Meskipun itu adalah setelan default, Anda dapat menambahkan parameter batas dalam kueri untuk menentukan batas. Anda selanjutnya dapat menetapkan batas jumlah rekaman di setiap kueri pemindaian.



Khususnya, ada beberapa perbedaan antara paginasi di DynamoDB dan paginasi di database SQL biasa. Yang paling jelas, setiap catatan paginasi yang diambil di DynamoDB disertai dengan biaya langsung, menjadikannya aturan tidak tertulis saat menggunakan paginasi di DynamoDB. Fitur ini menjadikan pagination sebagai faktor penting dalam membatasi baik record yang diambil maupun biaya langsung.



Cara Menggunakan Paginasi di DynamoDB





1. Paginasi Selama Operasi Kueri

Di DynamoDB, kueri hanya mengembalikan hasil hingga 1 MB. Tetapi Anda dapat mengonfirmasi secara efektif jika ada lebih banyak hasil dengan meneliti hasil Anda. Khususnya, hasil operasi kueri tingkat rendah berisi elemen LastEvaluatedKey yang bukan nol untuk menunjukkan bahwa ada lebih banyak item yang terkait dengan kueri Anda yang harus Anda ambil.

Hasil tanpa elemen LastEvaluatedKey yang bukan nol, menyiratkan bahwa semua item yang cocok dengan kueri sesuai dengan batas 1 MB dan tidak ada lagi item untuk pengambilan. Tentu saja, Anda juga dapat menetapkan batas jumlah item per hasil. Lihat contoh perintah berikut:



kueri aws dynamodb \

--nama-tabelNamaTabelKu \

--kunci-kondisi-ekspresi 'PartitionKey = :pk \

--ekspresi-atribut-nilai '{'
: pk ':{' S ':' a1234b '}},

--batas 10 \

Anda bisa menggunakan perintah sebelumnya untuk mengkueri tabel Anda untuk item dengan nilai ekspresi kondisi kunci yang sama. Mari kita cari tabel 'Pesanan' untuk order_Ids dari Darry Tech. Kami juga menetapkan batas hingga 10 item per halaman. Opsi lain untuk parameter –limit adalah menggunakan parameter –page-size untuk tujuan yang sama.

Paginasi adalah operasi otomatis di AWS CLI untuk item di bawah 1 MB data. Anda dapat menambahkan kunci mulai eksklusif ke perintah jika Anda ingin kueri Anda dimulai dari urutan tertentu.

Responsnya terlihat seperti ini:

Hasil yang diberikan menunjukkan 10 Darry Tech di halaman pertama. Anda dapat menggunakan nilai LastEvaluatedKey untuk mendapatkan lebih banyak pesanan yang cocok dengan nilai kunci ekspresi penelusuran Anda untuk membuat kueri baru. Permintaan kueri baru berisi nilai LastEvaluatedKey dalam parameter ExclusiveStartKey.

Contoh sintaks ditunjukkan sebagai berikut:

kueri aws dynamodb \

--table-name ContohTabel \

--kunci-kondisi-ekspresi 'PartitionKey = :pk \

--ekspresi-atribut-nilai '{'
: pk ':{' S ': Darry Tech' \

--batas 10 \

--exclusive-start-key '{'
PartitionKey ':{' S ': Teknologi Darry' }, 'Urutkan Kunci' :{ 'S' : '5356' }} '

Perintah sebelumnya menghasilkan perintah setoff berikutnya di halaman berikutnya, dimulai dengan ID pesanan yang memiliki kunci utama yang ditentukan, yaitu {“PartitionKey”:{“S”: Darry Tech”},”SortKey”:{“S”: ”5356-sy”}}.

2. Paginasi Selama Operasi Pemindaian

Dimungkinkan juga untuk menggunakan paginasi untuk operasi pemindaian. Semuanya bekerja dengan cara yang sama seperti perintah kueri. Namun, Anda perlu menggunakan atribut filter-expression. Perintahnya terlihat seperti yang kita miliki di sini:

pemindaian dynamodb aws \

--nama-tabelTabelku \

--filter-ekspresi 'Nama Atribut = :nilai' \

--ekspresi-atribut-nilai '{':nilai':{'S':'ABC123'}}' \

--membatasi dua puluh \

--exclusive-start-key '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

Perintah sebelumnya menghentikan hingga 20 item per halaman dari tabel MyTable, dimulai dengan item yang kunci utamanya adalah {“PartitionKey”: “ABC123”, “SortKey”: “XYZ987”}. Ini memfilter hasil untuk hanya menyertakan item dengan atribut AttributeName yang memiliki nilai “ABC123”.

Dalam tanggapannya, para LastEvaluatedKey bidang berisi kunci utama dari item terakhir di set hasil. Anda dapat menggunakan nilai ini sebagai ExclusiveStartKey selanjutnya memindai operasi untuk mengambil halaman hasil berikutnya.

Kesimpulan

Paginasi di DynamoDB meningkatkan keterkelolaan data. Namun, sangat penting untuk mengetahui apakah sistem Anda akan mendapatkan keuntungan dari pagination. Penting untuk menggunakan paginasi jika Anda memiliki daftar item yang panjang dalam suatu aplikasi. Meskipun ilustrasi yang diberikan berfokus pada panggilan AWS CLI, Anda juga dapat menggunakan paginasi dengan SDK AWS seperti Boto3 Python atau SDK apa pun yang Anda sukai.