Příklady dotazů DynamoDB

Priklady Dotazu Dynamodb



Databáze je sbírka dat – DynamoDB není výjimkou. Databáze obsahují velké množství dat, které může být obtížné získat bez předem definovaného mechanismu. Zde hraje důležitou roli příkaz query.

Jako každý systém správy databází nabízí DynamoDB různé metody dotazování, pomocí kterých můžete se systémem pracovat a přistupovat k vašim datům a manipulovat s nimi. Dotazování v DynamoDB je velmi výkonný nástroj, který vám umožňuje načíst položku nebo skupinu položek souvisejících s příkazem query.

Tento článek popisuje hlavní příklady operací dotazů DynamoDB.







Běžné příklady dotazů DynamoDB

Výchozí chování pro operaci dotazu v DynamoDB je vrátit všechny položky spojené s položkami dotazu. Zajímavé je, že příkaz query v DynamoDB je použitelný s tabulkami nebo sekundárními indexy.



V každém případě se vždy ujistěte, že jste zadali podmínku rovnosti pro hodnotu klíče oddílu. Opět možná budete muset zadat jinou podmínku pro klíč řazení v případě, že nějakou v příkazu použijete.



Mezi další parametry, se kterými se při dotazování na DynamoDB setkáte, patří také KeyConditionExpression a FilterExpression. KeyConditionExpression určuje hodnoty klíčů, na které se chcete dotazovat. Na druhou stranu FilterExpression odebere položky z výsledků dotazu dříve, než dostanete odpověď. ExpressionAttributeValues ​​použijete jako zástupné symboly pro uvedené parametry výrazu.





Příklady dotazů DynamoDB zahrnují:

Nalezení jedné položky z tabulky na základě primárních klíčů

Můžete použít nástroj Query v DynmoDB k nalezení jedné položky spolehnutím se na kombinaci klíče oddílu položky a hodnot klíče řazení. Syntaxe takové operace je následující:



dotaz aws dynamodb \

--table-name MyTableName \

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

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

Výše uvedený dotazovací nástroj se zaměřuje na načtení položky s hodnotou klíče oddílu a1234b a hodnotou klíče řazení odef456b z tabulky MyTableName. Například můžeme použít výše uvedený nástroj k nalezení položky v naší tabulce ‚Objednávky‘. Hodnota klíče oddílu položky může být wr546gg představující Customer_ID, zatímco hodnota jeho klíče řazení může být 24536433 představující číslo objednávky.

Výsledek může být následující:

Výše uvedený výsledek vrací Holiday Books jako jedinou položku, která má hodnotu klíče oddílu wr546gg a hodnotu klíče řazení 24536433. Přináší vám také všechny další dodatečné atributy spojené s položkou. Na našem obrázku vrací číslo faktury a zaplacenou částku.

Je pozoruhodné, že příkaz query vrátí prázdný seznam, pokud neexistuje žádná položka, která by odpovídala zadaným hodnotám primárního klíče.

Načíst Všechny položky z tabulky DynamoDB, které odpovídají specifickým hodnotám atributů

Použijte výraz filtru k načtení všech položek, které mají podobnou hodnotu atributu v konkrétní tabulce DynamoDB.

Příkaz pro tuto operaci dotazu je uveden níže.

dotaz aws dynamodb \

--table-name MyTableName \

--filtr-výraz 'OtherAttribute1 = :val' \

--výraz-atribut-hodnoty '{':val':{'S':'value1'}}'

Například můžeme použít výše uvedený příkaz query k načtení dalších skladeb, které jsou delší než 5 minut v naší tabulce Hudba. Abychom toho dosáhli, nastavíme hodnotu OtherAttribute1 na 5,00 a MyTableName na Music.

Výsledek může být následující:

Pro stručnost je nutné seznam zkrátit. Ale z výsledků náš příkaz query načetl 11 položek s hodnotou filterexpression 5,00 z naší tabulky DynamoDB Music.

Načítání všech položek s určitým rozsahem hodnot atributů

Níže uvedený příkaz se hodí při načítání položek v konkrétní tabulce:

dotaz aws dynamodb \

--table-name \

--key-condition-expression 'název_atributu BETWEEN :val1 AND :val2' \

--výraz-atribut-hodnoty '{':val1':{'N':''},':val2':{'N':''}}'

Samozřejmě budete muset nahradit všechny atributy svými přizpůsobenými přihlašovacími údaji, jako byste měli u jakéhokoli jiného příkazového řádku. Například použijeme naši tabulku Zaměstnanci s atributem klíče rozsahu pokřtěným „věk“. Zaměříme se na vyhledávání zaměstnavatelů ve věku od 30 do 42 let.

Náš nový příkazový řádek bude vypadat následovně:

dotaz aws dynamodb \

--table-name Uživatelé \

--key-condition-expression 'věk MEZI :val1 A :val2' \

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

Spuštění výše uvedeného nástroje přinese odezvu podobnou té na obrázku níže;

Výše uvedený obrázek ukazuje, že dotaz přinesl zpět 6 položek s uvedením hodnoty atributu pro každý dotaz. ScannedCount je počet položek naskenovaných v tabulce, zatímco CapacityUnits je množství jednotek spotřebovaných během operace.

Závěr

Vzhledem k tomu, že DynamoDB je databáze NoSQL, její operace dotazu se nechová jako u vaší běžné databáze AQL. Ale jakmile to uděláte, zjistíte, že operace je docela výkonná a vaše interakce s databází bude hračka.