Úvod do Amazon DynamoDB

Využití datových úložišť v AWS

Dunieski Otano

AWS Solutions Architect

Problém hot partition

  • Představ si restauraci s jedním přetíženým pokladním a třemi nevytíženými
  • To je výsledek špatného návrhu partition key
  • Hot partition = jedna partition přijímá neúměrně velký provoz, ostatní jsou nevytížené.
  • Řešení: Partition key s vysokou kardinalitou – atributy s mnoha jedinečnými hodnotami, které rovnoměrně rozkládají data

partition

Využití datových úložišť v AWS

Co dělá dobrý partition key

  • Vysoká kardinalita: Mnoho jedinečných hodnot
    • userId, orderId, sessionId – Ano
    • country, status, category – Ne
  • Rovnoměrné rozložení: Vyvážené vzorce přístupu
  • Předvídatelnost: Hodnota je při dotazu známá

cardinality

Využití datových úložišť v AWS

Struktura tabulky DynamoDB

  • Partition key (povinný): Určuje rozložení dat
  • Sort key (volitelný): Umožňuje dotazy na rozsahy (např. userId + orderDate)
  • Atributy: Další datová pole
  • Primární klíč = Partition key NEBO Partition key + Sort key

table

Využití datových úložišť v AWS

Vytvoření první tabulky

  • AWS konzole: Rychlé nastavení pro testování
  • boto3 (Python): Vytváření tabulek programově
  • Klíčová rozhodnutí: Partition key, sort key, režim účtování

first

Využití datových úložišť v AWS

Složené klíče a dotazy se sort key

  • Složený klíč: Partition key + Sort key
  • Dotazy na rozsahy: Dotazy na rozsahy dat, číselné rozsahy
  • Operátory: =, <, >, <=, >=, BETWEEN, begins_with
  • Příklad: Získej objednávky uživatele za posledních 30 dní nad 100 $

code

Využití datových úložišť v AWS

Režimy kapacity: on-demand vs. provisioned

  • On-Demand: Platba za požadavek, automatické škálování
    • Ideální pro: Nepředvídatelný provoz, nové aplikace
  • Provisioned: Nastavené RCU/WCU, nižší cena při velkém objemu
    • Ideální pro: Předvídatelný provoz, optimalizaci nákladů
  • Přepnutí režimu je možné jednou za 24 hodin

mode

Využití datových úložišť v AWS

Pojďme cvičit!

Využití datových úložišť v AWS

Preparing Video For Download...