Penomboran DynamoDB: Gambaran Keseluruhan, Kes Penggunaan dan Contoh

Penomboran Dynamodb Gambaran Keseluruhan Kes Penggunaan Dan Contoh



Menguruskan jumlah data yang banyak boleh menjadi tugas yang sukar untuk pengurus data, terutamanya jika pertanyaan atau hasil imbasan anda dijalankan ke dalam berbilang halaman. Penomboran dalam DynamoDB membolehkan pangkalan data mengendalikan kuantiti data yang besar dengan memecahkan keputusan kepada berbilang halaman yang boleh diurus. Tulisan ini menerangkan penomboran DynamoDB dan menyediakan pelbagai kemungkinan kes dan contoh penggunaan. Ia juga menyerlahkan bagaimana penomboran dalam DynamoDB berbeza daripada penomboran dalam pangkalan data lain.

Apakah Penomboran dalam DynamoDB?

Secara amnya, penomboran, berasal daripada perkataan halaman, ialah teknik yang digunakan oleh pangkalan data untuk membahagikan rekod data kepada beberapa ketulan, segmen atau halaman. Dan memandangkan AWS DynamoDB menyokong penyimpanan sejumlah besar data, ia menampilkan keupayaan penomboran yang boleh dipercayai.







Komponen penomboran DynamoDB memastikan bahawa anda hanya boleh mendapatkan sehingga 1 GB data setiap imbasan atau pertanyaan. Walaupun itu tetapan lalai, anda boleh menambah parameter had dalam pertanyaan untuk menentukan had. Anda boleh menetapkan had untuk bilangan rekod dalam setiap pertanyaan imbasan.



Terutama, beberapa perbezaan wujud antara penomboran dalam DynamoDB dan penomboran dalam pangkalan data SQL biasa. Paling jelas, setiap rekod penomboran yang diambil dalam DynamoDB datang dengan kos langsung, menjadikan ini peraturan tidak bertulis apabila menggunakan penomboran dalam DynamoDB. Ciri ini menjadikan penomboran sebagai faktor penting dalam mengehadkan kedua-dua rekod yang diambil dan kos langsung.



Cara Menggunakan Penomboran dalam DynamoDB





1. Penomboran Semasa Operasi Pertanyaan

Dalam DynamoDB, pertanyaan hanya mengembalikan hasil sehingga 1 MB. Tetapi anda boleh mengesahkan dengan berkesan jika terdapat lebih banyak hasil dengan meneliti keputusan anda. Terutama, hasil operasi pertanyaan peringkat rendah mengandungi elemen LastEvaluatedKey yang bukan nol untuk menunjukkan bahawa terdapat lebih banyak item yang berkaitan dengan pertanyaan anda yang perlu anda dapatkan semula.

Keputusan tanpa elemen LastEvaluatedKey yang bukan nol, membayangkan bahawa semua item yang sepadan dengan pertanyaan muat dalam had 1 MB dan tiada lagi item untuk diambil semula. Sudah tentu, anda juga boleh menetapkan had untuk bilangan item setiap hasil. Lihat contoh arahan berikut:



pertanyaan aws dynamodb \

--table-name MyTableName \

--ungkapan-syarat-kunci 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:pk ':{' S ':' a1234b '}},

--had 10 \

Anda boleh menggunakan arahan sebelumnya untuk menanyakan jadual anda untuk item dengan nilai ungkapan keadaan utama yang sama. Marilah kami mencari jadual 'Pesanan' kami untuk order_Id daripada Darry Tech. Kami juga menetapkan had kepada 10 item setiap halaman. Pilihan lain untuk parameter –limit ialah menggunakan parameter –page-size untuk tujuan yang sama.

Penomboran ialah operasi automatik dalam AWS CLI untuk item di bawah 1MB data. Anda boleh menambah kunci permulaan eksklusif pada arahan jika anda mahu pertanyaan anda bermula daripada pesanan tertentu.

Jawapannya kelihatan seperti ini:

Keputusan yang diberikan menunjukkan 10 Darry Tech pada halaman pertama. Anda boleh menggunakan nilai LastEvaluatedKey untuk mendapatkan lebih banyak pesanan yang sepadan dengan nilai kunci ungkapan carian anda untuk membina pertanyaan baharu. Permintaan pertanyaan baharu mengandungi nilai LastEvaluatedKey dalam parameter ExclusiveStartKey.

Contoh sintaks ditunjukkan dalam perkara berikut:

pertanyaan aws dynamodb \

--table-name Contoh Jadual \

--ungkapan-syarat-kunci 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:pk ':{' S ': Darry Tech ' \

--had 10 \

--exclusive-start-key '{'
PartitionKey ':{' S ': Darry Tech' }, 'Kekunci Isih' :{ 'S' : '5356' }} '

Perintah sebelumnya menghasilkan perintah setoff seterusnya dalam halaman seterusnya, bermula dengan ID pesanan yang mempunyai kunci utama yang ditentukan, iaitu {“PartitionKey”:{“S”: Darry Tech”},”SortKey”:{“S”: ”5356-sy”}}.

2. Penomboran Semasa Operasi Imbasan

Ia juga mungkin untuk menggunakan penomboran untuk operasi imbasan. Semuanya berfungsi dengan cara yang sama seperti dengan arahan pertanyaan. Walau bagaimanapun, anda perlu menggunakan atribut ungkapan penapis. Perintah itu kelihatan seperti yang kita ada di sini:

imbasan aws dynamodb \

--table-name MyTable \

--ekspresi penapis 'AttributeName = :value' \

--expression-attribute-values '{':value':{'S':'ABC123'}}' \

--had dua puluh \

--kunci-mula-eksklusif '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

Perintah sebelumnya membatalkan sehingga 20 item setiap halaman daripada jadual MyTable, bermula dengan item yang kunci utamanya ialah {“PartitionKey”: “ABC123”, “SortKey”: “XYZ987”}. Ia menapis hasil untuk memasukkan hanya item yang atribut AttributeName mempunyai nilai 'ABC123'.

Dalam maklum balas, yang LastEvaluatedKey medan mengandungi kunci utama item terakhir dalam set hasil. Anda boleh menggunakan nilai ini sebagai ExclusiveStartKey dalam seterusnya imbas operasi untuk mendapatkan halaman seterusnya hasil carian.

Kesimpulan

Penomboran dalam DynamoDB meningkatkan kebolehurusan data. Walau bagaimanapun, adalah penting untuk mengetahui sama ada sistem anda akan mendapat manfaat daripada penomboran. Ia perlu menggunakan penomboran jika anda mempunyai senarai panjang item dalam aplikasi. Walaupun ilustrasi yang disediakan memfokuskan pada panggilan AWS CLI, anda juga boleh menggunakan penomboran dengan SDK AWS seperti Python's Boto3 atau mana-mana SDK yang anda suka.