DynamoDB 自动递增 ID 和服务器时间 (iOS SDK)



dynammodb中是否有一个选项将自动增量ID存储为表中的主键?我还需要将服务器时间存储在表中,因为"创建"字段(例如,用户创建at)。但是我找不到从DynamoDB或任何其他AWS服务获得服务器时间的任何方法。

你们能帮我吗?

  1. 使用DyanModB表中的自动增量ID
  2. 将服务器时间存储在表格中的"创建"类似字段的表中。

谢谢。

实际上,DynamoDB中的功能很少,这正是其主要强度。简单。

  • 无法自动生成ID或UUID。
  • 没有办法自动生成日期

对于"日期"问题,应该很容易地在客户端生成它。我可以建议您使用ISO 8601日期格式吗?它既是程序员又是计算机友好的。

大多数情况下,有一种比使用自动ID的项目更好的方法。这通常是从SQL或MongoDB世界养成的坏习惯。例如,电子邮件或登录将为用户提供完美的ID。但是我知道在某些情况下,ID可能很有用。

在这些情况下,您需要构建自己的系统。在此答案和DynamoDB-Mapper文档的这篇文章中,我解释了如何做到这一点。我希望它有帮助

而不是使用自动插入ID,而是考虑使用GUIDS。您将获得更高的理论吞吐量和更好的失败处理,而您唯一失去的是自然的时间顺序,最好通过日期处理。

更高的吞吐量,因为您不需要要求Dynamo生成下一个可用的ID(这需要在某个地方获得锁,获得一些数字并确保其他任何数字的资源)。当您失去与Dynamo的连接时,更好的故障处理(Dynamo会崩溃,或者您的应用程序都比当前提供的吞吐量更大)。仅写入应用程序可以继续"工作"并生成带有ID的数据,将其排队以写入Dynamo,而不必担心ID碰撞。

我只是为此创建了一个小型Web服务。请参阅此博客文章,其中解释了我如何使用DynamoDB使用stateful.co来模拟自动启动功能:http://www.yegor256.com/2014/05/05/18/cloud-autoincrement-counters.html/p>

基本上,您可以在stateful.co上注册一个原子计数器,并在每次需要新值时将其递增。

最新更新