4

我正在使用以下内容下载我的一种类型的所有实例:

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

我没有任何自定义索引,也没有任何禁用索引的属性。

我“需要”做些什么来解决这个警告,还是只是一个我可以安全忽略的警告?会影响下载速度吗?

这篇关于 bulkloader的文章在示例输出中包含警告消息,但没有提及它。

应用引擎组上的这篇文章说我需要创建一个索引。但是,添加更多索引会减慢对我的实体的写入速度——我宁愿不这样做,因为我将更频繁地写入实体而不是进行批量数据下载。

谢谢。

4

3 回答 3

6

正如错误描述的那样,如果__key__您正在下载的模型没有降序索引,bulkloader 必须连续下载。如果您按照描述添加索引,它将能够并行下载。如果你不这样做,它会正常工作,但下载速度会变慢,因为它是串行运行的。

请注意,附加索引对延迟的影响很小,因为索引行是与实体写入并行写入的,这意味着写入只需要最慢的更新时间。

于 2010-11-18T23:11:12.977 回答
2

我通过将此代码添加到 index.yaml 解决了这个问题

kind: books
- properties:
  name: __key__
    - direction: desc
kind: books
- properties:
  name: another_indexes_here
于 2011-05-26T07:08:24.490 回答
0

如果您使用 JAVA 和 datastore-indexes.xml 文件。

将此(假设种类的名称是“书籍”)添加到 datastore-indexes.xml 文件中:

<datastore-index kind="Books" ancestor="false" source="auto"> 
    <property name="__key__" direction="desc"/> 
</datastore-index>

然后重新部署您的应用程序。确保检查数据存储索引选项卡以查看是否__key__正在服务。然后,您可以再次尝试下载。

于 2011-06-11T13:18:58.423 回答