0

我正在尝试以 csv 格式从谷歌云数据存储中提取所有实体。

我找到了一个很好的链接,对我有很大帮助(https://vikashazrati.wordpress.com/2010/09/20/downloading-datastore-data-from-a-java-application-on-google-app-engine/

我的应用程序是用java制作的。

我有两个担忧:

一个。仅检索子类的索引字段,而不是全部。我是否应该索引子类的所有字段/属性(我的理解是索引所有字段不是一个好主意,如果我错了请纠正我)

湾。我有一个 arrayList 作为这个实体的一部分,我只需要最大索引上的元素,比如 arrayList[arrayList.size() -1],我无法检索它。(仅供参考,arrayList 由特定类的对象组成,即这是一个复合属性,在检索到所需的对象后,我计划打印检索此复合属性的成员 1 by 1 类似于 arrayList[arrayList.size( ) -1].member1 )

任何指针都会有所帮助。

提前致谢

4

1 回答 1

1

Wrt (a),索引一切都是可行的——问题是如果你写很多实体它会变得相当昂贵(你做的每个实体都需要更新许多索引)。远程 API https://cloud.google.com/appengine/docs/java/tools/remoteapi可能是更好的方法。

Wrt (b),此类问题的通常解决方案是“非规范化”——引入一些冗余以便于查询和获取。因此,例如,如果您有一个foo成员是一个列表,请添加一个last_foo已维护的冗余成员(每次修改时的少量代码foo)以等于foo. 编写方面有一点额外的成本,但是对于许多应用程序来说,查询和获取不成比例地节省了(并且对于大多数应用程序来说,查询和获取更频繁)。

于 2015-11-21T21:51:19.070 回答