Операції CRUD у DynamoDB та Query vs Scan
Використання сховищ даних в AWS
Dunieski Otano
AWS Solutions Architect
Дорога помилка
Розробник використовує Scan, щоб знайти одного користувача
Зчитує всю таблицю на 1 мільйон елементів
Рахунок: $500 за один пошук
Query коштувало б $0.01
Операції CRUD у DynamoDB
PutItem
: створити або замінити елемент
GetItem
: прочитати елемент за первинним ключем
UpdateItem
: змінити вибрані атрибути
DeleteItem
: вилучити елемент
Query
: отримати елементи за ключем розділу (ефективно)
Scan
: читати всю таблицю (дорого)
Query vs Scan: ключова різниця
Query
: потребує ключ розділу, читає потрібні елементи
Швидко, ефективно, недорого
Scan
: читає всю таблицю, фільтрує потім
Повільно, дорого, уникайте за можливості
Правило: знаєте ключ — використовуйте Query. Інакше перегляньте дизайн.
Запобігання гонкам за допомогою умовних виразів
Проблема: два користувачі одночасно оновлюють один елемент
Рішення: умовні вирази
Приклад: оновити лише якщо поточне значення відповідає очікуваному
Вирази UpdateItem: зміна атрибутів
SET
: встановити значення атрибута або створити новий атрибут
ADD
: збільшити/зменшити числа, додати до множин
REMOVE
: вилучити атрибути з елемента
DELETE
: прибрати елементи з множин
Пагінація з Query і Scan
Проблема
: великі результати перевищують ліміт 1MB
Рішення
: пагінація з LastEvaluatedKey
Limit
: контроль кількості елементів на сторінку
Продовжуйте, доки LastEvaluatedKey дорівнює null
Давайте потренуємось!
Використання сховищ даних в AWS
Preparing Video For Download...