Amazon web services 在DynamoDB/AWS生态系统中获取趋势帖子
我正在尝试建立自己的社交网络/论坛应用程序,人们可以在其中添加和喜欢彼此的帖子。我使用DynamoDB作为我的数据库,只有一个表。对于post liking功能,Im将Lambda函数与DynamoDB流结合使用,后者聚合like属性。Amazon web services 在DynamoDB/AWS生态系统中获取趋势帖子,amazon-web-services,amazon-ec2,aws-lambda,amazon-dynamodb,Amazon Web Services,Amazon Ec2,Aws Lambda,Amazon Dynamodb,我正在尝试建立自己的社交网络/论坛应用程序,人们可以在其中添加和喜欢彼此的帖子。我使用DynamoDB作为我的数据库,只有一个表。对于post liking功能,Im将Lambda函数与DynamoDB流结合使用,后者聚合like属性。 目前,我正在为这些用户帖子建立排名机制。有鉴于此,我想确保我的用户能够在该时间点在论坛中列出感兴趣的帖子。为此,我阅读了reddit如何处理其在这方面的排名算法。我还对Stackoverflow提出了问题,它离我的问题很近,我没有一个好的答案。我的问题是,如何在
目前,我正在为这些用户帖子建立排名机制。有鉴于此,我想确保我的用户能够在该时间点在论坛中列出感兴趣的帖子。
为此,我阅读了reddit如何处理其在这方面的排名算法。
我还对Stackoverflow提出了问题,它离我的问题很近,我没有一个好的答案。
我的问题是,如何在AWS生态系统的帮助下解决此问题(甚至可能仅使用DynamoDB和Lambda函数?
编辑:
我的数据库模式如下所示:
Partitionkey Sortkey likes ...
---------- -------- ------
forum#soccer 01.08.19 13:15
forum#baseball 22.08.19 20:11
post#soccer#Do you think FC Barcelona wins? 05.08.19 10:20 203
post#soccer#Which club is your favorite ? 05.08.19 10:20 2
like#Which club is your favorite ? John Wick
like#Which club is your favorite ? Walter White
...
每次插入以“like”开头的项目时,都会触发lambda函数,并更新like列上的帖子条目。我的目标是查询当前最流行的帖子。这应该是可能的可用信息,如创建时间和类似的职位计数。目前,我的查询只是返回最新的帖子我将提供一个可能的解决方案,只考虑DynamoDB和Lambda(可能还有AWS SQS)。如果不合适,我们可以考虑使用其他解决方案,如Amazon ElastiCache
算法:
趋势#posts
的分区键(注1),只有趋势
(由您决定)和排序键作为日期或帖子类型(或任何您想要排序的内容)。您可能希望分析随时间变化的趋势-使用排序键作为日期-或按帖子类型筛选趋势)。或者,如果不需要过滤器,可以只使用单个值注1:你不需要随着时间的推移得到准确的分数,只需要排名。我的意思是,如果你在上午9点保存趋势图,你不需要在下午1点进行正确的趋势图,只需要第一、第二。。。当出现新的相似项时,您只需要新的分数
注2:我说“可能还有AWS SQS”,因为用户可能同时喜欢帖子,而Lambda将同时执行,一致性问题可能会发生。在AWS SQS中,每个like都会将事件推送到SQS,从而触发Lambda。这样Lambdas就不会同时执行。您的实际问题是什么,我如何组织我的DDB表,以便查询最喜欢的帖子?如果是,请描述您当前的表格设计。您的表格结构会很有帮助,从描述中很难理解。@dmigo我编辑了我的问题。现在清楚了吗?谢谢你的支持help@AshamanKingpin我编辑了我的问题:)您希望查询返回什么?按喜欢的数量排序的帖子列表?职位名单会一直保留吗?最后一个小时?最后一天?注2听起来像是最佳实践方法,解耦并允许将来使用其他一些功能。