DynamoDB lekérdezési példák

Dynamodb Lekerdezesi Peldak



Az adatbázis adatok gyűjteménye – a DynamoDB sem kivétel. Az adatbázisok sok olyan adatot tartalmaznak, amelyeket előre meghatározott mechanizmus nélkül nehéz visszakeresni. Itt játszik fontos szerepet a query parancs.

Mint minden adatbázis-kezelő rendszer, a DynamoDB is különféle lekérdezési módszereket kínál, amelyeken keresztül kapcsolatba léphet a rendszerrel az adatok eléréséhez és kezeléséhez. A DynamoDB lekérdezése egy nagyon hatékony eszköz, amely lehetővé teszi a lekérdezési parancshoz kapcsolódó elem vagy elemcsoport lekérését.

Ez a cikk a DynamoDB lekérdezési műveletek főbb példáit ismerteti.







Gyakori DynamoDB lekérdezési példák

A DynamoDB lekérdezési műveletének alapértelmezett viselkedése az, hogy a lekérdezési elemekkel társított összes elemet visszaadja. Érdekes módon a DynamoDB query parancsa táblázatokkal vagy másodlagos indexekkel használható.



Bármelyik esetről is legyen szó, mindig győződjön meg arról, hogy megadja a partíciókulcs értékének egyenlőségi feltételét. Ismételten előfordulhat, hogy más feltételt kell megadnia a rendezési kulcshoz, ha ilyet használ a parancsban.



A DynamoDB lekérdezésekor tapasztalható egyéb paraméterek közé tartozik a KeyConditionExpression és a FilterExpression is. A KeyConditionExpression meghatározza a lekérdezni kívánt kulcsértékeket. Másrészt a FilterExpression eltávolítja az elemeket a lekérdezés eredményei közül, mielőtt választ kapna. Az ExpressionAttributeValues ​​értéket fogja használni az említett kifejezési paraméterek helyőrzőjeként.





Példák a DynamoDB lekérdezésre:

Egyetlen elem keresése a táblázatból az elsődleges kulcsok alapján

A DynmoDB Lekérdező segédprogramjával egyetlen elemet kereshet az elem partíciókulcsának és rendezési kulcsának értékeinek kombinációjára támaszkodva. Az ilyen műveletek szintaxisa a következő:



aws dynamodb lekérdezés \

--táblanév Saját Táblanév \

--kulcs-feltétel-kifejezés 'PartitionKey = :pk ÉS SortKey = :sk' \

--kifejezés-attribútumértékek '{':pk':{'S':'a123b'},':sk':{'S':'def456b'}}'

A fenti lekérdező segédprogram egy a1234b partíciókulcs értékkel és odef456b rendezési kulcs értékkel rendelkező elemet kíván lekérni a MyTableName táblából. A fenti segédprogram segítségével például kereshetünk egy tételt a „Rendelések” táblázatunkban. Az elem partíciókulcsának értéke lehet wr546gg amely a Customer_ID-t képviseli, míg a rendezési kulcs értéke lehet 24536433 a rendelési számot képviselve.

Az eredmény a következő lehet:

A fenti eredmény visszahozza a Holiday Books-t, mint az egyetlen elemet, amelynek partíciókulcsának értéke wr546gg, és rendezési kulcsa 24536433. Az elemhez kapcsolódó összes további attribútum is megjelenik. Az ábránkon visszahozza a számla számát és a befizetett összeget.

Nevezetesen, a query parancs egy üres listát hoz vissza, ha nincs olyan elem, amely megfelelne a megadott elsődleges kulcs értékeinek.

Visszahoz Minden elem egy DynamoDB táblából, amely megfelel az adott attribútumértékeknek

Használjon szűrőkifejezést az összes olyan elem lekéréséhez, amelyek hasonló attribútumértékkel rendelkeznek egy adott DynamoDB táblában.

A lekérdezési művelet parancsa az alábbiak szerint látható.

aws dynamodb lekérdezés \

--táblanév Saját Táblanév \

--szűrő-kifejezés 'OtherAttribute1 = :val' \

--kifejezés-attribútumértékek '{':val':{'S':'érték1'}}'

Használhatjuk például a fenti lekérdezési parancsot, hogy lekérjünk olyan dalokat, amelyek több mint 5 percnél hosszabbak a Zene táblázatunkban. Ennek eléréséhez az OtherAttribute1 értéket 5,00-ra, a MyTableName értékét pedig a Zenére állítjuk.

Az eredmény az alábbiak szerint alakulhat:

A listát a rövidség kedvéért le kell vágni. Az eredményekből azonban a query parancsunk 11 elemet keresett le 5,00-as szűrőkifejezési értékkel a DynamoDB Music táblázatunkból.

Az összes elem lekérése egy adott attribútumérték-tartománnyal

Az alábbi parancs hasznos lehet egy adott táblán belüli elemek lekérésekor:

aws dynamodb lekérdezés \

--táblanév \

--kulcs-feltétel-kifejezés 'attribútum_neve BETWEEN :val1 AND :val2' \

--kifejezés-attribútumértékek '{':érték1':{'N':'<érték1>'},':érték2':{'N':'<érték2>'}}'

Természetesen az összes attribútumot le kell cserélnie a saját személyre szabott hitelesítő adataival, mint bármely más parancssorban. Például az Employee táblánkat egy „age” névre keresztelt tartománykulcs attribútummal fogjuk használni. Célunk a 30 és 42 év közötti munkaadók visszahívása.

Az új parancssorunk a következő lesz:

aws dynamodb lekérdezés \

--táblanév Felhasználók \

--kulcs-feltétel-kifejezés 'életkor BETWEEN :val1 AND :val2' \

--kifejezés-attribútumértékek '{':érték1':{'N':'30'},':érték2':{'N':'42'}}'

A fenti segédprogram futtatása az alábbi ábrához hasonló választ hoz;

A fenti ábra azt mutatja, hogy a lekérdezés 6 elemet hozott vissza, jelezve az egyes lekérdezések attribútumértékét. A ScannedCount a táblázatban szkennelt tételek száma, míg a CapacityUnits a művelet során felhasznált egységek mennyisége.

Következtetés

Mivel a DynamoDB egy NoSQL-adatbázis, lekérdezési művelete nem úgy viselkedik, mint a szokásos AQL-adatbázisé. De ha ezt megteszi, rá fog jönni, hogy a művelet elég erős, és az adatbázissal való interakciót zökkenőmentessé teszi.