【问题标题】:Key-ids generated automatically on NDB on GAE在 GAE 上的 NDB 上自动生成的密钥 ID
【发布时间】:2019-01-07 12:03:23
【问题描述】:

我在官方文档中找到了关于标题的声明,如下1

这里好像说自动生成的数字最多16位。

Cloud Datastore can also automatically assign IDs. Cloud Datastore generates a random sequence of unused IDs that are approximately uniformly distributed. Each ID can be up to 16 decimal digits long.

虽然上面说了,但根据我的实验,所有自动生成的数字都是 FIX 16 位数字。 如果文档是真的,那么采取措施防止归因错误会更好吗?

欢迎任何获得自动生成的 id 长度小于 15 位的人。

【问题讨论】:

    标签: key app-engine-ndb digits auto-generate


    【解决方案1】:

    Cloud Datastore 有一个 legacy id allocation policy,它的数字通常低于 16 位,但不能保证这一点。

    一般来说,如果您对 Cloud Datastore id 的格式有要求,我建议您制定自己的 id 分配策略(为您的键使用基于字符串的 id)。这将使您可以保证您的 id 的外观。

    【讨论】:

    • 我明白你说的。确切地说,传统的 id 分配策略设置在使用小于 15 位的 id 时是有意义的。但是,我想知道的是,这些 id 实际上是使用 ndb 模块或 gcp 的一些限制自动生成的。你听说过这类信息吗?
    • 来自旧策略或当前策略的 ID 由 Cloud Datastore 后端生成。后端保留更改 id 分配方案的权利,只要它符合 API 保证(“保证这些密钥之前没有被数据存储的内部 ID 生成器返回,也不会被未来调用内部ID 生成器。”source
    • 我明白了。感谢您的意见。我决定使用 allocate_ids() 方法,效果很好,我希望如此。
    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-23
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多