我正在使用以下内容下载我的其中一种实例:
appcfg.py download_data --config_file=bulkloader.yaml --kind=ModelName --filename=ModelName.csv --url=http://appid.appspot.com/remote_api
如果种类的实例多于批量大小,那么我会收到此警告:
No descending index on __key__, performing serial download
我没有任何自定义索引,也没有禁用索引的任何属性。
我是否需要做某事来解决此警告,或者它只是一个我可以放心忽略的警告?它会影响下载的速度吗?
This article on the bulkloader在示例输出中包含警告消息,但未提及它。
This post on the app engine group说我需要创建一个索引。但是,添加更多索引会减慢对我的实体的写入速度 - 我宁愿不这样做,因为我将更频繁地编写实体,而不是进行批量数据下载。
感谢。
答案 0 :(得分:6)
正如错误所描述的那样,对于您正在下载的模型,__key__
没有降序索引,批量加载程序必须按顺序下载。如果您按照描述添加索引,它将能够并行下载。如果不这样做,它将正常工作,但下载速度会慢,因为它会连续运行。
请注意,附加索引对延迟的影响很小,因为索引行与实体写入并行写入,这意味着写入只需要最慢的更新。
答案 1 :(得分:2)
我已经通过将此代码添加到index.yaml
解决了这个问题kind: books
- properties:
name: __key__
- direction: desc
kind: books
- properties:
name: another_indexes_here
答案 2 :(得分:0)
如果您使用的是JAVA和datastore-indexes.xml文件。
将此(假设该类型的名称为“Books”)添加到datastore-indexes.xml文件中:
<datastore-index kind="Books" ancestor="false" source="auto">
<property name="__key__" direction="desc"/>
</datastore-index>
然后重新部署您的应用。确保检查数据存储区索引选项卡以查看__key__
是否正在服务。
然后你可以再次尝试下载。