【问题标题】:Modeling ecommerce order table - DynamoDB + SNS + SQS电子商务订单表建模 - DynamoDB + SNS + SQS
【发布时间】:2017-02-02 12:57:21
【问题描述】:
我创建了一个 DynamoDB 表来存储来自电子商务前端的订单。当用户下订单时,订单将存储在 DynamoDB 表中。此表有一个主键 (order_id) 和两个全局二级索引:(email, SSN)。
我也想按订单状态查询。
所以我想在特定日期检索特定状态的所有订单。模拟这种行为的最佳方法是什么?
使用排序键创建另一个全局二级索引?
【问题讨论】:
标签:
amazon-dynamodb
amazon-dynamodb-streams
【解决方案1】:
是的,您需要添加另一个 GSI。
但是,这会花费您金钱。您可以问自己的一个问题是,您真的需要实时/低延迟查找吗?
如果没有,那么您可以考虑将 DynamoDB 数据复制到 Redshift 等数据存储并在其上运行查询。这个:
- 可能更具成本效益,具体取决于您的应用。
- 将允许您在未来支持更广泛的查询模式。 (请记住,您在 DynamoDB 中只能有 5 个 GSI,而您已经使用了其中的 2 个)