Utilisation d'index secondaire globaux pour les requêtes de regroupement matérialisé - Amazon DynamoDB

Utilisation d'index secondaire globaux pour les requêtes de regroupement matérialisé

La gestion des regroupements et des métriques clés presque en temps réel sur des données qui changent rapidement s'avère de plus en plus utile que les entreprises puissent prendre des décisions rapides. Par exemple, une bibliothèque musicale peut souhaiter mettre en avant ses morceaux les plus téléchargés presque en temps réel.

Examinez la disposition de table de bibliothèque musicale suivante :


      Exemple de disposition de table de bibliothèque musicale.

La table de cet exemple stocke des chansons avec songID comme clé de partition. Vous pouvez activer Amazon DynamoDB Streams sur cette table et attacher une fonction Lambda aux flux de sorte que, quand chaque chanson est téléchargée, une entrée soit ajoutée à la table avec Partition-Key=SongID et Sort-Key=DownloadID. À mesure que ces mises à jour sont effectuées, elles déclenchent une fonction Lambda dans DynamoDB Streams. La fonction Lambda peut agréger et regrouper les téléchargements par songID, et mettre à jour l'élément de niveau supérieur, Partition-Key=songID, ainsi que Sort-Key=Month. Gardez à l'esprit que si une exécution lambda échoue juste après avoir écrit la nouvelle valeur agrégée, elle peut être relancée et agréger la valeur plusieurs fois, vous laissant avec une valeur approximative.

Pour lire les mises à jour presque en temps réel avec une latence de l'ordre de quelques millisecondes, utilisez l'index secondaire global avec les conditions de requête Month=2018-01, ScanIndexForward=False, Limit=1.

Comme autre optimisation de clé utilisée ici, l'index secondaire global est un index fractionné et est disponible uniquement sur les éléments qui doivent être interrogés pour récupérer les données en temps réel. L'index secondaire global peut traiter des flux de travail supplémentaires qui ont besoin d'informations sur les 10 chansons les plus populaires, ou toute chanson téléchargée au cours de ce mois.