Stránkování DynamoDB: Přehled, případy použití a příklady

Strankovani Dynamodb Prehled Pripady Pouziti A Priklady



Správa objemných objemů dat může být pro správce dat náročný úkol, zejména pokud váš dotaz nebo výsledky skenování zasahují do více stránek. Stránkování v DynamoDB umožňuje databázi zpracovávat velké množství dat rozdělením výsledků na více spravovatelných stránek. Tento zápis vysvětluje stránkování DynamoDB a poskytuje různé možné případy použití a příklady. Také zdůrazňuje, jak se stránkování v DynamoDB liší od stránkování v jiných databázích.

Co je stránkování v DynamoDB?

Obecně je stránkování, odvozené od slova stránky, technika, kterou používají databáze k rozdělení datových záznamů na více částí, segmentů nebo stránek. A protože AWS DynamoDB podporuje ukládání velkého množství dat, nabízí spolehlivé funkce stránkování.







Komponenta stránkování DynamoDB zajišťuje, že můžete načíst pouze 1 GB dat na skenování nebo dotaz. I když se jedná o výchozí nastavení, můžete do dotazu přidat parametr limitu a určit limit. Dále můžete nastavit limit pro počet záznamů v každém skenovacím dotazu.



Je pozoruhodné, že existuje několik rozdílů mezi stránkováním v DynamoDB a stránkováním v typické databázi SQL. Je zřejmé, že každý stránkovaný záznam, který je načten v DynamoDB, přichází s přímými náklady, což z toho činí nepsané pravidlo při používání stránkování v DynamoDB. Tato funkce činí stránkování zásadním faktorem při omezování jak vyhledaných záznamů, tak přímých nákladů.



Jak používat stránkování v DynamoDB





1. Stránkování během operace dotazu

V DynamoDB dotaz vrací pouze výsledky do 1 MB. Ale můžete účinně potvrdit, zda existuje více výsledků tím, že si své výsledky prozkoumáte. Je pozoruhodné, že výsledek operace dotazu na nízké úrovni obsahuje prvek LastEvaluatedKey, který nemá hodnotu null, což znamená, že existuje více položek souvisejících s vaším dotazem, které byste měli načíst.

Výsledek bez prvku LastEvaluatedKey, který nemá hodnotu null, znamená, že všechny položky, které odpovídají dotazu, se vejdou do limitu 1 MB a nejsou k dispozici žádné další položky k načtení. Samozřejmě si můžete nastavit i limit počtu položek na výsledek. Podívejte se na následující ukázkový příkaz:



dotaz aws dynamodb \

--table-name MyTableName \

--key-condition-expression 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:pk ':{' S ':' a1234b '}},

-- limit 10 \

Předchozí příkaz můžete použít k dotazování vaší tabulky na položky se stejnými hodnotami výrazu klíčové podmínky. Pojďme v naší tabulce „Objednávky“ vyhledat ID objednávky od Darry Tech. Nastavili jsme také limit na 10 položek na stránku. Další možností pro parametr –limit je použití parametru –page-size pro stejný účel.

Stránkování je automatická operace v AWS CLI pro položky pod 1 MB dat. Pokud chcete, aby váš dotaz začínal od konkrétní objednávky, můžete k příkazu přidat exkluzivní startovací klíč.

Odpověď vypadá takto:

Poskytnuté výsledky ukazují 10 Darry Tech na první stránce. Hodnoty LastEvaluatedKey můžete použít k získání více objednávek, které odpovídají hodnotám klíče výrazu vašeho vyhledávání, a vytvořit tak nový dotaz. Nový požadavek na dotaz obsahuje hodnoty LastEvaluatedKey v parametru ExclusiveStartKey.

Příklad syntaxe je uveden v následujícím textu:

dotaz aws dynamodb \

--table-name PříkladTabulka \

--key-condition-expression 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:pk ':{' S ': Darry Tech' \

-- limit 10 \

--exclusive-start-key '{'
PartitionKey ':{' S ': Darry Tech' }, 'SortKey' :{ 'S' : '5356' }} '

Předchozí příkaz vytvoří na další stránce další objednávky započtení, počínaje ID objednávky, která má zadaný primární klíč, tj. {“PartitionKey“:{“S“: Darry Tech“},“SortKey“:{“S“: '5356-sy'}}.

2. Stránkování během skenování

Pro operace skenování je také možné použít stránkování. Vše funguje stejně jako u dotazovacích příkazů. Musíte však použít atribut filter-expression. Příkaz vypadá takto:

skenování aws dynamodb \

--table-name Moje tabulka \

--filtr-výraz 'AtributName = :value' \

--výraz-atribut-hodnoty '{':value':{'S':'ABC123'}}' \

--omezit dvacet \

--exclusive-start-key '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

Předchozí příkaz odebere z tabulky MyTable až 20 položek na stránku, počínaje položkou, jejíž primární klíč je {“PartitionKey“: „ABC123“, „SortKey“: „XYZ987“}. Filtruje výsledky tak, aby zahrnovaly pouze položky, jejichž atribut AttributeName má hodnotu „ABC123“.

V odpovědi, LastEvaluatedKey pole obsahuje primární klíč poslední položky v sadě výsledků. Tuto hodnotu můžete použít jako Exkluzivní StartKey v následném skenovat operaci k načtení další stránky výsledků.

Závěr

Stránkování v DynamoDB zlepšuje správu dat. Je však důležité vědět, zda budou mít vaše systémy ze stránkování prospěch. Pokud máte v aplikaci dlouhý seznam položek, je nutné použít stránkování. I když se poskytnutá ilustrace zaměřuje na volání AWS CLI, stránkování můžete použít také s AWS SDK, jako je Python's Boto3 nebo jakákoliv sada SDK, kterou preferujete.