Примеры запросов DynamoDB

Primery Zaprosov Dynamodb

База данных — это набор данных, и DynamoDB не является исключением. Базы данных содержат большое количество данных, которые может быть трудно получить без заранее определенного механизма. Здесь важную роль играет команда запроса.

Как и любая система управления базами данных, DynamoDB предлагает различные методы запросов, с помощью которых вы можете взаимодействовать с системой для доступа к своим данным и управления ими. Запросы в DynamoDB — это очень мощный инструмент, позволяющий извлекать элемент или группу элементов, связанных с командой запроса.

В этой статье представлены основные примеры операций запросов DynamoDB.







Распространенные примеры запросов DynamoDB

По умолчанию операция запроса в DynamoDB возвращает все элементы, связанные с элементами запроса. Интересно, что команду запроса в DynamoDB можно использовать с таблицами или вторичными индексами.



В любом случае всегда убедитесь, что вы указали условие равенства для значения вашего ключа раздела. Опять же, вам может потребоваться указать другое условие для ключа сортировки, если вы используете его в команде.



Другие параметры, с которыми вы столкнетесь при запросе DynamoDB, также включают KeyConditionExpression и FilterExpression. KeyConditionExpression указывает ключевые значения, которые вы собираетесь запрашивать. С другой стороны, выражение FilterExpression удаляет элементы из результатов запроса до того, как вы получите ответ. Вы будете использовать ExpressionAttributeValues ​​в качестве заполнителей для упомянутых параметров выражения.





Примеры запросов DynamoDB включают:

Поиск отдельного элемента из таблицы на основе первичных ключей

Вы можете использовать утилиту Query в DynmoDB, чтобы найти один элемент, полагаясь на комбинацию ключа раздела элемента и значений ключа сортировки. Синтаксис такой операции следующий:



запрос aws dynamodb \

--table-name MyTableName \

--key-условие-выражение 'PartitionKey = :pk И SortKey = :sk' \

--значения-атрибутов-выражений '{':pk':{'S':'a123b'},':sk':{'S':'def456b'}}'

Вышеупомянутая утилита запросов предназначена для извлечения элемента со значением ключа раздела a1234b и значением ключа сортировки odef456b из таблицы MyTableName. Например, мы можем использовать вышеуказанную утилиту, чтобы найти элемент в нашей таблице «Заказы». Значение ключа раздела элемента может быть wr546gg представляющий Customer_ID, а его значение ключа сортировки может быть 24536433 представляющий номер заказа.

Результат может быть следующим:

Вышеприведенный результат возвращает Holiday Books как единственный элемент со значением ключа раздела wr546gg и значением ключа сортировки 24536433. Он также предоставляет все другие дополнительные атрибуты, связанные с элементом. В нашем примере он возвращает номер счета и уплаченную сумму.

Примечательно, что команда запроса вернет пустой список, если нет элемента, соответствующего указанным значениям первичного ключа.

Забрать Все элементы из таблицы DynamoDB, соответствующие определенным значениям атрибутов

Используйте выражение фильтра, чтобы получить все элементы с похожим значением атрибута в определенной таблице DynamoDB.

Команда для этой операции запроса показана ниже.

запрос aws dynamodb \

--table-name MyTableName \

--фильтр-выражение 'ДругойАтрибут1 = :val' \

--значения-атрибутов-выражений '{':val':{'S':'value1'}}'

Например, мы можем использовать приведенную выше команду запроса для извлечения песен, которые длятся более 5 минут в нашей таблице Music. Для этого мы установим для нашего OtherAttribute1 значение 5,00, а MyTableName — для Music.

Результат может быть таким, как показано ниже:

Список необходимо сократить для краткости. Но из результатов наша команда запроса извлекла 11 элементов со значением выражения фильтра 5,00 из нашей таблицы DynamoDB Music.

Получение всех элементов с определенным диапазоном значений атрибутов

Приведенная ниже команда пригодится при извлечении элементов из определенной таблицы:

запрос aws dynamodb \

--table-name <имя таблицы> \

--key-условие-выражение 'attribute_name МЕЖДУ: val1 И : val2' \

--значения-атрибутов-выражений '{':val1':{'N':''},':val2':{'N':''}}'

Конечно, вам нужно будет заменить все атрибуты вашими индивидуальными учетными данными, как и в любой другой командной строке. Например, мы будем использовать нашу таблицу «Сотрудники» с ключевым атрибутом диапазона, названным «возраст». Мы будем стремиться найти работодателей в возрасте от 30 до 42 лет.

Наша новая командная строка будет выглядеть следующим образом:

запрос aws dynamodb \

--table-name Пользователи \

--key-условие-выражение 'возраст МЕЖДУ: val1 И : val2' \

--значения-атрибутов-выражений '{':val1':{'N':'30'},':val2':{'N':'42'}}'

Запуск вышеуказанной утилиты приведет к ответу, подобному показанному на рисунке ниже;

На приведенном выше рисунке показано, что запрос возвратил 6 элементов с указанием значения атрибута для каждого запроса. ScannedCount — это количество отсканированных элементов в таблице, а CapacityUnits — количество единиц, использованных во время операции.

Заключение

Поскольку DynamoDB — это база данных NoSQL, ее работа с запросами не похожа на работу с обычной базой данных AQL. Но как только вы это сделаете, вы обнаружите, что операция довольно мощная и упростит ваше взаимодействие с базой данных.