Operacje CRUD i Query vs Scan w DynamoDB

Korzystanie z magazynów danych w AWS

Dunieski Otano

AWS Solutions Architect

Kosztowny błąd

  • Programista używa Scan, by znaleźć jednego użytkownika
  • Odczytuje całą tabelę z milionem rekordów
  • Rachunek: 500 USD za jedno wyszukanie
  • Query kosztowałoby 0,01 USD

błąd

Korzystanie z magazynów danych w AWS

Operacje CRUD w DynamoDB

  • PutItem: tworzy lub zastępuje rekord
  • GetItem: odczytuje rekord po kluczu głównym
  • UpdateItem: modyfikuje wybrane atrybuty
  • DeleteItem: usuwa rekord
  • Query: pobiera rekordy po kluczu partycji (wydajne)
  • Scan: odczytuje całą tabelę (kosztowne)

operacje

Korzystanie z magazynów danych w AWS

Query vs Scan: kluczowa różnica

  • Query: wymaga klucza partycji, pobiera konkretne rekordy
    • Szybkie, wydajne, tanie
  • Scan: odczytuje całą tabelę, filtruje po fakcie
    • Wolne, kosztowne — stosuj tylko w ostateczności
  • Zasada: znasz klucz → użyj Query. Nie znasz → przemyśl projekt tabeli.

scan

Korzystanie z magazynów danych w AWS

Zapobieganie wyścigom przy użyciu wyrażeń warunkowych

  • Problem: dwóch użytkowników aktualizuje ten sam rekord jednocześnie
  • Rozwiązanie: wyrażenia warunkowe
  • Przykład: aktualizuj tylko wtedy, gdy bieżąca wartość jest zgodna z oczekiwaną

race

Korzystanie z magazynów danych w AWS

Wyrażenia UpdateItem: modyfikowanie atrybutów

  • SET: ustawia wartość atrybutu lub tworzy nowy atrybut
  • ADD: zwiększa/zmniejsza liczby, dodaje elementy do zbiorów
  • REMOVE: usuwa atrybuty z rekordu
  • DELETE: usuwa elementy ze zbiorów

expressions

Korzystanie z magazynów danych w AWS

Paginacja z Query i Scan

  • Problem: duże wyniki przekraczają limit 1 MB
  • Rozwiązanie: paginacja z użyciem LastEvaluatedKey
  • Limit: określa liczbę rekordów na stronę
  • Kontynuuj, aż LastEvaluatedKey będzie null

pagination

Korzystanie z magazynów danych w AWS

Czas na praktykę!

Korzystanie z magazynów danych w AWS

Preparing Video For Download...