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

DynamoDB自动递增ID&;服务器时间(iOS SDK),ios,objective-c,amazon-web-services,amazon-dynamodb,Ios,Objective C,Amazon Web Services,Amazon Dynamodb,DynammoDB中是否有选项将自动递增的ID存储为表中的主键?我还需要将服务器时间存储在表中,作为“创建时间”字段(例如,用户创建时间)。但我找不到任何方法从DynamoDB或任何其他AWS服务获取服务器时间 你们能帮我一下吗 在DyanmoDB表中使用自动递增的ID 将服务器时间存储在类似“created at”字段的表中 谢谢。事实上,DynamoDB的功能非常少,这正是它的主要优势。简单 没有办法自动生成ID或UUID 无法自动生成日期 对于“日期”问题,应该很容易在客户端生成它。我

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

你们能帮我一下吗

  • 在DyanmoDB表中使用自动递增的ID
  • 将服务器时间存储在类似“created at”字段的表中

  • 谢谢。

    事实上,DynamoDB的功能非常少,这正是它的主要优势。简单

    • 没有办法自动生成ID或UUID
    • 无法自动生成日期
    对于“日期”问题,应该很容易在客户端生成它。我可以建议您使用ISO 8601日期格式吗?它是程序员和计算机友好的

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


    在这些情况下,您需要构建自己的系统。在这篇和DynamoDB Mapper文档中,我解释了如何实现这一点。我希望它有助于

    < >而不是使用自动增量ID,考虑使用GUID。您可以获得更高的理论吞吐量和更好的故障处理能力,唯一的损失就是自然时间顺序,它可以更好地按日期处理


    更高的吞吐量,因为您不需要要求Dynamo生成下一个可用的ID(这需要一些资源在某处获得锁,获取一些数字,并确保没有其他资源获得这些数字)。当您失去与Dynamo的连接时(Dynamo宕机,或者您处于突发状态,并且您的应用程序所做的工作超过了当前提供的吞吐量),就可以更好地处理故障。一个只写的应用程序可以继续“工作”并生成带有ID的完整数据,将其排队写入dynamo,并且永远不用担心ID冲突。

    我已经为此创建了一个小型web服务。请参阅这篇博客文章,它解释了我如何使用DynamoDB来模拟自动增量功能:


    基本上,您可以在处注册一个原子计数器,并在每次需要新值时通过RESTful API递增它。

    您确定没有办法生成递增ID吗?