Dermed gir du en eller flere lokale sekundære indekser dine applikasjoner valget til å dra nytte av alternative sorteringsnøkler når du utfører spørsmålene i stedet for å stole utelukkende på basisbordets primære nøkler. Ved å bruke lokale sekundære indekser eliminerer behovet for hele bordskanninger, siden du ganske enkelt kan bruke en slags nøkkel til å utføre raske spørsmål.
Denne funksjonen gjør lokale sekundære indekser viktige for applikasjoner som vil ha fordel av alternative sorteringsnøkler. Opprette en lokal sekundærindeks på en DynamoDB -tabell lar deg utstede en skanning eller spørring mot indeksene.
Hvordan lage en lokal sekundærindeks på en DynamoDB -tabell
Før vi kommer til å lage de lokale sekundære indeksene, er det viktig å merke seg at alle lokale sekundære indekser må tilfredsstille følgende betingelser:
Du må bruke LocalSeCondaryIndexes -parameteren i den opprettbare operasjonen for å opprette en lokal sekundærindeks. Vanligvis skjer det å lage en LSI når du oppretter en DynamoDB -tabell. Tilsvarende fjerner også å slette en tabell alle de lokale sekundære indeksene på bordet.
Når du oppretter en LSI, må du huske å spesifisere en enkelt ikke-nøkkel-attributt som fungerer som sortertasten for LSI. Den valgte attributtet må være et skalarnummer, streng eller binær siden andre dokumenttyper, skalartyper og angitte typer er ikke tillatt. Dessuten kan du enkelt projisere attributtene som skalarer, sett og dokumenter i din lokale sekundære indeks.
Bruke DynamoDB lokale sekundære indekser
Følgende er noen av tilfellene for lokale sekundære indekser:
en. Utføre spørsmål og skanninger
LSIS aktiverer de forskjellige sorteringsordrene til den samme listen over elementer. Mens de bruker forskjellige sorteringsnøkler, har de alltid de samme partisjonstastene. For eksempel en tabell med brukeren som partisjonstasten, sangtittelen som sortertasten, og dateadded og data som andre attributter ser slik ut:
| Userid (partisjonstast) | Songtitle (Sort Key) | Dateadded | Data |
Den forrige tabellen kan svare på spørsmål som er rettet mot å hente alle sangene som er sortert etter navn for hver bruker ved å spørre brukeren. Imidlertid betyr å hente alle sangene per bruker etter dato lagt til at du henter alle sangene og sorter dem.
Du kan fremdeles bruke en lokal brukerindeks med en UserID som partisjonstast og datadded i kategorien Sort Nøkkel og øyeblikkelig hente brukerens sanger som er sortert etter dato lagt til. Dette er fordi spørringsoperasjonene på lokale sekundære indekser returnerer alle elementene som bærer lignende partisjons nøkkelverdier når mer enn ett element deler en kort nøkkelverdi.
Igjen, det er ingen spesiell ordre at de matchende varene kommer. Spørsmål om LSIS bruker enten sterk eller eventuell konsistens. Sterke konsistente ledninger bringer naturlig tilbake de nyeste verdiene.
På den annen side returnerer LSI -skanningsoperasjoner normalt alle lokale sekundærindeksdata. Når du lager en skanning, må du spesifisere både tabell- og indeksnavnet. Dessuten tillater skanninger bruk av filteruttrykk for å forkaste dataene.
| Userid (partisjonstast) | Dateadded (Sort Key) | Songtitle | Data |
b. Vareskriving
Vareskriving på lokale sekundære indekser er en ganske grei operasjon. Du må begynne med å spesifisere et sortert nøkkelattributt ved siden av datatypen. Forsikre deg om at typen til hvert element må samsvare med sin datatype for nøkkelskjemaet i tilfelle elementet definerer en attributt for en hvilken som helst indeksnøkkel.
c. Varesamlinger i lokale sekundære indekser
En varekolleksjon i DynamoDB refererer til en gruppe elementer med en lignende partisjons nøkkelverdi i en tabell og alle LSIS. I det følgende eksempel er tabellnavnet korrespondanser og partisjonstasten er gruppenavn. Navnet på den andre tabellen er lastemailindex, men den har samme partisjonsnavn som er gruppenavn.
Tabellene og indekselementene med GroupName Partition -tasten tilhører samme varesamling.
Konklusjon
DynamoDB lokale sekundære indekser er ideelle for applikasjoner som drar nytte av å utføre spørsmålene ved hjelp av Aternate Sort Keys. Du kan opprette en eller flere LSI -er per applikasjon avhengig av dine behov. De gjør arbeidet ditt enklere og øker produktiviteten din.