CosmosDB with SQL API - “_rid”字段的递增顺序
CosmosDB with SQL API - incremental order of the "_rid" field
我将 cosmos DB 与我的 spring 启动应用程序一起使用,并寻找一种方法为集合中的每个新条目分配顺序 ID。
这里有一个类似的查询,建议使用“_rid”:
https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/38106916-new-cosmosdb-sql-api-built-in-function-newid-b
我还观察到,当我在特定集合中添加新项目时,每个项目都有以下 _rids :-
"_rid": "qslAAL+OyU8DAAAAAAAAAA=="
"_rid": "qslAAL+OyU8EAAAAAAAAAA=="
"_rid": "qslAAL+OyU8FAAAAAAAAAA=="
以上模式按插入顺序对每个项目进行。不过,我只针对一些记录对此进行了测试。
我找不到关于此的任何文档,关于如果有更多记录(以数千为单位)会发生什么情况?!
如果有哪位好心人能解释一下这背后的 mechanism/pattern/指向一些文档,那将非常有帮助!!
谢谢!
编辑 1:添加用例详细信息:-
按插入顺序维护条目记录。每个条目都有一个整数作为它的序号。这个顺序对我来说很重要。新记录可以 'override' 使用序列号的旧记录,这就是我需要唯一 ID 的原因。我不能使用 Guid 或 uuid,因为我需要在 UI 上显示数字,这就是用户知道要覆盖哪个记录的方式。
_rid 供内部使用。最新的 spring data cosmos 不会自动生成 ID 字段的值。以前 API 能够为 ID 字段生成唯一值,但即使那样也不是顺序递增。
将必须从客户端生成顺序递增的 ID 或随机 ID。
如果您想在客户端的单个实例或多个实例中正确实现此功能,则必须包含另一个组件来保留计数器。从 Apache Curator/Zookeeper 或 Apache ignite 查看 "Atomic Long"。
更新:
您也可以考虑 Twitter 雪花。
_rid
是 ResourceId,或唯一资源标识符。它是系统属性的一部分:https://docs.microsoft.com/en-us/rest/api/cosmos-db/documents
不是你应该依赖你的逻辑的东西,因为没有行为契约(没有说它递增或如何递增)。
我将 cosmos DB 与我的 spring 启动应用程序一起使用,并寻找一种方法为集合中的每个新条目分配顺序 ID。
这里有一个类似的查询,建议使用“_rid”: https://feedback.azure.com/forums/263030-azure-cosmos-db/suggestions/38106916-new-cosmosdb-sql-api-built-in-function-newid-b
我还观察到,当我在特定集合中添加新项目时,每个项目都有以下 _rids :-
"_rid": "qslAAL+OyU8DAAAAAAAAAA=="
"_rid": "qslAAL+OyU8EAAAAAAAAAA=="
"_rid": "qslAAL+OyU8FAAAAAAAAAA=="
以上模式按插入顺序对每个项目进行。不过,我只针对一些记录对此进行了测试。
我找不到关于此的任何文档,关于如果有更多记录(以数千为单位)会发生什么情况?!
如果有哪位好心人能解释一下这背后的 mechanism/pattern/指向一些文档,那将非常有帮助!!
谢谢!
编辑 1:添加用例详细信息:- 按插入顺序维护条目记录。每个条目都有一个整数作为它的序号。这个顺序对我来说很重要。新记录可以 'override' 使用序列号的旧记录,这就是我需要唯一 ID 的原因。我不能使用 Guid 或 uuid,因为我需要在 UI 上显示数字,这就是用户知道要覆盖哪个记录的方式。
_rid 供内部使用。最新的 spring data cosmos 不会自动生成 ID 字段的值。以前 API 能够为 ID 字段生成唯一值,但即使那样也不是顺序递增。
将必须从客户端生成顺序递增的 ID 或随机 ID。
如果您想在客户端的单个实例或多个实例中正确实现此功能,则必须包含另一个组件来保留计数器。从 Apache Curator/Zookeeper 或 Apache ignite 查看 "Atomic Long"。
更新: 您也可以考虑 Twitter 雪花。
_rid
是 ResourceId,或唯一资源标识符。它是系统属性的一部分:https://docs.microsoft.com/en-us/rest/api/cosmos-db/documents
不是你应该依赖你的逻辑的东西,因为没有行为契约(没有说它递增或如何递增)。