DynamoDB-CRUD en Query vs. Scan

Dataopslagdiensten gebruiken in AWS

Dunieski Otano

AWS Solutions Architect

De dure fout

  • Developer gebruikt Scan om één user te vinden
  • Leest hele tabel met 1 miljoen items
  • Rekening: $500 voor één lookup
  • Query had $0,01 gekost

mistake

Dataopslagdiensten gebruiken in AWS

CRUD-bewerkingen in DynamoDB

  • PutItem: item maken of vervangen
  • GetItem: item lezen op primaire sleutel
  • UpdateItem: specifieke attributen wijzigen
  • DeleteItem: item verwijderen
  • Query: items op partition key ophalen (efficiënt)
  • Scan: hele tabel lezen (duur)

ops

Dataopslagdiensten gebruiken in AWS

Query vs. Scan: het cruciale verschil

  • Query: vereist partition key, leest gerichte items
    • Snel, efficiënt, lage kosten
  • Scan: leest hele tabel, filtert achteraf
    • Traag, duur, vermijd indien mogelijk
  • Regel: ken je de sleutel? Gebruik Query. Anders: herzie je ontwerp.

scan

Dataopslagdiensten gebruiken in AWS

Race conditions voorkomen met voorwaardelijke expressies

  • Probleem: twee gebruikers updaten tegelijk hetzelfde item
  • Oplossing: voorwaardelijke expressies
  • Voorbeeld: update alleen als huidige waarde overeenkomt

race

Dataopslagdiensten gebruiken in AWS

UpdateItem-expressies: attributen wijzigen

  • SET: attribuut instellen of nieuw attribuut maken
  • ADD: getallen verhogen/verlagen, aan sets toevoegen
  • REMOVE: attributen uit item verwijderen
  • DELETE: elementen uit sets verwijderen

expressions

Dataopslagdiensten gebruiken in AWS

Pagineren met Query en Scan

  • Probleem: grote resultaten overschrijden 1MB-limiet
  • Oplossing: paginering met LastEvaluatedKey
  • Limit: aantal items per pagina bepalen
  • Ga door tot LastEvaluatedKey null is

pagination

Dataopslagdiensten gebruiken in AWS

Laten we oefenen!

Dataopslagdiensten gebruiken in AWS

Preparing Video For Download...