Sådan indstilles DynamoDB-partitionsnøglerne

Sadan Indstilles Dynamodb Partitionsnoglerne



Produktiviteten af ​​enhver database er afhængig af datatilgængelighed, da det kan være hektisk at søge efter et element fra flere objekter. Ofte er det altid en seriøs overvejelse, hvordan du forespørger i databasen. Partitionsnøglerne er dine primære indgangspunkter i DynamoDB, når du vil lave meget effektive forespørgsler.

Normalt er partitionsnøglerne på tværs af tabeller unikke. Det er således umuligt at have to eller flere elementer med den samme partitionsnøgle i en tabel, men det omvendte kan ske, når det bruges i indekser. Desuden er partitionsnøgler umulige at ændre, når du først har oprettet en tabel, da de er uforanderlige.







Denne artikel diskuterer partitionsnøgler. Vi vil fokusere på, hvorfor du har brug for partitionsnøglerne og den bedste praksis, du skal følge, når du indstiller dem. Til sidst vil vi se på, hvordan DynamoDB-partitionsnøglerne er essentielle.



Hvad er en DynamoDB-partitionsnøgle, og hvorfor er den vigtig?

En partitionsnøgle er en simpel primærnøgle i DynamoDB, der ofte består af en enkelt attribut. Hvert element i en DynamoDB-tabel har en unik partitionsnøgle for at aktivere hurtige og effektive forespørgselsprocesser.



Du kan parre en primærnøgle med en sorteringsnøgle for at lave en sammensat primærnøgle, der indeholder to attributter. Når de bruges sammen, kan du organisere alle data under en partitionsnøgle ved hjælp af sorteringsnøgleværdien.





Da DynamoDB reserverer dataene som et konsortium af attributter kaldet elementer, har attributterne unikke primære værdinøgler for nem tilgængelighed. Varerne i DynamoDB ligner især poster, felter, kolonner eller rækker i de fleste databasesystemer.

Ydermere giver DynamoDB dig mulighed for at distribuere dataene i partitioner på op til 10 GB lagerenheder. Hver tabel kan derfor have en eller flere partitioner. Du kan bruge værdien af ​​en partitionsnøgle som input til databasens interne hash-funktion, med output fra hash-funktionen, der bestemmer den partition, hvori elementet er gemt. Desuden bestemmer placeringen af ​​et element, hvilken partition det er gemt i.



Sådan indstilles DynamoDB-partitionsnøglerne

Indstilling af partitionsnøgler kan være en op ad bakke opgave, hvis du endnu ikke har forstået konceptet. Denne proces kan dog være nem og effektiv, når du først har samlet de nødvendige tips og tricks. Følgende er nogle af de bedste fremgangsmåder, du skal følge, når du opsætter partitionsnøgler:

1. Vælg de rigtige partitionsnøgler

Den slags partitionsnøgler bestemmer bekvemmeligheden og effektiviteten ved at forespørge dine data. De er de primære indgangspunkter for forespørgsler om dine data, og det er afgørende at definere hver applikations adgangsmønstre.

Det er tilrådeligt at bruge attributterne med høj kardinalitet, når du opsætter dine DynamoDB-partitionsnøgler. Attributterne med høj kardinalitet har de forskellige værdier for hver vare og kan omfatte medarbejder-id, medarbejder_nr, ordre-id, e-mail-id, kunde-id eller ordre-id.

2. Brug PK-navnekonventionen

Partitionsnøgler bruger ofte pk-navngivningskonventionen. Denne navngivningsmetode garanterer en præcis navngivningsmekanisme uden at skelne baseret på den repræsenterede varetype eller model.

For eksempel, mens du kan blive fristet til at bruge postID og bruger-ID som partitionsnøgler til Post- og User-modeller i en tabel, tillader DynamoDB kun én partitionsnøgle for hver tabel. Du kan således ikke bruge to i en enkelt tabel. Bemærk, at tabellerne uden sorteringsnøgler kan have ID-partitionsnøgler.

3. Brug sammensatte attributter

Nogle tabeller har mere gavn af sammensatte nøgler. Det vil sige, at du har brug for mere end en enkelt egenskab for at danne de unikke nøgler. For eksempel kan du bekvemt bruge kunde-id, landekode og produkt-id til at danne en partitionsnøgle (kunde-id#landekode#produktid). Samtidig kan du bruge order_id som sorteringsnøgle.

4. Tilføj tilfældige tal på passende vis

Hvis du forventer en enorm mængde skrivninger for hver tast, vil brugen af ​​et ekstra præfiks eller suffiks gøre de tunge brugssager mere effektive. For eksempel kan du bruge fakturanummeret sammen med et sæt tilfældige tal som din partitionsnøgle. Husk at adskille de forskellige sektioner af din partitionsnøgle. For eksempel er InvoiceNumber#125656#0 som en partitionsnøgle ideel til tung brug med tusindvis af skrivninger i sekundet.

Opret en DynamoDB-partitionsnøgle

Ligesom sorteringsnøgler indebærer oprettelse af en partitionsnøgle i DynamoDB oprettelse af et nøgleskema til din tabel. Det sker selvfølgelig, når du opretter en tabel. Dette involverer ofte, at du beskriver din attribut ved hjælp af attributnavnet sammen med attributtypen. Følgende syntaks vil hjælpe:

AttributName=string,KeyType=string ...

I den givne syntaks er attributnavnet det faktiske navn på attributten, mens attributtypen enten kan være en String(S), Number(N) eller en Binær(B).

Du kan også vælge at bruge en JSON-syntaks som vist i følgende:

[

{

'AttributeName': 'streng',

'KeyType': 'HASH'

}

...

]

Uanset hvilken syntaks du vælger, antager attributtens rolle HASH-funktionen, fordi vi opretter en partitionsnøgle. Tværtimod antager nøgletypen en RANGE-funktion, når sorteringstasterne oprettes.

Endelig er det også muligt at ændre en partitionsnøgle ved hjælp af følgende værktøj:

DynamoDBClient.updateItem({
'Tabelnavn': 'mitTabelnavn',
'Nøgle': {
'pk': {
'S': 'min_partitionsnøgle'
}
},
'UpdateExpression': 'SET #emailaddress = :emailaddress',
'ExpressionAttributeNames': {
'#email': 'e-mailadresse'
},
'ExpressionAttributeValues': {
':email adresse': {
'S': ' [e-mail-beskyttet] '
}
}
})

Det givne værktøj opdaterer din e-mail-attribut, så den ligner det, du har i [e-mail-beskyttet] for elementet, hvor partitionsnøglen (pk) er lig med my_PartitionKey.

Konklusion

Når du opsætter DynamoDB-partitionsnøglerne, er der ingen enkelt universel metode. Oprettelse og brug af partitionsnøglerne afhænger af brugssagen. Desuden kan du se på de forskellige tilgængelige tilgange og finde den mest passende til din ansøgning. Sørg for, at du overholder de givne retningslinjer.