Google云端存储的网址提取率限制

时间:2015-07-29 18:05:46

标签: python google-app-engine google-cloud-storage

情况

我们使用云存储来存储大量的弹性搜索结果(来自聚合)。

要并行处理这些大型聚合,我们将它们存储为多行JSON转储。

因此,要执行并行处理,许多实例会立即打开此文件,因此会达到URLFetch速率限制,因为此记录的限制:

  

并且调用会计入您的网址获取配额,因为该库使用网址提取服务与云存储进行交互。

以下是产生的异常:

The pipeline UI gives this error

以下是打开文件的代码:

import cloudstorage as gcs

def open_file(path, mode, **kwargs):
    f = gcs.open(path, mode=mode, **kwargs)
    if not f:
        raise Exception("File could not be opened: %s" % path)

    return f

问题

我们需要一种与云存储通信的方法,绕过URLFetch配额和速率限制,否则我们就无法有效地执行并行处理。

是否有一种从App Engine读取未通过URLFetch路由的GCS文件的方法,就像数据存储API不会产生网址获取速率限制一样?

1 个答案:

答案 0 :(得分:1)

不确定这种方法是否与您的应用程序兼容/可用,但是这里......

在并行聚合处理期间,您可以使用GAE数据存储来存储中间聚合结果(更宽松的配额),而只是(如果需要,汇编)将最终结果发送到GCS,而不是将结果直接汇总到GCS文件在单个(或几个)GCS请求中完成聚合。