Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)

使用全局二级索引进行具体化聚合查询

维护近实时聚合和键指标以及快速更改数据对于希望快速做出决策的企业来说日益变得非常重要。例如,音乐库可能希望近实时展示其下载量最多的歌曲。

请考虑以下音乐库表布局:


      音乐库表布局示例。

在此示例中,表存储歌曲,其中 songID 作为分区键。您可以在此表上启用 Amazon DynamoDB 流并将 Lambda 函数附加到这些流,以便在下载每首歌曲时,一个条目会添加到表,且具有 Partition-Key=SongIDSort-Key=DownloadID。在进行这些更新时,它们会在 DynamoDB Streams 中触发 Lambda 函数。Lambda 函数可按 songID 聚合并分组下载歌曲并且更新顶级项目、Partition-Key=songIDSort-Key=Month

要近实时读取更新,并且具有不超过十毫秒的延迟,请将全局二级索引与查询条件 Month=2018-01ScanIndexForward=FalseLimit=1 结合使用。

此处使用的另一个键优化是全局二级索引属性稀疏索引且仅适用于需要进行查询以实时检索数据的项目。全局二级索引可用于需要有关最受欢迎的前 10 首歌曲或该月内下载的任何歌曲的信息的其他工作流程。