Операції CRUD у DynamoDB та Query vs Scan

Використання сховищ даних в AWS

Dunieski Otano

AWS Solutions Architect

Дорога помилка

  • Розробник використовує Scan, щоб знайти одного користувача
  • Зчитує всю таблицю на 1 мільйон елементів
  • Рахунок: $500 за один пошук
  • Query коштувало б $0.01

помилка

Використання сховищ даних в AWS

Операції CRUD у DynamoDB

  • PutItem: створити або замінити елемент
  • GetItem: прочитати елемент за первинним ключем
  • UpdateItem: змінити вибрані атрибути
  • DeleteItem: вилучити елемент
  • Query: отримати елементи за ключем розділу (ефективно)
  • Scan: читати всю таблицю (дорого)

операції

Використання сховищ даних в AWS

Query vs Scan: ключова різниця

  • Query: потребує ключ розділу, читає потрібні елементи
    • Швидко, ефективно, недорого
  • Scan: читає всю таблицю, фільтрує потім
    • Повільно, дорого, уникайте за можливості
  • Правило: знаєте ключ — використовуйте Query. Інакше перегляньте дизайн.

scan

Використання сховищ даних в AWS

Запобігання гонкам за допомогою умовних виразів

  • Проблема: два користувачі одночасно оновлюють один елемент
  • Рішення: умовні вирази
  • Приклад: оновити лише якщо поточне значення відповідає очікуваному

гонка

Використання сховищ даних в AWS

Вирази UpdateItem: зміна атрибутів

  • SET: встановити значення атрибута або створити новий атрибут
  • ADD: збільшити/зменшити числа, додати до множин
  • REMOVE: вилучити атрибути з елемента
  • DELETE: прибрати елементи з множин

вирази

Використання сховищ даних в AWS

Пагінація з Query і Scan

  • Проблема: великі результати перевищують ліміт 1MB
  • Рішення: пагінація з LastEvaluatedKey
  • Limit: контроль кількості елементів на сторінку
  • Продовжуйте, доки LastEvaluatedKey дорівнює null

пагінація

Використання сховищ даних в AWS

Давайте потренуємось!

Використання сховищ даних в AWS

Preparing Video For Download...