情况
我们使用云存储存储大型elasticsearch结果(来自聚合)。
为了并行处理这些大型聚合,我们将它们存储为多行JSON转储。
因此,要执行并行处理,许多实例将同时打开该文件,因此,由于该文档的限制,达到了URLFetch速率限制:
调用在URL获取配额中计算,因为库使用URL提取服务与Cloud交互。
,这是结果异常:

,这是打开文件的代码:
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配额和速率限制的与云存储通信的方法,否则就不可能有效地执行并行处理。
是否有一种从API读取GCS文件的方法,它不通过URLFetch进行路由,就像数据存储API不产生url获取速率限制一样?
发布于 2015-07-31 15:28:13
不确定这种方法是否与您的应用程序兼容/可用,但下面是.
与其在并行聚合处理期间直接将结果导入GCS文件,不如使用GAE数据存储存储中间聚合结果(更宽松的配额),并且只在聚合完成后(如果需要的话进行组装)将最终结果发送到GCS,在单个(或仅几个) GCS请求中。
https://stackoverflow.com/questions/31707961
复制相似问题