DynamoDB päringu näited

Dynamodb Paringu Naited



Andmebaas on andmete kogum – DynamoDB pole erand. Andmebaasid sisaldavad palju andmeid, mida ilma eelnevalt määratletud mehhanismita võib olla raske hankida. Siin mängib päringukäsk olulist rolli.

Nagu iga andmebaasihaldussüsteem, pakub DynamoDB erinevaid päringumeetodeid, mille kaudu saate oma andmetele juurdepääsuks ja nendega manipuleerimiseks süsteemiga suhelda. Päring DynamoDB-s on väga võimas tööriist, mis võimaldab hankida päringukäsuga seotud üksuse või üksuste rühma.

Selles artiklis kirjeldatakse DynamoDB päringutoimingute peamisi näiteid.







Levinud DynamoDB päringu näited

Päringutoimingu vaikekäitumine DynamoDB-s on kõigi päringuüksustega seotud üksuste tagastamine. Huvitaval kombel on DynamoDB päringukäsk kasutatav tabelite või sekundaarsete indeksitega.



Igal juhul veenduge, et määraksite oma partitsioonivõtme väärtuse võrdsuse tingimuse. Jällegi, kui kasutate seda käsus, peate võib-olla esitama sortimisvõtme jaoks teistsuguse tingimuse.



Muud parameetrid, mida näete DynamoDB päringute tegemisel, hõlmavad ka KeyConditionExpression ja FilterExpression. KeyConditionExpression määrab võtmeväärtused, mille kohta soovite päringuid teha. Teisest küljest eemaldab FilterExpression päringutulemustest üksused enne vastuse saamist. Mainitud avaldiseparameetrite kohahoidjatena kasutate atribuuti ExpressionAttributeValues.





DynamoDB päringu näited hõlmavad järgmist:

Ühe üksuse leidmine tabelist esmaste võtmete alusel

Saate kasutada DynmoDB-s päringuutiliiti, et leida üksus, tuginedes üksuse partitsioonivõtme ja sortimisvõtme väärtuste kombinatsioonile. Sellise toimingu süntaks on järgmine:



aws dynamodb päring \

--tabeli nimi Minu tabelinimi \

--võtme-tingimuse avaldis 'PartitionKey = :pk JA SortKey = :sk' \

--avaldis-atribuut-väärtused '{':pk':{'S':'a123b'},':sk':{'S':'def456b'}}'

Ülaltoodud päringuutiliidi eesmärk on tuua üksus partitsioonivõtme väärtusega a1234b ja sortimisvõtme väärtusega odef456b tabelist MyTableName. Näiteks saame kasutada ülaltoodud utiliiti, et leida üksus meie tabelist „Tellimused”. Üksuse partitsioonivõtme väärtus võib olla wr546gg esindab kliendi_ID-d, samas kui selle sortimisvõtme väärtus võib olla 24536433 mis esindab tellimuse numbrit.

Tulemus võib olla järgmine:

Ülaltoodud tulemus toob tagasi Holiday Booksi kui ainsa üksuse, mille partitsioonivõtme väärtus on wr546gg ja sortimisvõtme väärtus 24536433. See toob teieni ka kõik muud üksusega seotud lisaatribuudid. Meie illustratsioonil toob see tagasi arve numbri ja tasutud summa.

Eelkõige toob päringukäsk tagasi tühja loendi, kui pole üksust, mis vastaks määratud primaarvõtme väärtustele.

Otsi Kõik DynamoDB tabeli üksused, mis vastavad konkreetsete atribuutide väärtustele

Kasutage filtriavaldist, et tuua kõik üksused, millel on konkreetses DynamoDB tabelis sarnane atribuudi väärtus.

Selle päringutoimingu käsk on selline, nagu allpool näidatud.

aws dynamodb päring \

--tabeli nimi Minu tabelinimi \

--filtri avaldis 'OtherAttribute1 = :val' \

--avaldis-atribuut-väärtused '{':val':{'S':'väärtus1'}}'

Näiteks saame kasutada ülaltoodud päringukäsku, et tuua meie muusikatabelist rohkem kui 5 minuti pikkuseid lugusid. Selle saavutamiseks määrame oma OtherAttribute1 väärtuseks 5.00 ja MyTableName väärtuseks Music.

Tulemus võib olla järgmine:

Lühiduse huvides on vaja loetelu kärpida. Kuid tulemuste põhjal tõi meie päringukäsk meie DynamoDB Music tabelist 11 üksust filtriavaldise väärtusega 5,00.

Kõigi teatud atribuutide väärtuste vahemikuga üksuste toomine

Allolev käsk on kasulik konkreetse tabeli üksuste toomisel:

aws dynamodb päring \

--tabelinimi \

--võtme-tingimuse avaldis 'atribuudi_nimi BETWEEN :val1 AND :val2' \

--avaldis-atribuut-väärtused '{':val1':{'N':''},':val2':{'N':''}}'

Loomulikult peate asendama kõik atribuudid oma kohandatud mandaatidega nagu mis tahes muu käsureal. Näiteks kasutame tabelit Töötaja vahemiku võtmeatribuudiga, mille nimi on 'vanus'. Meie eesmärk on leida 30–42-aastaseid tööandjaid.

Meie uus käsurida on järgmine:

aws dynamodb päring \

--tabelinimi Kasutajad \

--võtme-tingimuse avaldis 'vanus BETWEEN :val1 AND :val2' \

--avaldis-atribuut-väärtused '{':val1':{'N':'30'},':val2':{'N':'42'}}'

Ülaltoodud utiliidi käivitamine annab alloleval joonisel olevale sarnase vastuse;

Ülaltoodud illustratsioon näitab, et päring tõi tagasi 6 üksust, mis näitab iga päringu atribuudi väärtust. ScannedCount on tabelis skannitud üksuste arv, samas kui CapacityUnits on toimingu ajal tarbitud ühikute arv.

Järeldus

Kuna DynamoDB on NoSQL-i andmebaas, ei käitu selle päringutoimingud nagu teie tavalise AQL-i andmebaasi toiming. Kuid kui teete seda, saate teada, et toiming on üsna võimas ja muudab teie suhtlemise andmebaasiga imeliseks.