使用限制时响应太大而无法返回

时间:2016-04-07 08:52:34

标签: google-bigquery gcloud

尝试按UI BigQuery export table to csv file导出结果后,现在我尝试使用glcoud命令行来执行此操作。

这里有一个片段:

def main(query, file_, max_=1000):
    page = 0
    start = 0
    while True:
        with open(file_, "ab") as fh:
            try:
                query = ("bq query --start_row=%d --max_rows_per_request=%d "
                         "'%s'" % (start, max_, query))
                query_result = subprocess.check_output(query, shell=True)
                fh.write(query_result)
            except subprocess.CalledProcessError:
                break
            page += 1
            start = page * max_ + 1

但是失败了,运行第一个查询给了我:

enter image description here

使用--allow_large_results在查询操作中给出" BigQuery错误:allow_large_results需要destination_table。" 错误。

所以我的问题很简单:如何分页到大表中导出结果?

1 个答案:

答案 0 :(得分:1)

  

如何分页到大表中导出结果?

看起来您的结果大于128MB,这是您必须使用目标表将结果写入的限制。完成此操作后,您可以将结果导出到GCS,如BigQuery export table to csv file

中所述