Hur man ställer in DynamoDB-partitionsnycklarna

Hur Man Staller In Dynamodb Partitionsnycklarna



Produktiviteten hos vilken databas som helst beror på datatillgänglighet eftersom det kan vara hektiskt att söka efter ett objekt från flera objekt. Ofta är hur du frågar databasen alltid ett allvarligt övervägande. Partitionsnycklarna är dina primära ingångspunkter i DynamoDB när du vill göra mycket effektiva frågor.

Vanligtvis är partitionsnycklarna över tabellerna unika. Det är alltså omöjligt att ha två eller flera objekt med samma partitionsnyckel i en tabell, men det omvända kan hända när de används i index. Dessutom är partitionsnycklar omöjliga att ändra när du väl har skapat en tabell eftersom de är oföränderliga.







Den här artikeln diskuterar partitionsnycklar. Vi kommer att fokusera på varför du behöver partitionsnycklarna och de bästa metoderna att följa när du ställer in dem. Slutligen kommer vi att undersöka hur DynamoDB-partitionsnycklarna är viktiga.



Vad är en DynamoDB-partitionsnyckel och varför är den viktig?

En partitionsnyckel är en enkel primärnyckel i DynamoDB, ofta bestående av ett enda attribut. Varje objekt i en DynamoDB-tabell har en unik partitionsnyckel för att möjliggöra snabba och effektiva frågeprocesser.



Du kan para ihop en primärnyckel med en sorteringsnyckel för att skapa en sammansatt primärnyckel som innehåller två attribut. När de används tillsammans kan du organisera all data under en partitionsnyckel med hjälp av sorteringsnyckelvärdet.





Eftersom DynamoDB reserverar data som ett konsortium av attribut som kallas artiklar, har attributen unika primära värdenycklar för enkel åtkomst. Noterbart är att objekten i DynamoDB liknar poster, fält, kolumner eller rader i de flesta databassystem.

Dessutom låter DynamoDB dig distribuera data till partitioner på upp till 10 GB lagringsenheter. Varje tabell kan därför ha en eller flera partitioner. Du kan använda värdet på en partitionsnyckel som indata till databasens interna hashfunktion, med utdata från hashfunktionen som bestämmer i vilken partition objektet lagras. Dessutom bestämmer platsen för ett objekt i vilken partition det lagras.



Hur man ställer in DynamoDB-partitionsnycklarna

Att ställa in partitionsnycklarna kan vara en uppförsbacke om du ännu inte förstår konceptet. Den här processen kan dock vara enkel och effektiv när du väl har samlat in de nödvändiga tipsen och tricks. Följande är några av de bästa metoderna att följa när du ställer in partitionsnycklar:

1. Välj rätt partitionsnycklar

Typen av partitionsnycklar avgör bekvämligheten och effektiviteten av att söka efter dina data. De är de primära ingångspunkterna för att söka efter dina data, och det är viktigt att definiera varje applikations åtkomstmönster.

Det är tillrådligt att använda attributen med hög kardinalitet när du ställer in dina DynamoDB-partitionsnycklar. Attributen med hög kardinalitet har de distinkta värdena för varje artikel och kan inkludera medarbetar-id, anställd_nr, order-id, e-post-id, kund-id eller order-id.

2. Använd PK-namnkonventionen

Partitionsnycklar använder ofta pk-namnkonventionen. Denna namngivningsmetod garanterar en exakt namngivningsmekanism utan diskriminering baserat på den representerade objekttypen eller modellen.

Till exempel, även om du kan bli frestad att använda postID och användar-ID som partitionsnycklar för Post- och User-modeller i en tabell, tillåter DynamoDB bara en partitionsnyckel för varje tabell. Du kan alltså inte använda två i en enda tabell. Observera att tabellerna utan sorteringsnycklar kan ha ID-partitionsnycklar.

3. Använd sammansatta attribut

Vissa tabeller drar mer nytta av sammansatta nycklar. Det vill säga att du behöver mer än ett enda attribut för att bilda de unika nycklarna. Du kan till exempel enkelt använda kund_ID, landskod och produkt_ID för att bilda en partitionsnyckel (kundnummer#landskod#produktid). Samtidigt kan du använda order_id som sorteringsnyckel.

4. Lägg till slumpmässiga nummer på lämpligt sätt

Om du förväntar dig en enorm mängd skrivningar för varje tangent, kan användningen av ett extra prefix eller suffix göra de tunga användningsfallen mer effektiva. Du kan till exempel använda fakturanumret tillsammans med en uppsättning slumpmässiga nummer som din partitionsnyckel. Kom ihåg att separera de olika delarna av din partitionsnyckel. Till exempel är InvoiceNumber#125656#0 som en partitionsnyckel idealisk för tung användning med tusentals skrivningar per sekund.

Skapa en DynamoDB-partitionsnyckel

Precis som sorteringsnycklar innebär att skapa en partitionsnyckel i DynamoDB att skapa ett nyckelschema för din tabell. Naturligtvis händer detta när du skapar en tabell. Detta innebär ofta att du beskriver ditt attribut med hjälp av attributnamnet tillsammans med attributtypen. Följande syntax hjälper:

AttributName=sträng,KeyType=sträng ...

I den givna syntaxen är attributnamnet det faktiska namnet på attributet medan attributtypen antingen kan vara en String(S), Number(N) eller en Binary(B).

Du kan också välja att använda en JSON-syntax som visas i följande:

[

{

'AttributeName': 'sträng',

'KeyType': 'HASH'

}

...

]

Vilken syntax du än väljer, antar attributets roll HASH-funktionen eftersom vi skapar en partitionsnyckel. Tvärtom antar nyckeltypen en RANGE-funktion när sorteringsnycklarna skapas.

Slutligen är det också möjligt att ändra en partitionsnyckel med hjälp av följande verktyg:

DynamoDBClient.updateItem({
'TableName': 'myTable_Name',
'Nyckel': {
'pk': {
'S': 'my_PartitionKey'
}
},
'UpdateExpression': 'SET #emailaddress =:emailaddress',
'ExpressionAttributeNames': {
'#email': 'e-postadress'
},
'ExpressionAttributeValues': {
':e-postadress': {
'S': ' [e-postskyddad] '
}
}
})

Det givna verktyget uppdaterar ditt e-postattribut så att det ser ut som det du har i [e-postskyddad] för objektet där partitionsnyckeln (pk) är lika med my_PartitionKey.

Slutsats

När du ställer in DynamoDB-partitionsnycklarna finns det ingen enskild universell metod. Att skapa och använda partitionsnycklarna beror på användningsfallet. Dessutom kan du undersöka de olika tillvägagångssätten som finns och hitta den mest lämpliga för din applikation. Se till att du följer de givna riktlinjerna.