Príklady dotazov DynamoDB

Priklady Dotazov Dynamodb



Databáza je zbierka údajov – DynamoDB nie je výnimkou. Databázy obsahujú množstvo údajov, ktoré môže byť ťažké získať bez vopred definovaného mechanizmu. Tu zohráva dôležitú úlohu príkaz query.

Ako každý systém správy databáz, aj DynamoDB ponúka rôzne metódy dotazovania, prostredníctvom ktorých môžete interagovať so systémom, aby ste získali prístup a manipulovali s vašimi údajmi. Dotazovanie v DynamoDB je veľmi výkonný nástroj, ktorý vám umožňuje získať položku alebo skupinu položiek súvisiacich s príkazom query.

Tento článok načrtáva hlavné príklady operácií dotazov DynamoDB.







Bežné príklady dopytov DynamoDB

Predvolené správanie pre operáciu dotazu v DynamoDB je vrátiť všetky položky spojené s položkami dotazu. Zaujímavé je, že príkaz query v DynamoDB je použiteľný s tabuľkami alebo sekundárnymi indexmi.



V každom prípade sa vždy uistite, že ste zadali podmienku rovnosti pre hodnotu kľúča oddielu. Opäť možno budete musieť zadať inú podmienku pre kľúč triedenia v prípade, že ju použijete v príkaze.



Medzi ďalšie parametre, s ktorými sa stretnete pri dotazovaní na DynamoDB, patria aj KeyConditionExpression a FilterExpression. KeyConditionExpression špecifikuje kľúčové hodnoty, na ktoré sa chcete dotazovať. Na druhej strane FilterExpression odstráni položky z výsledkov dotazu skôr, ako dostanete odpoveď. ExpressionAttributeValues ​​použijete ako zástupné symboly pre uvedené parametre výrazu.





Príklady dopytov DynamoDB zahŕňajú:

Vyhľadanie jednej položky z tabuľky na základe primárnych kľúčov

Pomôcku Query v DynmoDB môžete použiť na nájdenie jednej položky spoľahnutím sa na kombináciu kľúča oddielu položky a hodnôt kľúča triedenia. Syntax takejto operácie je nasledovná:



dotaz aws dynamodb \

--table-name MyTableName \

--key-condition-expression 'PartitionKey = :pk A SortKey = :sk' \

--hodnoty-výrazu '{':pk':{'S':'a123b'},':sk':{'S':'def456b'}}'

Vyššie uvedený dotazovací nástroj sa zameriava na získanie položky s hodnotou kľúča oddielu a1234b a hodnotou kľúča triedenia odef456b z tabuľky MyTableName. Pomocou vyššie uvedeného nástroja môžeme napríklad nájsť položku v našej tabuľke „Objednávky“. Hodnota kľúča oddielu položky môže byť wr546gg predstavujúci Customer_ID, zatiaľ čo hodnota kľúča triedenia môže byť 24536433 predstavujúce číslo objednávky.

Výsledok môže byť nasledovný:

Vyššie uvedený výsledok prináša späť Holiday Books ako jedinú položku, ktorá má hodnotu kľúča oddielu wr546gg a hodnotu kľúča triedenia 24536433. Tiež vám prináša všetky ďalšie dodatočné atribúty spojené s položkou. Na našom obrázku vráti číslo faktúry a zaplatenú sumu.

Najmä príkaz query vráti prázdny zoznam, ak neexistuje žiadna položka, ktorá by sa zhodovala so zadanými hodnotami primárneho kľúča.

Načítať Všetky položky z tabuľky DynamoDB zodpovedajú špecifickým hodnotám atribútov

Použite výraz filtra na získanie všetkých položiek, ktoré majú podobnú hodnotu atribútu v špecifickej tabuľke DynamoDB.

Príkaz pre túto operáciu dotazu je uvedený nižšie.

dotaz aws dynamodb \

--table-name MyTableName \

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

--hodnoty-výrazu '{':val':{'S':'value1'}}'

Vyššie uvedený príkaz dotazu môžeme napríklad použiť na získanie ďalších skladieb, ktoré trvajú viac ako 5 minút v našej tabuľke Hudba. Aby sme to dosiahli, nastavíme hodnotu OtherAttribute1 na 5,00 a MyTableName na Music.

Výsledok môže byť takýto:

Pre stručnosť je potrebné zoznam skrátiť. Ale z výsledkov náš príkaz query získal 11 položiek s hodnotou filterexpression 5,00 z našej tabuľky DynamoDB Music.

Načítanie všetkých položiek s konkrétnym rozsahom hodnôt atribútov

Nasledujúci príkaz je užitočný pri získavaní položiek v konkrétnej tabuľke:

dotaz aws dynamodb \

--table-name \

--key-condition-expression 'názov_atribútu MEDZI :val1 AND :val2' \

--hodnoty-výrazu '{':val1':{'N':''}':val2':{'N':''}}'

Samozrejme, budete musieť nahradiť všetky atribúty vašimi prispôsobenými povereniami, ako by ste mali pri akomkoľvek inom príkazovom riadku. Napríklad použijeme tabuľku Zamestnanci s kľúčovým atribútom rozsahu nazvaným „vek“. Naším cieľom je získať zamestnávateľov vo veku od 30 do 42 rokov.

Náš nový príkazový riadok bude vyzerať takto:

dotaz aws dynamodb \

--table-name Používatelia \

--key-condition-expression 'vek MEDZI :val1 A :val2' \

--hodnoty-výrazu '{':val1':{'N':'30'},':val2':{'N':'42'}}'

Spustenie vyššie uvedeného nástroja prinesie odpoveď podobnú tej na obrázku nižšie;

Vyššie uvedený obrázok ukazuje, že dopyt priniesol späť 6 položiek s uvedením hodnoty atribútu pre každý dopyt. ScannedCount je počet položiek naskenovaných v tabuľke, zatiaľ čo CapacityUnits je množstvo jednotiek spotrebovaných počas operácie.

Záver

Keďže DynamoDB je databáza NoSQL, jej operácia dotazu sa nespráva ako operácia bežnej databázy AQL. Ale akonáhle to urobíte, zistíte, že operácia je dosť výkonná a vaša interakcia s databázou bude rýchla.