保证DynamoDB中的创建顺序?

时间:2019-05-13 17:30:05

标签: nosql amazon-dynamodb

是否可以通过DynamoDB中的创建顺序自动排序我的商品?

我尝试在我的排序键中使用ISO时间戳,但是我很快注意到在同一秒内创建的项目没有确定的顺序。

另一个主要问题是我的排序键是复合键,例如:

Sort_Key : someRandomUuidHere|Created:someTimeStampHere

我需要生成UUIds来尝试确保它是唯一的,但是在uuid的末尾添加时间戳似乎不是按时间戳排序的,而是按uuid排序的。而且,如果我将时间戳记添加到开始位置,则无法使用begin_with之类的东西,这样会破坏我的访问模式

我唯一想到的方法是维护一个“最后一个键”对象,并始终向其询问最后一个项目索引,但这将需要一个额外的请求和一些ACID逻辑。

或者也许只是在客户端订购,总是这样

1 个答案:

答案 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