是否可以通过DynamoDB中的创建顺序自动排序我的商品?
我尝试在我的排序键中使用ISO时间戳,但是我很快注意到在同一秒内创建的项目没有确定的顺序。
另一个主要问题是我的排序键是复合键,例如:
Sort_Key : someRandomUuidHere|Created:someTimeStampHere
我需要生成UUIds来尝试确保它是唯一的,但是在uuid的末尾添加时间戳似乎不是按时间戳排序的,而是按uuid排序的。而且,如果我将时间戳记添加到开始位置,则无法使用begin_with之类的东西,这样会破坏我的访问模式
我唯一想到的方法是维护一个“最后一个键”对象,并始终向其询问最后一个项目索引,但这将需要一个额外的请求和一些ACID逻辑。
或者也许只是在客户端订购,总是这样
答案 0 :(得分:1)
排序键从左到右排序...是的,UUID是唯一会影响顺序的组件。
为什么不首先放置时间戳?
或者,仅考虑基于时间的UUID。 Dynamo不提供本地服务,尽管有些NoSQL DB(例如Cassandra)提供。
这是一篇讨论使用.NET创建对象的文章 Creating a Time UUID (GUID) in .NET
其中包含以下来源的链接 https://github.com/fluentcassandra/fluentcassandra/blob/master/src/GuidGenerator.cs