Вступ до Amazon DynamoDB

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

Dunieski Otano

AWS Solutions Architect

Проблема «гарячого» розділу

  • Уявіть ресторан: один касир перевантажений, троє без діла
  • Так буває через поганий дизайн ключа розділу
  • Гаряний розділ = один розділ отримує непропорційний трафік, інші простоюють
  • Рішення: ключі розділу з високою кардинальністю — атрибути з багатьма унікальними значеннями для рівномірного розподілу

partition

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

Що робить ключ розділу вдалим

  • Висока кардинальність: Багато унікальних значень
    • userId, orderId, sessionId — так
    • country, status, category — ні
  • Рівномірний розподіл: Збалансовані шаблони доступу
  • Прогнозованість: Відомо під час запиту

cardinality

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

Структура таблиці DynamoDB

  • Ключ розділу (обов'язковий): Визначає розподіл даних
  • Ключ сортування (необов'язковий): Дозволяє діапазонні запити (напр., userId + orderDate)
  • Атрибути: Додаткові поля даних
  • Первинний ключ = ключ розділу АБО ключ розділу + ключ сортування

table

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

Створення першої таблиці

  • AWS Console: Швидке налаштування для тестування
  • boto3 (Python): Програмне створення таблиці
  • Ключові рішення: ключ розділу, ключ сортування, режим білінгу

first

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

Складені ключі та запити за ключем сортування

  • Складений ключ: Ключ розділу + ключ сортування
  • Діапазонні запити: Пошук у діапазонах дат або чисел
  • Оператори: =, <, >, <=, >=, BETWEEN, begins_with
  • Приклад: Отримати замовлення користувача за останні 30 днів > $100

code

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

Режими ємності: on-demand vs provisioned

  • On-Demand: Оплата за запит, авто-масштабування
    • Найкраще для: Непередбачуваний трафік, нові застосунки
  • Provisioned: Задає RCU/WCU, нижча вартість на масштабі
    • Найкраще для: Прогнозований трафік, оптимізація витрат
  • Можна змінювати режим раз на 24 години

mode

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

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

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

Preparing Video For Download...