CRUD-операции в DynamoDB: Query и Scan
Использование хранилищ данных в AWS
Dunieski Otano
AWS Solutions Architect
Дорогостоящая ошибка
Разработчик использует Scan для поиска одного пользователя
Читает таблицу из 1 миллиона элементов целиком
Счёт: $500 за один поиск
Query обошёлся бы в $0,01
CRUD-операции в DynamoDB
PutItem
: создать или заменить элемент
GetItem
: прочитать элемент по первичному ключу
UpdateItem
: изменить отдельные атрибуты
DeleteItem
: удалить элемент
Query
: получить элементы по ключу раздела (эффективно)
Scan
: прочитать всю таблицу (дорого)
Query и Scan: ключевое различие
Query
: требует ключ раздела, читает конкретные элементы
Быстро, эффективно, недорого
Scan
: читает всю таблицу, фильтрует после
Медленно, дорого, избегайте по возможности
Правило: знаете ключ — используйте Query. Нет — пересмотрите структуру.
Предотвращение состояния гонки с помощью условных выражений
Проблема: два пользователя одновременно обновляют один элемент
Решение: условные выражения
Пример: обновление только при совпадении текущего значения с ожидаемым
Выражения UpdateItem: изменение атрибутов
SET
: задать значение атрибута или создать новый
ADD
: увеличить/уменьшить числа, добавить в наборы
REMOVE
: удалить атрибуты из элемента
DELETE
: удалить элементы из наборов
Пагинация с Query и Scan
Проблема
: большие результаты превышают лимит 1 МБ
Решение
: пагинация с LastEvaluatedKey
Limit
: управление количеством элементов на странице
Продолжайте, пока LastEvaluatedKey не станет null
Давайте потренируемся!
Использование хранилищ данных в AWS
Preparing Video For Download...