Google App Engine - Datastore java.lang.IllegalArgumentException:实体太大了

时间:2018-03-13 18:00:22

标签: java google-app-engine google-cloud-platform google-cloud-datastore datastore

当我尝试保存实体时,数据存储区会抛出错误:

java.lang.IllegalArgumentException: entity is too big
    at com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:53)
....

2 个答案:

答案 0 :(得分:2)

Google Datastore有限制。官方建议将您的大型实体拆分为逻辑Entity group,其祖先及其子项已定义。

将其视为嵌套记录。如果创建名为“Employees”的实体,则可以创建“Performance”和“Profile”等子实体。这样,您就不需要该员工在一个实体中的整个历史记录和个人资料。

基本上,您可以设计数据存储区结构,以确保每个实体的大小不超过1MB。

答案 1 :(得分:1)

目前,每个未编入索引的String属性可以是up to 1MB,总实体大小可以是1MB。 "限制" OP评论中的doc已更新为使用此值。

实体组可以是这里的解决方案。