DynamoDB-frågeexempel

Dynamodb Frageexempel



En databas är en samling data – DynamoDB är inget undantag. Databaser innehåller massor av data som kan vara svåra att hämta utan en fördefinierad mekanism. Det är här frågekommandot spelar en viktig roll.

Liksom alla databashanteringssystem erbjuder DynamoDB olika frågemetoder genom vilka du kan interagera med systemet för att komma åt och manipulera dina data. Fråga i DynamoDB är ett mycket kraftfullt verktyg som låter dig hämta ett objekt eller en grupp av objekt relaterade till frågekommandot.

Den här artikeln beskriver de viktigaste exemplen på DynamoDB-frågeoperationer.







Vanliga DynamoDB-frågeexempel

Standardbeteendet för frågeoperationen i DynamoDB är att returnera alla objekt som är associerade med frågeobjekten. Intressant nog kan frågekommandot i DynamoDB användas med tabeller eller sekundära index.



Oavsett vilket fall, se alltid till att du anger likhetsvillkoret för din partitionsnyckels värde. Återigen kan du behöva ange ett annat villkor för sorteringsnyckeln om du använder en i kommandot.



Andra parametrar som du kommer att stöta på när du frågar efter DynamoDB inkluderar även KeyConditionExpression och FilterExpression. KeyConditionExpression anger nyckelvärdena som du avser att fråga. Å andra sidan tar FilterExpressionen bort objekt från frågeresultaten innan du får ett svar. Du kommer att använda ExpressionAttributeValues ​​som platshållare för uttrycksparametrarna som nämns.





Exempel på DynamoDB-frågor inkluderar:

Hitta ett enstaka föremål från en tabell baserat på primära nycklar

Du kan använda Query-verktyget i DynmoDB för att hitta ett enstaka objekt genom att förlita dig på en kombination av objektets partitionsnyckel och sorteringsnyckelvärden. Syntaxen för en sådan operation är följande:



aws dynamodb fråga \

--tabellnamn MyTableName \

--nyckel-villkor-uttryck 'PartitionKey = :pk OCH SortKey = :sk' \

--uttryck-attribut-värden '{':pk':{'S':'a123b'},':sk':{'S':'def456b'}}'

Ovanstående frågeverktyg syftar till att hämta ett objekt med ett partitionsnyckelvärde a1234b och ett sorteringsnyckelvärde odef456b från tabellen MyTableName. Till exempel kan vi använda ovanstående verktyg för att hitta en vara i vår 'Beställningar'-tabell. Objektets partitionsnyckelvärde kan vara wr546gg representerar Customer_ID, medan dess sorteringsnyckelvärde kan vara 24536433 representerar ordernumret.

Resultatet kan bli som följer:

Ovanstående resultat tar tillbaka Holiday Books som det enda objektet som har ett partitionsnyckelvärde på wr546gg och ett sorteringsnyckelvärde på 24536433. Det ger dig också alla andra ytterligare attribut som är associerade med objektet. I vår illustration återförs fakturanumret och det inbetalda beloppet.

Noterbart kommer frågekommandot att ta tillbaka en tom lista om det inte finns något objekt som matchar de angivna primärnyckelvärdena.

Hämta Alla artiklar från en DynamoDB-tabell som matchar specifika attributvärden

Använd ett filteruttryck för att hämta alla objekt som har ett liknande attributvärde i en specifik DynamoDB-tabell.

Kommandot för denna frågeoperation är som visas nedan.

aws dynamodb fråga \

--tabellnamn MyTableName \

--filter-uttryck 'OtherAttribute1 = :val' \

--uttryck-attribut-värden '{':val':{'S':'value1'}}'

Till exempel kan vi använda frågekommandot ovan för att hämta låtar med mer som går i över 5 minuter i vår musiktabell. För att uppnå detta kommer vi att ställa in vårt OtherAttribute1-värde till 5,00 och MyTableName till Music.

Resultatet kan bli som visas nedan:

Det är nödvändigt att trunkera listan för korthetens skull. Men från resultaten hämtade vårt frågekommando 11 objekt med ett filterexpressionsvärde på 5,00 från vår DynamoDB Music-tabell.

Hämta alla objekt med ett visst område av attributvärden

Kommandot nedan är praktiskt när du hämtar objekt i en viss tabell:

aws dynamodb fråga \

--tabellnamn \

--nyckel-villkor-uttryck 'attributnamn MELLAN :val1 OCH :val2' \

--uttryck-attribut-värden '{':val1':{'N':''},':val2':{'N':''}}'

Naturligtvis måste du ersätta alla attribut med dina anpassade referenser som du borde med vilken annan kommandorad som helst. Till exempel kommer vi att använda vår Employee-tabell med ett intervallnyckelattribut döpt till 'ålder'. Vi kommer att sikta på att hämta arbetsgivare mellan 30 och 42 år.

Vår nya kommandorad blir som följer:

aws dynamodb fråga \

--tabellnamn Användare \

--nyckel-villkor-uttryck 'ålder MELLAN :val1 OCH :val2' \

--uttryck-attribut-värden '{':val1':{'N':'30'},':val2':{'N':'42'}}'

Att köra ovanstående verktyg kommer att ge ett svar som liknar det i figuren nedan;

Illustrationen ovan visar att frågan tog tillbaka 6 objekt, vilket anger attributvärdet för varje fråga. ScannedCount är antalet objekt som skannats i tabellen medan CapacityUnits är mängden enheter som förbrukas under operationen.

Slutsats

Eftersom DynamoDB är en NoSQL-databas, fungerar dess frågeoperation inte som din vanliga AQL-databas. Men när du väl gör det, kommer du att upptäcka att operationen är ganska kraftfull och kommer att göra din interaktion med databasen abreeze.