我想在Dynamo数据库中存储事务历史记录。给出了2种建议的方法。
方法1:交易参考 - >分区键& GSI [CardNumber,TransactionDate]
方法2: CardNumber - >分区键,交易参考 - >范围键& LSI [CardNumber,TransactionDate]
我决定使用第一个,因为我想避免热分区。
任何人都可以建议一个更好的方法或指向正确的方向。
答案 0 :(得分:0)
我建议采用方法2稍加修改。
timestamp
而非日期)<强>原因: - 强>
数据模型应满足主要用例或查询访问模式。在您的方法1中,您最终将GSI用于主要用例,这不是设计数据模型的最佳实践。我们可以将GSI用于任何替代或边缘情况。
通常,应立即同步GSI。但是,在一些罕见的情况下,可能会有一些小的延迟。此外,您应该考虑是否要使用最终一致或一致的读取。
如果您可以避免使用GSI,也可以节省成本。