DynamoDB:获取特定散列键和辅助字段的最新观察

时间:2014-03-17 20:37:32

标签: sql nosql amazon-dynamodb

我有一张桌子,我可以在一组网页上随时间存储社交媒体帖子。表列是page_id,post_id和obs_date [加上其他有趣的数据]。我想查询此表,以获取给定 page_id的每个 post_id的最新观察。在SQL中,这将类似于

SELECT * FROM my_table 
JOIN 
(SELECT max(obs_date) AS obs_date, post_id FROM my_table 
  WHERE page_id='12345' GROUP BY post_id) AS t 
ON t.obs_date=my_table.obs_date AND t.post_id=my_table.post_id

我已经看到了在this这样的问题中获取哈希键的最新项目的方法,但是我想知道是否可以更进一步并获取给定哈希键的最新项目,然后对于另一个属性a la'GROUP BY'。我如何设置表格和密钥来执行此操作?我可以使用本地或全球二级索引吗?

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

这可以通过本地二级指数来实现

首先,您的主要表格看起来像

   page_id - hash
   post_id - range 
   other attributes

然后你可以创建具有

的LSI
   page_id - hash
   date_time - Range
   other attributes you need

现在当您根据给定的page_id查询LSI时,您将根据您的日期按升序/降序获取所有数据(scanIndexForward -false将以降序形式提供)。

文档中有类似的例子:

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LSI.html

希望这会有所帮助

由于