Paginare DynamoDB: prezentare generală, cazuri de utilizare și exemple

Paginare Dynamodb Prezentare Generala Cazuri De Utilizare Si Exemple



Gestionarea unor cantități voluminoase de date poate fi o sarcină dificilă pentru managerii de date, în principal dacă rezultatele interogării sau scanării dvs. se desfășoară pe mai multe pagini. Paginarea în DynamoDB permite bazei de date să gestioneze cantitățile mari de date prin împărțirea rezultatelor în mai multe pagini gestionabile. Acest articol explică paginarea DynamoDB și oferă diferite cazuri de utilizare și exemple posibile. De asemenea, evidențiază modul în care paginarea din DynamoDB diferă de paginarea din alte baze de date.

Ce este paginarea în DynamoDB?

În general, paginarea, derivată din cuvintele pagini, este o tehnică utilizată de bazele de date pentru a împărți înregistrările de date în mai multe bucăți, segmente sau pagini. Și, deoarece AWS DynamoDB acceptă stocarea unor cantități mari de date, are capabilități de paginare fiabile.







Componenta de paginare DynamoDB vă asigură că puteți prelua doar până la 1 GB de date per scanare sau interogare. Deși aceasta este o setare implicită, puteți adăuga un parametru limită într-o interogare pentru a specifica o limită. În plus, puteți seta o limită pentru numărul de înregistrări din fiecare interogare de scanare.



În special, există câteva diferențe între paginarea în DynamoDB și paginarea într-o bază de date SQL tipică. Cel mai evident, fiecare înregistrare paginată care este preluată în DynamoDB vine cu un cost direct, ceea ce face ca aceasta să fie o regulă nescrisă atunci când se utilizează paginarea în DynamoDB. Această caracteristică face paginarea un factor vital în limitarea atât a înregistrărilor recuperate, cât și a costurilor directe.



Cum se utilizează paginarea în DynamoDB





1. Paginare în timpul unei operații de interogare

În DynamoDB, o interogare returnează doar rezultatele de până la 1 MB. Dar puteți confirma în mod eficient dacă există mai multe rezultate examinându-vă rezultatele. În special, rezultatul unei operații de interogare de nivel scăzut conține un element LastEvaluatedKey care nu este nul pentru a indica faptul că există mai multe elemente legate de interogarea dvs. pe care ar trebui să le preluați.

Un rezultat fără un element LastEvaluatedKey care nu este nul, implică faptul că toate elementele care se potrivesc interogării se încadrează în limita de 1 MB și nu mai există elemente pentru extragere. Desigur, puteți seta și o limită pentru numărul de articole pe rezultat. Vedeți următorul exemplu de comandă:



interogare aws dynamodb \

--table-name MyTableName \

--key-condition-expression „PartitionKey = :pk \

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

--limita 10 \

Puteți utiliza comanda anterioară pentru a interoga tabelul pentru elementele cu aceleași valori ale expresiei condiției cheie. Să căutăm în tabelul nostru „Comenzi” ID-uri de comandă de la Darry Tech. De asemenea, am stabilit o limită la 10 articole pe pagină. O altă opțiune pentru parametrul –limit este să utilizați parametrul –page-size în același scop.

Paginarea este o operațiune automată în AWS CLI pentru elementele sub 1 MB de date. Puteți adăuga o cheie de pornire exclusivă la comandă dacă doriți ca interogarea dvs. să înceapă dintr-o anumită comandă.

Răspunsul arată astfel:

Rezultatele furnizate arată 10 Darry Tech pe prima pagină. Puteți utiliza valorile LastEvaluatedKey pentru a obține mai multe comenzi care se potrivesc cu valorile cheie expresiei ale căutării dvs. pentru a construi o nouă interogare. Noua solicitare de interogare conține valorile LastEvaluatedKey în parametrul ExclusiveStartKey.

Un exemplu de sintaxă este prezentat în următoarele:

interogare aws dynamodb \

--table-name ExampleTable \

--key-condition-expression „PartitionKey = :pk \

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

--limita 10 \

--exclusive-start-key '{'
PartitionKey ':{' S „: Darry Tech” }, „SortKey” :{ 'S' : '5356' }} '

Comanda anterioară produce următoarele comenzi de compensare în pagina următoare, începând cu ID-ul comenzii care are cheia primară specificată, adică {“PartitionKey”:{“S”: Darry Tech”},”SortKey”:{“S”: ”5356-sy”}}.

2. Paginare în timpul operațiunilor de scanare

De asemenea, este posibil să utilizați paginarea pentru operațiuni de scanare. Totul funcționează la fel ca și în cazul comenzilor de interogare. Cu toate acestea, trebuie să utilizați atributul filter-expression. Comanda arată ca ceea ce avem aici:

scanare aws dynamodb \

--table-name MyTable \

--filtru-expresie „AttributeName = :value” \

--expression-atribut-valori „{':value':{'S':'ABC123'}}' \

--limită douăzeci \

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

Comanda anterioară retrage până la 20 de articole pe pagină din tabelul MyTable, începând cu elementul a cărui cheie primară este {“PartitionKey”: “ABC123”, “SortKey”: “XYZ987”}. Filtrează rezultatele pentru a include numai elementele în care atributul AttributeName are valoarea „ABC123”.

În răspuns, LastEvaluatedKey câmpul conține cheia primară a ultimului element din setul de rezultate. Puteți utiliza această valoare ca ExclusiveStartKey într-un ulterior scanează operațiune pentru a prelua următoarea pagină de rezultate.

Concluzie

Paginarea în DynamoDB îmbunătățește gestionabilitatea datelor. Cu toate acestea, este vital să știți dacă sistemele dvs. vor beneficia de paginare. Este necesar să utilizați paginarea dacă aveți o listă lungă de articole într-o aplicație. În timp ce ilustrația furnizată se concentrează pe apelul AWS CLI, puteți utiliza și paginarea cu SDK-uri AWS, cum ar fi Python's Boto3 sau orice SDK pe care îl preferați.