Comprendere come impostare le chiavi di ordinamento di DynamoDB durante la creazione delle tabelle è molto utile per organizzare i dati. Ancora di più, migliora l'efficienza del recupero dei tuoi dati ogni volta che hai bisogno di qualcosa.
Questo articolo si concentra sulle chiavi di ordinamento di DynamoDB. Oltre a discutere di cosa sono le chiavi di ordinamento di DynamoDB, parleremo anche di come impostarle e utilizzarle.
Cosa sono le chiavi di ordinamento di DynamoDB e quando sono applicabili?
Le chiavi di ordinamento sono attributi utilizzati in DynamoDB per organizzare gli elementi in una partizione. In genere, diversi elementi possono avere valori di chiave di partizione simili ma valori di chiave di ordinamento diversi. Ovviamente, DynamoDB supporta l'utilizzo delle sole chiavi di partizione e la combinazione di chiavi di partizione e chiavi di ordinamento in un'unica tabella.
In tali casi, la chiave primaria è costituita da una chiave di partizione e una chiave di ordinamento, i cui valori sono rispettivamente productID e productType. Questa combinazione di attributi, nota come chiave composita, rende il recupero degli elementi più semplice ed efficiente. Inoltre, la chiave di partizione utilizza la funzione HASH interna mentre la chiave di ordinamento utilizza la funzione RANGE.
Guida dettagliata su come impostare una chiave di ordinamento nelle tabelle DB di Dynamo
Come con le chiavi di partizione, la creazione delle chiavi di ordinamento DynamoDB avviene durante la configurazione della tabella DynamoDB. Entrambi i casi comportano la creazione di uno schema chiave prima. Poiché le chiavi di ordinamento non sono indipendenti e funzionano insieme alle chiavi di partizione nella chiave composita primaria o nella combinazione di chiavi hash-range, si inizia creando una chiave di partizione per la tabella.
Passaggio 1: crea una chiave di partizione per la tua tabella
Le chiavi di ordinamento hanno una relazione diretta con le chiavi di partizione. E poiché la chiave di partizione è la più dominante nella disposizione di DynamoDB, inizia creando la chiave di partizione dopo aver inserito il nome della tabella. È possibile utilizzare la seguente sintassi abbreviata:
AttributeName=stringa,KeyType=stringa ...Il tipo di attributo nella sintassi abbreviata può essere a Stringa(S), Numero(N) o Binario(B). Ma se ritieni che la sintassi abbreviata sia ingombrante nell'impostazione della chiave di partizione, puoi utilizzare la seguente sintassi JSON:
[
{
'AttributeName': 'stringa',
'KeyType': 'HASH'
}
...
]
Passaggio 2: aggiungi una chiave di ordinamento
Procedi con l'aggiunta di una chiave di ordinamento utilizzando la seguente sintassi JSON. Una chiave di ordinamento non deve essere un ID. Utilizzare invece un attributo Type.
[{
'AttributeName': 'stringa',
'KeyType': 'RANGE'
}
...
]
Tieni presente che abbiamo utilizzato la funzione HASH durante la creazione di una chiave di partizione DynamoDB. Ora, utilizziamo la funzione RANGE durante l'impostazione della chiave di ordinamento di DynamoDB.
Nella Console di gestione AWS, hai le opzioni per aggiungere una chiave di ordinamento, contrassegnarla come mostrato e aggiungere la tua chiave. Ad esempio, possiamo avere ID_cliente o ID_ordine come chiave di partizione e numero_fattura come chiave di ordinamento in una tabella per i nuovi ordini.
Fare riferimento alla seguente illustrazione:
È importante notare che sia la chiave di partizione che gli attributi della chiave di ordinamento possono essere sotto forma di String(S), Number(N) o Binary(B).
In Java, una tabella Music con voci sia della chiave di partizione che della chiave di ordinamento dovrebbe apparire così:
pacchetto com.dynamoDbDemo.entity;import com.amazonaws.services.dynamodbv2.datamodeling.*;
@DynamoDBTable(tableName = 'Musica')
classe pubblica Musica {
artista d'archi privato;
private String songTitle;
@DynamoDBHashKey(attribute)
}
public void setSongTitle(String SongTitle) {
this.songTitle = songTitle;
}
@DynamoDBRangeKey(attribute) // chiave di ordinamento
public String getSongTitle() {
return songTitle;
}
public void setSongTitle(String songTitle) {
this.songTitle = songTitle;
}
Nelle righe di comando precedenti, DynamoDBTable è l'annotazione Java utilizzata per mappare una proprietà all'attributo table mentre l'annotazione DynamoDBHashKey attribuisce una chiave di partizione. Allo stesso modo, l'annotazione DynamoDBRangeKey dedica un elemento all'attributo chiave di ordinamento. Puoi procedere ad aggiungere altri attributi non primari alla tua tabella.
Conclusione
Questa guida illustra come impostare una chiave di ordinamento su una tabella DynamoDB. Si noti che non è possibile modificare gli attributi della chiave di ordinamento dopo averli creati. Ancora una volta, è essenziale notare che DynamoDB interrogherà solo le tabelle e gli indici utilizzando insieme una chiave di partizione e una chiave di ordinamento. Non puoi utilizzare solo le chiavi di ordinamento per interrogare le tue tabelle. Assicurati di specificare prima la chiave di partizione.