Dynamodb -paginasjonsoversikt, bruk av tilfeller og eksempler

Dynamodb -paginasjonsoversikt, bruk av tilfeller og eksempler

Administrering av omfangsrike datamengder kan være en oppoverbakke oppgave for dataledere, hovedsakelig hvis spørringen eller skanneresultatene dine løper inn på flere sider. Paginering i DynamoDB gjør det mulig for databasen å håndtere de store datamengdene ved å dele resultatene på flere håndterbare sider.Denne oppskrivningen forklarer dynamodb-paginasjonen og gir forskjellige tilfeller og eksempler. Det fremhever også hvordan paginasjonen i DynamoDB skiller seg fra paginasjonen i andre databaser.

Hva er paginering i dynamodb?

Generelt er paginering, avledet fra ordsidene, en teknikk som brukes av databaser for å dele opp dataregistreringene i flere biter, segmenter eller sider. Og siden AWS DynamoDB støtter lagring av store datamengder, har den pålitelige paginasjonsegenskaper.

DynamoDB -pagineringskomponenten sikrer at du bare kan hente opptil 1 GB data per skanning eller spørring. Selv om det er en standardinnstilling, kan du legge til en grenseparameter i en spørring for å spesifisere en grense. Du kan ytterligere angi en grense for antall poster i hver skanningsspørsmål.

Spesielt eksisterer det noen få forskjeller mellom paginering i DynamoDB og paginering i en typisk SQL -database. Mest åpenbart kommer hver paginert plate som blir hentet i DynamoDB med en direkte kostnad, noe som gjør dette til en uskrevet regel når du bruker paginasjonen i DynamoDB. Denne funksjonen gjør paginering til en viktig faktor for å begrense både hentede poster og direkte kostnader.

Hvordan bruke paginering i dynamodb

1. Paginering under en spørringsoperasjon

I DynamoDB returnerer en spørring bare resultatene av opptil 1 MB. Men du kan effektivt bekrefte om det er flere resultater ved å granske resultatene dine. Spesielt inneholder et resultat av et lavt nivå for spørring.

Et resultat uten et LastEvaluatedKey-element som er ikke-null, innebærer at alle elementene som samsvarer med spørringen som passer innenfor 1 MB-grensen, og det er ikke flere elementer for henting. Selvfølgelig kan du også sette en grense for antall varer per resultat. Se følgende prøvekommando:

AWS DynamoDB -spørring \
--Bordnavn MytableName \
--Key-condition-expression "partitionKey =: pk \
--Expression-Attribute-Values ​​'": PK": "S": "A1234B",
--Begrens 10 \

Du kan bruke den forrige kommandoen til å spørre tabellen din for elementene med de samme tastenes uttrykksverdier. La oss søke på "ordrene" -tabellen for ordre_ids fra Darry Tech. Vi setter også en grense til 10 elementer per side. Et annet alternativ for -begrensningsparameteren er å bruke parameteren -side -størrelse for samme formål.

Paginering er en automatisk operasjon i AWS CLI for elementer under 1 MB data. Du kan legge til en eksklusiv startnøkkel til kommandoen hvis du vil at spørringen skal starte fra en bestemt ordre.

Responsen ser slik ut:

De medfølgende resultatene viser 10 darry tech på første side. Du kan bruke de siste evaluerte nøkkelverdiene for å få flere bestillinger som samsvarer med uttrykksnøkkelverdiene for søket ditt for å konstruere en ny spørring. Den nye spørringsforespørselen inneholder de siste evaluerte nøkkelverdiene i parameteren ExclusivestartKey.

Et eksempel på syntaks er vist i følgende:

AWS DynamoDB -spørring \
--tabellnavneksempler \
--Key-condition-expression "partitionKey =: pk \
--Expression-Attribute-Values ​​'": PK": "S": Darry Tech' \
--Begrens 10 \
--Eksklusiv start-key '"PartitionKey": "S": Darry Tech "," SortKey ": " S ":" 5356-SY "'

Den forrige kommandoen produserer de neste ordrene for avregning på neste side, og starter med ordre -ID som har den spesifiserte primærnøkkelen, i.e. “PartitionKey”: “S”: Darry Tech ”,” Sortkey ”: “ S ”:” 5356-SY ”.

2. Paginering under skanneoperasjoner

Det er også mulig å bruke paginasjonen til skanneoperasjoner. Alt fungerer på samme måte som med spørringskommandoene. Du må imidlertid bruke filteruttrykksattributtet. Kommandoen ser ut som det vi har her:

aws dynamodb skanning \
--Bordnavn MyTable \
--filteruttrykk "AttributeName =: Verdi" \
--Expression-Attribute-Values ​​'": Value": "S": "ABC123"' \
--Begrens 20 \
--Eksklusiv start-key '"PartitionKey": "S": "ABC123", "SortKey": "S": "XYZ987"'

Den forrige kommandoen trekker seg opp til 20 elementer per side fra Mytable -tabellen, og starter med elementet hvis primære nøkkel er “PartitionKey”: “ABC123”, “SortKey”: “XYZ987”. Det filtrerer resultatene til å inkludere bare elementene der attributtenavn -attributtet har "ABC123" -verdien.

I svaret, LastevaluatedKey Feltet inneholder den primære nøkkelen til det siste elementet i resultatsettet. Du kan bruke denne verdien som EksklusivestartKey i en påfølgende skanne Operasjon for å hente neste side med resultatene.

Konklusjon

Paginering i DynamoDB forbedrer dataens håndtering. Imidlertid er det viktig å vite om systemene dine vil dra nytte av paginering. Det er nødvendig å bruke paginering hvis du har en lang liste over elementer i en applikasjon. Mens den medfølgende illustrasjonen fokuserer på AWS CLI -samtalen, kan du også bruke paginering med AWS SDK -er som Pythons Boto3 eller hvilken som helst SDK som du foretrekker.