我有一个第二代 HTTP Python 云函数,可以查询大型 Bigquery 表并返回大量数据,如下所示:
from google.cloud import bigquery
import functions_framework
client = bigquery.Client()
@functions_framework.http
def qry_bq(request):
request_json = request.get_json(silent=True)
df = client.query(qry).to_dataframe()
return df.to_json()
有时,当查询返回的结果较大时,响应结果会出现 500 错误,错误信息为:
Response size was too large. Please consider reducing response size.
我看到here HTTP 响应大小限制为 32GB。对于我的用例,有什么建议可以避免这个问题吗?
通过 API 处理大型数据集的典型解决方案是使用该 API 实现分页。 API 的设计应允许客户端指定要获取哪一页数据,或指定一个游标来指示哪一项数据应位于下一批结果的开头。