IT Baza danych

DynamoDB

Znany też jako:Amazon DynamoDBAWS DynamoDB

Definicja #

Amazon DynamoDB to zarządzana baza danych NoSQL dostępna jako usługa AWS, uruchomiona w 2012 roku. Inspirowana wewnętrznym systemem Dynamo opisanym w słynnym papers Amazon z 2007 roku, oferuje:

  • Model danych — tabele z elementami (items); każdy item ma klucz partycji (partition key) i opcjonalny klucz sortowania (sort key). Atrybuty mogą być dowolnymi typami skalarnymi, dokumentami JSON i zbiorami.
  • Automatyczne skalowanie — DynamoDB automatycznie skaluje przepustowość (read/write capacity units) lub działa w trybie on-demand bez konfiguracji.
  • Globalnie rozproszona — Global Tables zapewniają replikację multi-region z aktywną replikacją active-active.
  • DynamoDB Streams — strumień zmian danych (CDC) do integracji z Lambda, Kinesis i innymi serwisami.
  • TTL (Time To Live) — automatyczne usuwanie wygasłych elementów bez dodatkowych kosztów.
  • Transakcje — ACID transactions (TransactWriteItems, TransactGetItems) do operacji atomowych na wielu elementach.

DynamoDB wymaga starannego projektowania schematu (access patterns-first design) i dobrego doboru kluczy partycji dla uniknięcia hot partitions. Kluczowe jest zrozumienie Single Table Design.

Zastosowania #

  • Backend sesji użytkowników w aplikacjach mobilnych — szybki odczyt profilu i preferencji.
  • Katalog produktów e-commerce z możliwością wyszukiwania po wielu atrybutach (GSI).
  • Leaderboardy i rankingi w grach online — sortowane struktury z kluczem sortowania.
  • Przechowywanie metadanych plików i stanu zadań w architekturach serverless (Lambda + DynamoDB).
  • Systemy IoT — ingesting dużych wolumenów danych z urządzeń w czasie rzeczywistym.

Ścieżka nauki #

DynamoDB wymaga przestawienia myślenia z relacyjnego na access-pattern-oriented design:

  1. Zacznij od AWS Free Tier — DynamoDB ma hojną warstwę bezpłatną (25 GB, 25 RCU/WCU).
  2. AWS dokumentacja i "Amazon DynamoDB Developer Guide" — szczegółowa i aktualna.
  3. Kurs "The DynamoDB Book" Alexa DeBrie — najlepsza praktyczna pozycja o Single Table Design.
  4. Naucz się projektowania kluczy: partition key, sort key, GSI (Global Secondary Index), LSI.
  5. AWS re:Invent talks na YouTube — Rick Houlihan's sessions o DynamoDB Advanced Patterns.
  6. Ćwicz z AWS SDK (Python boto3, JavaScript AWS SDK v3, .NET AWS SDK).

FAQ #

Kiedy wybrać DynamoDB zamiast relacyjnej bazy danych?
DynamoDB sprawdza się, gdy masz dobrze zdefiniowane wzorce dostępu (access patterns), potrzebujesz ekstremalnej skalowalności i niskich opóźnień, dane mają strukturę hierarchiczną (dokumenty), a schemat jest elastyczny. Relacyjna baza jest lepsza przy złożonych zapytaniach ad-hoc, JOIN-ach i silnych wymaganiach ACID.
Co to jest Single Table Design?
Single Table Design to wzorzec projektowania DynamoDB, gdzie wiele typów encji (np. użytkownicy, zamówienia, produkty) przechowywanych jest w jednej tabeli. Klucze partycji i sortowania są zaprojektowane tak, aby obsłużyć wszystkie wzorce dostępu. Zmniejsza koszty i poprawia wydajność kosztem złożoności projektu schematu.
Ile kosztuje DynamoDB?
DynamoDB oferuje dwa tryby rozliczeń: on-demand (płatność za rzeczywiste odczyty/zapisy) i provisioned capacity (rezerwacja RCU/WCU z opcją auto-scaling). Free Tier obejmuje 25 GB storage, 25 RCU i 25 WCU miesięcznie. Ceny zależą od regionu AWS.
Czy DynamoDB obsługuje transakcje?
Tak — DynamoDB obsługuje ACID transactions przez API TransactWriteItems i TransactGetItems, które pozwalają na atomowe operacje na do 100 elementach w jednej lub wielu tabelach. Transakcje mają dodatkowy koszt (2x RCU/WCU).
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z DynamoDB w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.