在 DynamoDB 中使用全域次要索引進行具體化彙總查詢 - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 DynamoDB 中使用全域次要索引進行具體化彙總查詢

快速變更的資料中維護接近即時彙總和索引鍵指標,對於企業來說變得越來越重要。例如,音樂資料庫可能想要以接近即時的速度展示最常下載的歌曲。

考慮下列音樂資料庫資料表配置:

音樂資料庫資料表配置範例。

此範例的資料表會使用 songID 做為分割區索引鍵來儲存歌曲。您可以在此資料表上啟用 Amazon DynamoDB Streams 並將 Lambda 函數附加到該串流中,如此隨著每個歌曲的下載,系統會使用 Partition-Key=SongIDSort-Key=DownloadID 來將項目新增至資料表。隨著這些更新的進行,更新會在 DynamoDB Streams 中觸發 Lambda 函數。Lambda 函數可能會彙總並依照 songID 分組下載並更新頂層項目、Partition-Key=songIDSort-Key=Month。請記住,如果 lambda 執行在寫入新的彙總值之後失敗,則可能會重試並將該值多次彙總,留下近似值。

若要以單位毫秒延遲,接近即時的速度讀取更新,則使用全域次要索引,內含查詢條件 Month=2018-01ScanIndexForward=FalseLimit=1

在此使用的另一個最佳化方式是將全域次要索引定為稀疏索引,且僅在需要查詢即時擷取資料的項目時才供使用。在需要排名前十流行歌曲或在該月下載的任何歌曲的資訊時,全域次要索引可以做為額外工作流程。