我知道我们不能将DynamoDB用作常规关系数据库,但我感觉我的一些用例可以使用DynamoDB的额外功能进行建模。
我正在扩展这里的文档示例:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html
如果我将我的表格建模为:
UserID MessageID MessageMetaData MessageRetried U1 M1 XYZ1 True U1 M2 XYZ2 True U1 M3 XYZ3 False U2 M1 ABC1 True U2 M2 ABC2 False U3 M1 QWE1 False U3 M2 QWE2 True
如果我将分区(主)密钥设为UserID字段,将排序密钥设为MessageID。
我理解如果只查询UserID U1,我会得到包含所有这些项[{U1,M1,XYZ1},{U2,M2,XYZ2},{U3,M3,XYZ3}]的列表。在Java高级API中执行此操作的最佳方法是什么?
此外,如果我同时传递UserID和MessageId,我应该能够获得该项目。
现在,如果我假设我在MessageRetried上创建一个GlobalSecondaryIndex,那么根据我的理解,我可以获取值为true的所有项目,但这受到页面大小的限制,有没有办法对此响应进行分页?
谢谢, 阿比尔