Hoe de DynamoDB-partitiesleutels in te stellen

Hoe De Dynamodb Partitiesleutels In Te Stellen



De productiviteit van elke database is afhankelijk van de toegankelijkheid van gegevens, aangezien het zoeken naar een item uit verschillende objecten hectisch kan zijn. Vaak is de manier waarop u de database bevraagt ​​altijd een serieuze overweging. De partitiesleutels zijn uw primaire toegangspunten in DynamoDB wanneer u zeer efficiënte query's wilt maken.

Gewoonlijk zijn de partitiesleutels in tabellen uniek. Het is dus onmogelijk om twee of meer items met dezelfde partitiesleutel in één tabel te hebben, maar het omgekeerde kan gebeuren bij gebruik in indexen. Bovendien zijn partitiesleutels onmogelijk te wijzigen als je eenmaal een tabel hebt gemaakt, omdat ze onveranderlijk zijn.







Dit artikel bespreekt partitiesleutels. We zullen ons concentreren op waarom u de partitiesleutels nodig heeft en de best practices die u moet volgen bij het instellen ervan. Ten slotte zullen we bekijken hoe de DynamoDB-partitiesleutels essentieel zijn.



Wat is een DynamoDB-partitiesleutel en waarom is deze belangrijk?

Een partitiesleutel is een eenvoudige primaire sleutel in DynamoDB, vaak bestaande uit een enkel attribuut. Elk item in een DynamoDB-tabel heeft een unieke partitiesleutel om snelle en efficiënte queryprocessen mogelijk te maken.



U kunt een primaire sleutel koppelen aan een sorteersleutel om een ​​samengestelde primaire sleutel te maken die twee attributen bevat. Wanneer ze samen worden gebruikt, kunt u alle gegevens ordenen onder een partitiesleutel met behulp van de sorteersleutelwaarde.





Aangezien DynamoDB de gegevens reserveert als een consortium van attributen die items worden genoemd, hebben de attributen unieke primaire waardesleutels voor gemakkelijke toegankelijkheid. Met name de items in DynamoDB zijn vergelijkbaar met records, velden, kolommen of rijen in de meeste databasesystemen.

Bovendien kunt u met DynamoDB de gegevens verdelen in partities van maximaal 10 GB opslageenheden. Elke tabel kan daarom een ​​of meer partities hebben. U kunt de waarde van een partitiesleutel gebruiken als invoer voor de interne hashfunctie van de database, waarbij de uitvoer van de hashfunctie de partitie bepaalt waarin het item is opgeslagen. Bovendien bepaalt de locatie van een item de partitie waarin het wordt opgeslagen.



Hoe de DynamoDB-partitiesleutels in te stellen

Het instellen van de partitiesleutels kan een zware taak zijn als u het concept nog niet begrijpt. Dit proces kan echter eenvoudig en efficiënt zijn als u eenmaal de nodige tips en trucs hebt verzameld. Hieronder volgen enkele van de best practices die u kunt volgen bij het instellen van partitiesleutels:

1. Kies de juiste partitiesleutels

Het soort partitiesleutels bepaalt het gemak en de efficiëntie van het opvragen van uw gegevens. Ze zijn de belangrijkste toegangspunten voor het opvragen van uw gegevens en het definiëren van de toegangspatronen van elke toepassing is van cruciaal belang.

Het is raadzaam om de kenmerken met hoge kardinaliteit te gebruiken bij het instellen van uw DynamoDB-partitiesleutels. De attributen met hoge kardinaliteit bevatten de afzonderlijke waarden voor elk item en kunnen de employee_id, employee_no, order_id, emailid, customerid of orderid bevatten.

2. Gebruik de PK-naamgevingsconventie

Partitiesleutels gebruiken vaak de pk-naamgevingsconventie. Deze naamgevingsmethode garandeert een nauwkeurig naamgevingsmechanisme zonder onderscheid te maken op basis van het weergegeven itemtype of model.

Hoewel u bijvoorbeeld in de verleiding kunt komen om de postID en userID te gebruiken als partitiesleutels voor Post- en User-modellen in een tabel, staat DynamoDB slechts één partitiesleutel toe voor elke tabel. U kunt er dus geen twee in één tabel gebruiken. Merk op dat de tabellen zonder sorteersleutels ID-partitiesleutels kunnen hebben.

3. Gebruik samengestelde attributen

Sommige tabellen profiteren meer van samengestelde sleutels. Dat wil zeggen dat je meer dan één attribuut nodig hebt om de unieke sleutels te vormen. U kunt bijvoorbeeld handig klant_ID, landcode en product_ID gebruiken om een ​​partitiesleutel te vormen (klantnummer#landcode#productid). Tegelijkertijd kunt u de order_id als uw sorteersleutel gebruiken.

4. Voeg op de juiste manier willekeurige getallen toe

Als u voor elke sleutel een enorm schrijfvolume verwacht, maakt het gebruik van een extra voorvoegsel of achtervoegsel de gevallen van intensief gebruik efficiënter. U kunt bijvoorbeeld het factuurnummer naast een reeks willekeurige getallen gebruiken als uw partitiesleutel. Vergeet niet om de verschillende secties van uw partitiesleutel te scheiden. Factuurnummer#125656#0 als partitiesleutel is bijvoorbeeld ideaal voor intensief gebruik met duizenden schrijfbewerkingen per seconde.

Maak een DynamoDB-partitiesleutel

Net als sorteersleutels, omvat het maken van een partitiesleutel in DynamoDB het maken van een sleutelschema voor uw tabel. Dit gebeurt natuurlijk wanneer u een tabel maakt. Dit houdt vaak in dat u uw attribuut beschrijft met de attribuutnaam naast het attribuuttype. De volgende syntaxis zal helpen:

AttributeName=string,KeyType=string ...

In de gegeven syntaxis is de attribuutnaam de eigenlijke naam van het attribuut, terwijl het attribuuttype een String(S), Number(N) of een Binary(B) kan zijn.

U kunt er ook voor kiezen om een ​​JSON-syntaxis te gebruiken, zoals hieronder wordt weergegeven:

[

{

'AttributeName': 'tekenreeks',

'KeyType': 'HASH'

}

...

]

Welke syntaxis u ook kiest, de rol van het attribuut neemt de HASH-functie aan omdat we een partitiesleutel maken. Integendeel, het sleuteltype neemt een RANGE-functie aan bij het maken van de sorteersleutels.

Ten slotte is het ook mogelijk om een ​​partitiesleutel te wijzigen met behulp van het volgende hulpprogramma:

DynamoDBClient.updateItem({
'TableName': 'mijnTable_Name',
'Sleutel': {
'pak': {
'S': 'mijn_partitiesleutel'
}
},
'UpdateExpression': 'SET #e-mailadres = :e-mailadres',
'ExpressionAttributeNames': {
'#email': 'e-mailadres'
},
'ExpressionAttributeValues': {
':e-mailadres': {
'S': ' [e-mail beveiligd] '
}
}
})

Het gegeven hulpprogramma werkt uw e-mailattribuut bij zodat het lijkt op wat u in de [e-mail beveiligd] voor het item waarbij de partitiesleutel (pk) gelijk is aan my_PartitionKey.

Conclusie

Bij het instellen van de DynamoDB-partitiesleutels is er geen enkele universele methode. Het maken en gebruiken van de partitiesleutels is afhankelijk van de use case. Bovendien kunt u de verschillende beschikbare benaderingen bekijken en de meest geschikte voor uw toepassing vinden. Zorg ervoor dat je je aan de gegeven richtlijnen houdt.