如何在DynamoDB中实现排名榜

2020-03-13| NoSQL, DynamoDB, Data-Intensive

在互联网的世界里,你通常会看到一些Top 10事件,比如微博里的Top 10热点事件,领英每年发布的某个行业里最具影响力的Top 20行家,一个图片网站里最受欢迎的Top 100图片等等。你不仅能看到Top 10事件,还会购买一些Top 10热销产品,比如说一些电商网站上好评前10的产品,购买量Top 10的产品等。这些事件或商品有一个特征:Top 10。那么如何利用DynamoDB为这类数据建模呢?如何在海量的事件或者商品里快速找到Top 10的事件或商品呢?这些问题的答案将在下文给出!

本文将介绍如何为DynamoDB中的数据集建立和维护一个积分榜。正如前面所提到的,许多应用场景会使用到积分榜。假设,有一个数据集,你不仅想获取这个数据集中的某项数据,还想根据某个属性获取Top N项数据。

文中的示例是一个图片服务,存储了大量图片–类似于Unsplash服务。除了要获取单张图片的详细信息,我们还想查看点击数前几的图片。

在整个过程中,你将学到如何将write sharding结合scatter-gather在一起实现这种积分榜。

我想脱帽致敬Chris Shenton,起初是他和我讨论了这种实现积分榜的方法。AWS也在其官方文档里提供了一个在游戏行业中使用积分榜的例子。然而,该例子只针对多个游戏使用了多个积分榜,而不是一个积分榜记录了多个游戏。

听起来还不错 ?

如果你所在的企业遇到了以下问题:
研发流程混乱不堪或者效率低下、经历了持续上升的运维成本、无法及时向用户发布新的服务或产品以及想使用云计算技术但缺乏经验!
那么,请毫不犹疑地

联系我们