Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
In genere, quando vengono caricati i dati da altre origini dati, Amazon DynamoDB partiziona i dati della tabella su più server. È possibile ottenere prestazioni migliori se si caricano i dati su tutti i server allocati contemporaneamente.
Ad esempio, si supponga di voler caricare i messaggi utente in una tabella DynamoDB che utilizza una chiave primaria composita con UserID
come chiave di partizione e MessageID
come chiave di ordinamento.
Quando vengono caricati i dati, un approccio da adottare è quello di caricare tutti gli elementi del messaggio per ogni utente, un utente dopo l'altro:
UserID | MessageID |
---|---|
U1 |
1 |
U1 | 2 |
U1 | ... |
U1 | ... fino a 100 |
U2 |
1 |
U2 | 2 |
U2 | ... |
U2 | ... fino a 200 |
Il problema in questo caso è che non vengono distribuite le richieste di scrittura a DynamoDB tra i valori della chiave di partizione. Si prende un valore di chiave di partizione alla volta e se ne caricano tutti gli elementi prima di passare al valore della chiave di partizione successivo e fare lo stesso.
Dietro le quinte, DynamoDB esegue il partizionamento dei dati nella tabella su più server. Per utilizzare completamente tutta la capacità di velocità effettiva assegnata per la tabella, è necessario distribuire il carico di lavoro tra i valori della chiave di partizione. Dirigendo una quantità irregolare di lavoro di caricamento verso elementi che hanno tutti lo stesso valore della chiave di partizione, non si utilizzano completamente tutte le risorse assegnate da DynamoDB alla tabella.
È possibile distribuire il lavoro di caricamento utilizzando la chiave di ordinamento per caricare un elemento da ogni valore di chiave di partizione, quindi un altro elemento da ogni valore di chiave di partizione e così via:
UserID | MessageID |
---|---|
U1 |
1 |
U2 | 1 |
U3 | 1 |
... | ... |
U1 |
2 |
U2 | 2 |
U3 | 2 |
... | ... |
Ogni caricamento in questa sequenza utilizza un valore di chiave di partizione diverso, mantenendo contemporaneamente più server DynamoDB e migliorando le prestazioni di velocità effettiva.