如何解决DynamoDB中的“热”哈希密钥问题(空间偏斜数据)?

时间:2016-09-15 04:18:25

标签: amazon-web-services hash amazon-dynamodb database nosql

例如,我使用DynamoDB来存储产品购买记录。哈希键为产品ID ,范围键为购买时间

某些热门产品可能会有大量购买记录(空间偏差),因此读取/写入请求可能会受到“热”分区的限制,而其他分区则没有使用完整吞吐量。

如何解决此问题并仍能获得最新的购买记录?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用缓存解决方案来实现此目的。

您可以在设计表格时遵循指南来缓存热门项目: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html#GuidelinesForTables.CachePopularItems

我的解决方案是使用elasticache(Redis),您可以创建一个列表,代表每个产品的最后一次购买,并修剪每个产品的最后100次购买,例如:

  

LPUSH产品:100 2016-08-13:purchaseId

     

LTRIM产品:100 0 99

将裁剪列表最后100个项目。

我希望这有帮助...