Paginacija DynamoDB: pregled, primeri uporabe in primeri

Paginacija Dynamodb Pregled Primeri Uporabe In Primeri



Upravljanje obsežnih količin podatkov je lahko težka naloga za upravljavce podatkov, predvsem če se vaša poizvedba ali rezultati skeniranja prikažejo na več straneh. Ostranjevanje v DynamoDB omogoča bazi podatkov obdelavo velikih količin podatkov z razdelitvijo rezultatov na več obvladljivih strani. Ta zapis pojasnjuje ostranjevanje DynamoDB in ponuja različne možne primere uporabe in primere. Poudarja tudi, kako se paginacija v DynamoDB razlikuje od paginacije v drugih zbirkah podatkov.

Kaj je paginacija v DynamoDB?

Na splošno je paginacija, izpeljana iz besede strani, tehnika, ki jo baze podatkov uporabljajo za razdelitev podatkovnih zapisov na več kosov, segmentov ali strani. In ker AWS DynamoDB podpira shranjevanje velikih količin podatkov, ima zanesljive zmožnosti paginacije.







Komponenta paginacije DynamoDB zagotavlja, da lahko pridobite samo do 1 GB podatkov na skeniranje ali poizvedbo. Čeprav je to privzeta nastavitev, lahko v poizvedbo dodate parameter omejitve, da določite omejitev. Dodatno lahko nastavite omejitev za število zapisov v vsaki poizvedbi skeniranja.



Predvsem obstaja nekaj razlik med paginacijo v DynamoDB in paginacijo v tipični bazi podatkov SQL. Najbolj očitno je, da ima vsak ostranjeni zapis, ki je pridobljen v DynamoDB, neposredne stroške, zaradi česar je to nenapisano pravilo pri uporabi ostranitve v DynamoDB. Zaradi te funkcije je paginacija pomemben dejavnik pri omejevanju pridobljenih zapisov in neposrednih stroškov.



Kako uporabljati paginacijo v DynamoDB





1. Paginacija med operacijo poizvedbe

V DynamoDB poizvedba vrne le rezultate do 1 MB. Vendar pa lahko učinkovito potrdite, ali je rezultatov več, tako da natančno preučite svoje rezultate. Predvsem rezultat operacije poizvedbe na nizki ravni vsebuje element LastEvaluatedKey, ki ni ničelen, kar pomeni, da je več elementov, povezanih z vašo poizvedbo, ki bi jih morali pridobiti.

Rezultat brez elementa LastEvaluatedKey, ki ni ničelna, pomeni, da se vsi elementi, ki se ujemajo s poizvedbo, ujemajo z omejitvijo 1 MB in ni več elementov za iskanje. Seveda lahko nastavite tudi omejitev števila elementov na rezultat. Oglejte si naslednji vzorčni ukaz:



aws dynamodb poizvedba \

--table-name MyTableName \

--izraz-pogoja-ključa 'PartitionKey = :pk \

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

--omejitev 10 \

Prejšnji ukaz lahko uporabite za poizvedbo v tabeli za postavke z enakimi vrednostmi izraza ključnih pogojev. Poiščimo našo tabelo »Naročila« za order_Ids podjetja Darry Tech. Postavili smo tudi omejitev na 10 elementov na stran. Druga možnost za parameter –limit je uporaba parametra –page-size za isti namen.

Paginacija je samodejna operacija v AWS CLI za elemente pod 1 MB podatkov. Ukazu lahko dodate izključni začetni ključ, če želite, da se vaša poizvedba začne z določenim vrstnim redom.

Odgovor izgleda takole:

Predloženi rezultati prikazujejo 10 Darry Tech na prvi strani. Vrednosti LastEvaluatedKey lahko uporabite za pridobitev več naročil, ki se ujemajo z vrednostmi izraznih ključev vašega iskanja za izdelavo nove poizvedbe. Nova zahteva za poizvedbo vsebuje vrednosti LastEvaluatedKey v parametru ExclusiveStartKey.

Primer sintakse je prikazan v nadaljevanju:

aws dynamodb poizvedba \

--ime-tabele PrimerTabela \

--izraz-pogoja-ključa 'PartitionKey = :pk \

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

--omejitev 10 \

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

Prejšnji ukaz ustvari naslednja naročila za pobotanje na naslednji strani, začenši z ID-jem naročila, ki ima določen primarni ključ, tj. {»PartitionKey«:{»S«: Darry Tech»},»SortKey«:{»S«: ”5356-sy”}}.

2. Označevanje strani med operacijami skeniranja

Za operacije skeniranja je mogoče uporabiti tudi paginacijo. Vse deluje enako kot pri ukazih za poizvedbo. Vendar pa morate uporabiti atribut filter-expression. Ukaz izgleda takole, kot ga imamo tukaj:

aws dynamodb skeniranje \

--ime-tabele Moja tabela \

--filter-izraz 'AttributeName = :value' \

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

--omejitev dvajset \

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

Prejšnji ukaz umakne do 20 elementov na stran iz tabele MyTable, začenši z elementom, katerega primarni ključ je {»PartitionKey«: »ABC123«, »SortKey«: »XYZ987«}. Filtrira rezultate tako, da vključujejo samo elemente, kjer ima atribut AttributeName vrednost »ABC123«.

V odgovoru je LastEvaluatedKey polje vsebuje primarni ključ zadnjega elementa v nizu rezultatov. To vrednost lahko uporabite kot ExclusiveStartKey v naslednjem skeniranje operacijo za pridobitev naslednje strani z rezultati.

Zaključek

Paginacija v DynamoDB izboljša upravljanje podatkov. Vendar pa je bistveno vedeti, ali bo vašim sistemom koristilo številčenje strani. Nujno je treba uporabiti paginacijo, če imate v aplikaciji dolg seznam elementov. Medtem ko je ponujena ilustracija osredotočena na klic AWS CLI, lahko uporabite tudi ostranjevanje s SDK-ji AWS, kot je Pythonov Boto3 ali kateri koli SDK, ki vam je ljubši.