Google app engine Google数据存储插入/更新查询中使用了多长ID?
我们的产品使用Google数据存储作为应用程序数据库。大多数实体使用Long类型的id和String类型的id。我注意到Long类型的id不是按连续顺序排列的 现在我们正在将一些大表(大约有3000-4000万个条目)导出到json文件中,以用于某些业务目的。最初,我们希望像“ofy().load().type(ENTITY.class).startAt(cursor).limit(BATCH_limit).iterator()”这样的简单查询将帮助我们迭代该特定表的整个内容,从第一个条目开始,以最近创建的条目结束。我们正在分批工作,并在每个批之后存储光标,以便下一个任务可以加载该批并继续 虽然注意到几分钟前创建的实体的ID小于1周前创建的另一个实体的ID,但我们想知道在这个导出期间是否应该考虑内容冻结。一方面,进行良好的导出并在特定日期之前不丢失旧数据至关重要,另一方面,内容冻结超过1天对我们的客户来说是个问题 你建议我们做什么 谢谢,Google app engine Google数据存储插入/更新查询中使用了多长ID?,google-app-engine,cursor,google-cloud-datastore,Google App Engine,Cursor,Google Cloud Datastore,我们的产品使用Google数据存储作为应用程序数据库。大多数实体使用Long类型的id和String类型的id。我注意到Long类型的id不是按连续顺序排列的 现在我们正在将一些大表(大约有3000-4000万个条目)导出到json文件中,以用于某些业务目的。最初,我们希望像“ofy().load().type(ENTITY.class).startAt(cursor).limit(BATCH_limit).iterator()”这样的简单查询将帮助我们迭代该特定表的整个内容,从第一个条目开始,
克里斯蒂安。我认为您不必担心id的唯一性。数据存储构建在Bigtable之上,包含6个表
您是自己指定ID还是让数据存储自行生成?听起来你有“预分配id”的问题,只是猜测而已,但对于每一批你都需要排序
Kind。分配id(size=blah)
,这样你就可以保持顺序。我认为你不必担心id的唯一性。数据存储建立在Bigtable的基础上,有6个表
您是自己指定ID还是让数据存储自行生成?听起来你有“预分配ID”的问题,只是猜测,但对于每一批你都需要排序
Kind。分配ID(size=blah)
,这样你就可以保持顺序。给每个实体添加时间戳怎么样?可能一个用于创建,一个用于更新某些实体设置了创建日期,所以我们将在查询中使用它,它应该会有所帮助。但是其他人不…给每个实体添加时间戳怎么样?可能一个用于创建,一个用于更新某些实体设置了创建日期,所以我们将在查询中使用它,它应该会有所帮助。但是其他人没有…谢谢你的回答,它带来了很多新信息。有一件事,你确定第六个会跟踪下一个唯一的ID吗?我这样问是因为我认为我看到的条目的ID值比表中已经存在的条目的值要小。似乎注释太长了。我在答案中添加了。我们没有使用功能DatastoreService.AllocateId,所以这可能就是我看到ID没有增量分配的原因。看起来是这样。感谢您的回答,它带来了很多新信息。有一件事,你确定第六个会跟踪下一个唯一的ID吗?我这样问是因为我认为我看到的条目的ID值比表中已经存在的条目的值要小。似乎注释太长了。我补充了答案。我们没有使用功能DatastoreService.AllocateId,所以这可能是我看到ID没有增量分配的原因。看起来是这样的。