DynamoDB Primærnøkler Oversikt, typer og oppsett

DynamoDB Primærnøkler Oversikt, typer og oppsett

Siden AWS DynamoDB er en nøkkelverdedatabase, må hvert element i hvilken som helst tabell ha en unik primær nøkkelidentifikasjon. Det er viktig å merke seg at du må definere disse primære nøklene når du oppretter bordet. Dessuten må du oppgi den primære nøkkelen for hvert element når du setter inn elementet i en tabell.

Den viktigste forutsetningen når du setter opp primærnøklene er unikhet. To eller flere elementer kan ikke ha en lignende primærnøkkel.

Denne artikkelen diskuterer alt du trenger å vite om Dynamodbs primære nøkler. Vi vil diskutere de forskjellige typer primærnøkler som brukes i DynamoDB og hvordan du setter opp hver type.

Typer dynamoDB primærnøkler

Det er to typer primærnøkler i DynamoDB:

EN. Partisjonstast (enkel primærnøkkel)

Også kjent som en enkel primærnøkkel, består en partisjonsnøkkel av en attributt. DynamoDB bruker partisjonens nøkkelverdi som inngang til en intern hasjfunksjon. Utgangen fra hasjfunksjonen bestemmer partisjonen (fysisk lagring intern til dynamoDB) for lagring av varene dine.

En enkel primærnøkkel ligner de typiske nøkkelverdibutikkene som å bruke en primærnøkkel for å få tilgang til en SQL-tabell. Du kan også nøye knytte de primære nøklene til memcached datalagrene. Et utmerket eksempel på en partisjonsnøkkel er et brukernavn eller bruker_id i en brukers tabell.

Se følgende eksempel:

Brukere tabell

Den oppgitte brukernes tabell har UserID som den enkle primære nøkkelen eller partisjonsnøkkelen. Du kan enkelt få tilgang til detaljene til alle elementer i tabellen ved å gi varens brukerId.

Her er et eksempel på hvordan du kan angi en partisjonstast i en DynamoDB -tabell ved hjelp av AWS SDK for Python (BOTO3):

Importer BOTO3
# Opprett en DynamoDB -klient
dynamodb = boto3.klient ('dynamodb')
# Angi tabellnavnet og attributtet (kolonnen) til å bruke som partisjonstast
tabell_name = 'mytable'
partisjon_key_name = 'id'
# Definer tabellskjemaet
tabell_schema = [

'AttributeName': partition_key_name,
'KeyType': 'Hash'

]
# Opprett tabellen med den spesifiserte partisjonstasten
Response = Dynamodb.create_table (
Tablename = table_name,
Keyschema = tabell_schema,
Tilskrivningsdefinisjoner = [

'AttributeName': partition_key_name,
'AttributeType': 'S'

],
LevertThroughput =
'ReadCapacityUnits': 5,
'WriteCapacityUnits': 5

)
trykk (svar)

Den gitte syntaks oppretter en dynamoDB -tabell med en partisjonstast som heter “ID” av “S” (String) -type. Keypen til “Hash” spesifiserer at denne attributtet er partisjonstasten.

Merk at dette bare er en måte å sette en partisjonstast i DynamoDB. Du kan også bruke AWS Management Console, AWS CLI eller andre metoder for å lage en tabell med en partisjonstast.

B. Partisjonstast og sorteringsnøkkel (Composite Primary Keys)

En sammensatt primærnøkkel inneholder to attributter. Den første attributtet er partisjonstasten, og den andre er sortertasten. Å kombinere partisjonstasten og sorteringsnøkkelen danner en unik identifikator for et element i tabellen.

I tillegg til partisjonstasten, kan du bruke sortertasten ytterligere for å begrense søket etter et element i tabellen. Sortertasten hjelper også med å bestemme rekkefølgen dataene lagres i en partisjon. Se følgende diagram:

Musikkbord

Den forrige tabellen har både en partisjonsnøkkelattributt og en sortert nøkkelattributt. Dermed kan to elementer ha samme partisjons nøkkelverdi, men har forskjellige sorteringsnøkkelverdier. Composite Keys (Artist and Songtitle) i musikkbordet hjelper deg med å få et bestemt element.

Du kan opprette en tabell med en sammensatt nøkkel ved å bruke følgende trinn:

Trinn 1: Opprett en partisjonstast

Det første trinnet er å opprette en partisjonstast. Etter å ha lagt inn tabellnavnet ditt, bruk følgende syntaks for å opprette en partisjonstast.

AttributeName = String, KeyType = String ..

Den medfølgende attributttypen syntaks kan være en streng (er), tall (n) eller binær (b).

Hvis du finner Shorthand Syntax Tumberome når du angir partisjonstasten, kan du bruke følgende JSON -syntaks:

[

"AttributeName": "String",
"KeyType": "Hash"

..
]

Alternativt kan Python -kommandoen som er diskutert i den tidligere delen av denne artikkelen hjelpe deg med å opprette en partisjonsnøkkel.

Trinn 2: Lag en sorteringstast

Du kan nå opprette en sort -tast ved hjelp av følgende JSON -syntaks. Ikke bruk ID -attributtene for dine sorteringsnøkler. I stedet kan du bruke en attributtype.

[

"AttributeName": "String",
"KeyType": "Range"

..
]

Mens vi bruker hashfunksjonen når vi oppretter en dynamoDB -partisjonstast, bruker vi nå rekkefunksjonen for å sette opp DynamoDB -sorteringsnøkkelen.

Konklusjon

Ved å velge riktige primærnøkler for bordet ditt, kan du effektivt hente og lagre dataene i DynamoDB. Det er viktig å vurdere den primære nøkkelen nøye når du designer tabellen din, da det påvirker applikasjonens ytelse og skalerbarhet betydelig. Hvis du bestemmer deg for å legge til en sorteringstast, må du forsikre deg om at du bruker et attributt som raskt hjelper deg å sortere ut elementene i tabellen din.