AWS Amplify 使用重复信息创建多个 DynamoDB 表?

AWS Amplify creating multiple DynamoDB tables with duplicate information?

我正在使用 AWS Amplify、本地数据存储和云同步构建一个离线优先的移动应用程序。到目前为止,我一直在遵循文档,没有任何变化(我认为。)

到现在为止,我只有一个模型,让我们在Thing中调用它。我注意到在 运行 amplify push 之后,我的环境包含的不是一个,而是两个 DynamoDB 表:

每当我保存一个 Thing 实体时,它似乎都冗余地保存在 两个 表中。这实际上使我的 DynamoDB 存储成本翻了一番。

这是否有合理的技术原因,或者有什么方法可以避免吗?还是我只是在某个地方犯了一个错误导致它持续出现两次?

假设您有 k 个模型,那么 Amplify DataStore 将提供 k + 1 table 个模型。您注意到的额外 table 称为“增量同步 table”。它用于存储自上次客户端与 AppSync 完全同步以来发生的增量更改。 Delta Sync table 在记录上携带一个短的 TTL,如果在 window 的时间内未使用,它们将被丢弃。

要了解有关 Delta Sync 和 DataStore 的更多信息,我推荐 Ed Lima 的 AWS AppSync offline reference architecture – powered by the Amplify DataStore。请特别参阅标有“Delta Sync table”的部分。“

资料来源:我是这个产品团队的一名工程师。