我有一张桌子,我可以在一组网页上随时间存储社交媒体帖子。表列是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'。我如何设置表格和密钥来执行此操作?我可以使用本地或全球二级索引吗?
非常感谢任何帮助或建议。
答案 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
希望这会有所帮助
由于