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à.
Utilizzo degli indici secondari globali per le query di aggregazione materializzate in DynamoDB
Il mantenimento di aggregazioni quasi in tempo reale e parametri chiave oltre a dati in rapida evoluzione sta acquisendo sempre più valore per permettere alle aziende di prendere decisioni in maniera veloce. Ad esempio, una libreria musicale potrebbe voler presentare le canzoni più scaricate in tempo reale.
Considera il seguente layout di tabella per libreria musicale:
La tabella in questo esempio contiene canzoni con songID
come chiave di partizione. È possibile abilitare Amazon DynamoDB Streams su questa tabella e collegare una funzione Lambda ai flussi in modo che ogni volta che viene scaricata una canzone, viene aggiunta una voce alla tabella con Partition-Key=SongID
e Sort-Key=DownloadID
. Quando effettuati, questi aggiornamenti attivano una funzione Lambda in DynamoDB Streams. La funzione di Lambda può aggregare e raggruppare i download per songID
e aggiungere la voce di primo livello, Partition-Key=songID
e Sort-Key=Month
. Tieni presente che se un'esecuzione lambda fallisce subito dopo aver scritto il nuovo valore aggregato, potrebbe essere effettuato un nuovo tentativo e aggregato il valore più di una volta, lasciandoti un valore approssimativo.
Per leggere gli aggiornamenti quasi in tempo reale, con una latenza di pochi millisecondi, utilizza l'indice secondario globale con le condizioni di query Month=2018-01
, ScanIndexForward=False
, Limit=1
.
Un'altra chiave di ottimizzazione utilizzata qui è che l'indice secondario globale è un indice di tipo sparse ed è disponibile solo su voce sulle quali bisogna eseguire una query per recuperare i dati in tempo reale. L'indice secondario globale può assistere i flussi di lavoro addizionali che hanno bisogno di informazioni sulle 10 canzoni più popolari o qualsiasi canzone scaricata in quel mese.