CRUD operace v DynamoDB a Query vs Scan
Využití datových úložišť v AWS
Dunieski Otano
AWS Solutions Architect
Drahá chyba
Vývojář použije Scan k nalezení jednoho uživatele
Přečte celou tabulku s milionem položek
Účet: 500 $ za jediné vyhledání
Query by stálo 0,01 $
CRUD operace v DynamoDB
PutItem
: Vytvoří nebo nahradí položku
GetItem
: Načte položku podle primárního klíče
UpdateItem
: Upraví konkrétní atributy
DeleteItem
: Odebere položku
Query
: Načte položky podle partition key (efektivní)
Scan
: Přečte celou tabulku (nákladné)
Query vs Scan: zásadní rozdíl
Query
: Vyžaduje partition key, čte konkrétní položky
Rychlé, efektivní, levné
Scan
: Přečte celou tabulku, filtruje až poté
Pomalé, nákladné, vyhýbej se mu
Pravidlo: Znáš-li klíč, použij Query. Jinak přehodnoť návrh.
Předcházení race conditions pomocí podmíněných výrazů
Problém: Dva uživatelé aktualizují stejnou položku zároveň
Řešení: Podmíněné výrazy
Příklad: Aktualizace proběhne jen tehdy, pokud aktuální hodnota odpovídá očekávané
Výrazy UpdateItem: úprava atributů
SET
: Nastaví hodnotu atributu nebo vytvoří nový atribut
ADD
: Zvýší/sníží čísla, přidá do množin
REMOVE
: Odstraní atributy z položky
DELETE
: Odebere prvky z množin
Stránkování s Query a Scan
Problém
: Velké sady výsledků překračují limit 1 MB
Řešení
: Stránkování pomocí LastEvaluatedKey
Limit
: Určuje počet položek na stránku
Pokračuj, dokud LastEvaluatedKey není null
Pojďme cvičit!
Využití datových úložišť v AWS
Preparing Video For Download...