DynamoDB-index, strömmar och optimering

Använda datalagringstjänster i AWS

Dunieski Otano

AWS Solutions Architect

Frågan som inte gick att köra

  • Tabell: userId (partitionsnyckel), orderDate (sorteringsnyckel)
  • Behov: Hitta beställningar via e-postadress
  • Problem: Kan inte söka på attribut som inte är nycklar
  • Lösning: Global Secondary Index
    • Index möjliggör flera åtkomstmönster

gsi

Använda datalagringstjänster i AWS

Global Secondary Index (GSI)

  • Annan partitionsnyckel än bastabellen
  • Kan läggas till när som helst efter att tabellen skapats
  • Endast eventuellt konsekventa läsningar
  • Användningsfall: Sökning på attribut som inte är primärnycklar

gsi_1

Använda datalagringstjänster i AWS

Local Secondary Index (LSI)

  • Samma partitionsnyckel, annan sorteringsnyckel
  • Måste skapas när tabellen skapas
  • Stöder starkt konsekventa läsningar
  • Användningsfall: Alternativa sorteringsordningar inom en partition

lsi

Använda datalagringstjänster i AWS

GSI vs LSI – när du ska använda vilket

  • GSI: Annan partitionsnyckel, lägg till när som helst, eventuell konsistens
  • LSI: Samma partitionsnyckel, skapas vid tabellskapande, stark konsistens
  • Vanligast: GSI för flexibla åtkomstmönster

gsi_or_lsi

Använda datalagringstjänster i AWS

Dataserialisering för DynamoDB

  • Problem: DynamoDB lagrar inte Python-objekt
  • Lösning: Serialisera till JSON eller binärt format
  • JSON: Enkel data (dicts, listor) – json.dumps()
  • Base64: Binär data (bilder, tokens)

serialization

Använda datalagringstjänster i AWS

DynamoDB Streams för change data capture

  • Strömmar: Ordnad logg över alla tabellförändringar
  • Fångar: Infogningar, uppdateringar, borttagningar
  • Användningsfall: Granskningsloggar, replikering, triggers
  • Bearbeta med Lambda för realtidsreaktioner

streams

Använda datalagringstjänster i AWS

Time-to-Live för automatisk utgång

  • TTL: Automatisk borttagning av poster efter utgång
  • Ange Unix-tidsstämpel i TTL-attributet
  • Passar för: Sessioner, temporära tokens, cache
  • Ingen kostnad för TTL-borttagningar

ttl

Använda datalagringstjänster i AWS

Indexprojektionstyper och frågeprestanda

  • KEYS_ONLY: Endast nyckelattribut, minsta storlek
  • INCLUDE: Nycklar + angivna attribut
  • ALL: Alla attribut, störst storlek, inga extra hämtningar
  • Avvägning: Lagringskostnad kontra frågeprestanda

index

Använda datalagringstjänster i AWS

Batchoperationer och transaktioner

  • BatchGetItem: Läs upp till 100 poster, max 16 MB
  • BatchWriteItem: Skriv upp till 25 poster
  • TransactWriteItems: ACID för upp till 100 poster
  • Använd för: Effektivitet (batch) eller konsistens (transaktioner)

batch

Använda datalagringstjänster i AWS

Nu kör vi en övning!

Använda datalagringstjänster i AWS

Preparing Video For Download...