2

在我们的 GAE 应用程序中,用户通常需要将特定类型的实体下载为 CSV。经常添加/更新新实体,这使得提前或以固定间隔将所有实体写入 blob 是不可行的。

对于以 500 个为一组获取的大约 50000 个实体(每个实体 < 2 KB),写入 CSV 文件 blob 需要超过 2 分钟,成本接近 1 美元。此外,用户必须等待很长时间才能接收通常只有几 (< 5) MB 的文件。

我有两个问题:

A) 是否可以通过为导出配置 map-reduce 管道来减少写入 blob 的时间?

B) 有没有办法降低从数据存储中获取大量实体并写入 blob 的成本?

编辑:刚刚了解到 mapreduce 只能在一种类型的所有实体上运行,而不是过滤的子集。所以mapreduce可能会大大增加成本。还有其他建议吗?

4

1 回答 1

1
  1. 您应该使用ppEngine 管道,它可以提高速度,因为它将作业分布在多个实例中。
  2. 您可以通过使用指定要获取的属性的投影查询来降低获取实体的成本。
  3. 至于下载速度,你是用 Blobstore 和 BlobstoreDownloadHandler 吗?
于 2012-07-02T14:43:29.757 回答