„DynamoDB“ puslapių spausdinimas: apžvalga, naudojimo atvejai ir pavyzdžiai

Dynamodb Puslapiu Spausdinimas Apzvalga Naudojimo Atvejai Ir Pavyzdziai



Didelio duomenų kiekio tvarkymas gali būti sudėtinga duomenų valdytojų užduotis, ypač jei jūsų užklausa arba nuskaitymo rezultatai patenka į kelis puslapius. „DynamoDB“ puslapių žymėjimas leidžia duomenų bazei apdoroti didelius duomenų kiekius, suskaidant rezultatus į kelis valdomus puslapius. Šiame rašte paaiškinama „DynamoDB“ puslapių skirstymas ir pateikiami įvairūs galimi naudojimo atvejai bei pavyzdžiai. Jame taip pat pabrėžiama, kaip puslapių numeravimas „DynamoDB“ skiriasi nuo puslapių numeravimo kitose duomenų bazėse.

Kas yra puslapių kūrimas „DynamoDB“?

Paprastai puslapių rūšiavimas, gaunamas iš žodžių puslapių, yra metodas, kurį duomenų bazės naudoja duomenų įrašams padalyti į kelis gabalus, segmentus arba puslapius. Kadangi AWS DynamoDB palaiko didelių duomenų kiekių saugojimą, jis pasižymi patikimomis puslapių rūšiavimo galimybėmis.







„DynamoDB“ puslapių rūšiavimo komponentas užtikrina, kad vienu nuskaitymu ar užklausa galite gauti tik iki 1 GB duomenų. Nors tai yra numatytasis nustatymas, užklausoje galite pridėti ribos parametrą, kad nurodytumėte ribą. Taip pat galite nustatyti kiekvienos nuskaitymo užklausos įrašų skaičiaus limitą.



Pažymėtina, kad yra keletas skirtumų tarp puslapių žymėjimo DynamoDB ir puslapių žymėjimo įprastoje SQL duomenų bazėje. Akivaizdu, kad kiekvienas „DynamoDB“ nuskaitomas įrašas su puslapiais turi tiesioginį mokestį, todėl tai yra nerašyta taisyklė naudojant „DynamoDB“ puslapius. Dėl šios funkcijos puslapių spausdinimas yra gyvybiškai svarbus veiksnys, ribojantis tiek nuskaitytus įrašus, tiek tiesiogines išlaidas.



Kaip naudoti puslapius „DynamoDB“.





1. Puslapių spausdinimas užklausos operacijos metu

„DynamoDB“ užklausa pateikia tik iki 1 MB rezultatus. Bet jūs galite veiksmingai patvirtinti, ar yra daugiau rezultatų, atidžiai išnagrinėję rezultatus. Pažymėtina, kad žemo lygio užklausos operacijos rezultate yra elementas LastEvaluatedKey, kuris nėra nulis, nurodantis, kad yra daugiau su jūsų užklausa susijusių elementų, kuriuos turėtumėte gauti.

Rezultatas be LastEvaluatedKey elemento, kuris nėra nulis, reiškia, kad visi užklausą atitinkantys elementai telpa į 1 MB ribą ir nebėra nuskaitytų elementų. Žinoma, taip pat galite nustatyti rezultato elementų skaičiaus limitą. Žiūrėkite toliau pateiktą komandos pavyzdį:



aws dynamodb užklausa \

--lentelės pavadinimas Mano lentelės pavadinimas \

--rakto-sąlygos išraiška 'PartitionKey = :pk \

--išraiškos atributo vertės „{“
:pk ':{' S ':' a1234b '}},

– riba 10 \

Galite naudoti ankstesnę komandą, norėdami pateikti užklausą lentelėje elementų su tomis pačiomis rakto sąlygos išraiškos reikšmėmis. Paieškokime lentelėje „Užsakymai“ užsakymo ID iš Darry Tech. Taip pat nustatome 10 elementų viename puslapyje limitą. Kita parametro –limit parinktis yra tam pačiam tikslui naudoti parametrą –page-size.

Puslapių spausdinimas yra automatinė AWS CLI operacija, skirta mažiau nei 1 MB duomenų. Jei norite, kad užklausa prasidėtų nuo tam tikros užsakymo, prie komandos galite pridėti išskirtinį pradžios klavišą.

Atsakymas atrodo taip:

Pateikti rezultatai rodo 10 Darry Tech pirmame puslapyje. Galite naudoti LastEvaluatedKey reikšmes, kad gautumėte daugiau užsakymų, atitinkančių jūsų paieškos išraiškos rakto reikšmes, kad sukurtumėte naują užklausą. Naujoje užklausoje yra LastEvaluatedKey reikšmės parametre ExclusiveStartKey.

Sintaksės pavyzdys parodytas toliau:

aws dynamodb užklausa \

--lentelės pavadinimas Lentelės pavyzdys \

--rakto-sąlygos išraiška 'PartitionKey = :pk \

--išraiškos atributo vertės „{“
:pk ':{' S ': Darry Tech' \

– riba 10 \

--išskirtinis pradžios klavišas „{“
PartitionKey ':{' S ': Darry Tech' }, 'Rūšio raktas' :{ 'S' : '5356' }} '

Ankstesnė komanda pateikia kitus įskaitymo nurodymus kitame puslapyje, pradedant užsakymo ID, turinčiu nurodytą pirminį raktą, t. y. {'PartitionKey':{'S': Darry Tech'},'SortKey':{'S': '5356-sy'}}.

2. Puslapių spausdinimas nuskaitymo metu

Nuskaitymo operacijoms taip pat galima naudoti puslapių rūšiavimą. Viskas veikia taip pat, kaip ir su užklausos komandomis. Tačiau turite naudoti filtro išraiškos atributą. Komanda atrodo taip, kaip turime čia:

aws dynamodb nuskaitymas \

--lentelės pavadinimas MyTable \

--filtro išraiška 'AttributeName = :value' \

--išraiška-atributas-reikšmės '{':value':{'S':'ABC123'}}' \

--riba dvidešimt \

--išskirtinis pradžios klavišas '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

Ankstesnė komanda pašalina iki 20 elementų viename puslapyje iš „MyTable“ lentelės, pradedant nuo elemento, kurio pirminis raktas yra {'PartitionKey': 'ABC123', 'SortKey': 'XYZ987'}. Jis filtruoja rezultatus, kad įtrauktų tik tuos elementus, kurių atributas „AttributeName“ turi „ABC123“ reikšmę.

Atsakyme į LastEvaluatedKey lauke yra paskutinio rezultatų rinkinio elemento pirminis raktas. Šią reikšmę galite naudoti kaip Išskirtinis pradžios raktas vėlesniame nuskaityti operaciją, kad gautumėte kitą rezultatų puslapį.

Išvada

Puslapių spausdinimas DynamoDB pagerina duomenų valdymą. Tačiau labai svarbu žinoti, ar jūsų sistemoms bus naudinga puslapių spausdinimas. Jei programoje turite ilgą elementų sąrašą, būtina naudoti puslapius. Nors pateiktoje iliustracijoje pagrindinis dėmesys skiriamas AWS CLI iškvietimui, taip pat galite naudoti puslapių rūšiavimą su AWS SDK, pvz., Python's Boto3 arba bet kuriuo pageidaujamu SDK.