Страниране на DynamoDB: Общ преглед, случаи на употреба и примери

Stranirane Na Dynamodb Obs Pregled Slucai Na Upotreba I Primeri



Управлението на обемни количества данни може да бъде трудна задача за мениджърите на данни, главно ако резултатите от вашата заявка или сканиране се срещат на няколко страници. Странирането в DynamoDB позволява на базата данни да обработва големи количества данни, като разделя резултатите на множество управляеми страници. Това описание обяснява странирането на DynamoDB и предоставя различни възможни случаи и примери за използване. Той също така подчертава как пагинацията в DynamoDB се различава от пагинацията в други бази данни.

Какво е страниране в DynamoDB?

Като цяло, пагинацията, получена от думата страници, е техника, която се използва от базите данни за разделяне на записите с данни на множество части, сегменти или страници. И тъй като AWS DynamoDB поддържа съхранение на големи количества данни, той разполага с надеждни възможности за страниране.







Компонентът за страниране на DynamoDB гарантира, че можете да извлечете само до 1 GB данни на сканиране или заявка. Въпреки че това е настройка по подразбиране, можете да добавите лимит параметър в заявка, за да посочите лимит. Можете допълнително да зададете ограничение за броя на записите във всяка заявка за сканиране.



Трябва да се отбележи, че съществуват няколко разлики между странирането в DynamoDB и странирането в типична SQL база данни. Най-очевидно е, че всеки пагиниран запис, който се извлича в DynamoDB, идва с директна цена, което прави това неписано правило при използване на пагиниране в DynamoDB. Тази функция прави странирането жизненоважен фактор за ограничаване както на извлечените записи, така и на преките разходи.



Как да използвате пагинация в DynamoDB





1. Страниране по време на операция по заявка

В DynamoDB една заявка връща само резултати до 1 MB. Но можете ефективно да потвърдите дали има повече резултати, като разгледате резултатите си внимателно. Трябва да се отбележи, че резултат от операция на заявка на ниско ниво съдържа елемент LastEvaluatedKey, който не е нулев, за да покаже, че има повече елементи, свързани с вашата заявка, които трябва да извлечете.

Резултат без елемент LastEvaluatedKey, който не е null, предполага, че всички елементи, които съответстват на заявката, се побират в ограничението от 1 MB и няма повече елементи за извличане. Разбира се, можете също да зададете ограничение за броя на елементите за резултат. Вижте следната примерна команда:



aws dynamodb заявка \

--table-name MyTableName \

--ключово-условно-изразяване 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:пк ':{' С ':' a1234b '}},

--лимит 10 \

Можете да използвате предишната команда, за да направите заявка към вашата таблица за елементи със същите стойности на израз на ключово условие. Нека потърсим в нашата таблица „Поръчки“ order_Ids от Darry Tech. Също така сме поставили ограничение до 10 елемента на страница. Друга опция за параметъра –limit е да използвате параметъра –page-size за същата цел.

Странирането е автоматична операция в AWS CLI за елементи под 1 MB данни. Можете да добавите ексклузивен стартов ключ към командата, ако искате вашата заявка да започне от определен ред.

Отговорът изглежда така:

Предоставените резултати показват 10 Darry Tech на първата страница. Можете да използвате стойностите на LastEvaluatedKey, за да получите повече поръчки, които съответстват на стойностите на ключовите изрази на вашето търсене, за да създадете нова заявка. Новата заявка за заявка съдържа стойностите на LastEvaluatedKey в параметъра ExclusiveStartKey.

Пример за синтаксис е показан в следното:

aws dynamodb заявка \

--table-name Примерна таблица \

--ключово-условно-изразяване 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:пк ':{' С ': Darry Tech ' \

--лимит 10 \

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

Предишната команда създава следващите поръчки за компенсиране на следващата страница, започвайки с идентификатора на поръчката, който има посочения първичен ключ, т.е. {“PartitionKey”:{“S”: Darry Tech”},”SortKey”:{“S”: ”5356-sy”}}.

2. Страниране по време на сканиране

Също така е възможно да се използва пагинацията за сканиране. Всичко работи по същия начин, както при командите за заявки. Трябва обаче да използвате атрибута filter-expression. Командата изглежда като това, което имаме тук:

aws dynamodb сканиране \

--table-name MyTable \

--филтър-израз 'Име на атрибут =: стойност' \

--expression-attribute-values '{':value':{'S':'ABC123'}}' \

--лимит двадесет \

--ексклузивен-стартов ключ '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

Предишната команда изтегля до 20 елемента на страница от таблицата MyTable, започвайки с елемента, чийто първичен ключ е {“PartitionKey”: “ABC123”, “SortKey”: “XYZ987”}. Той филтрира резултатите, за да включва само елементите, където атрибутът AttributeName има стойността „ABC123“.

В отговора, LastEvaluatedKey съдържа първичния ключ на последния елемент в набора от резултати. Можете да използвате тази стойност като Изключителен стартов ключ в последващо сканиране операция за извличане на следващата страница с резултати.

Заключение

Странирането в DynamoDB подобрява управляемостта на данните. Въпреки това е жизненоважно да знаете дали вашите системи ще се възползват от пагинацията. Необходимо е да използвате пагинация, ако имате дълъг списък от елементи в приложение. Докато предоставената илюстрация се фокусира върху извикването на AWS CLI, можете също да използвате пагинация с AWS SDK, като Boto3 на Python или всеки SDK, който предпочитате.