我的应用程序:
在我的本地PC上一切正常。但是,在AppEngine Flexi环境(Python3并使用CLinet库)上运行时,我在 Step3 获取查询结果时遇到问题。
我尝试了3种方法,从日志中可以看到应用程序被卡住并返回502 BAD网关的这些步骤:
ver1:
df = job.to_dataframe() //STUCK here
ver2:
result = job.result() // SUCCESS
rows = list(result) //STUCK here
ver3:
`schema = [结果中的r的r.name] //成功
`print(“ schema fetched:”,schema)//成功
`pages = [result.pages页面中的页面] //此处粘贴
`print(“已获取页面:”,len(pages))
Stackdriver提供以下日志:
[错误] 32#32:* 7316上游过早关闭连接,同时从上游读取响应头,客户端:216.XX.YY.ZZ,服务器:,请求:“ GET / ml_models / dev_poll_results / HTTP / 1.1”,上游:“ http://172.17.0.1:8080/ml_models/dev_poll_results/”,主持人:“ serato-big-query.appspot.com”
更新
从Stackdriver Logging中,我看到BQ确实获得了datasets:tables:data请求。奇怪的是,protoPayload.serviceData.tableDataListRequest
字段为空。通常,它用maxResults
startRow
字段填充。让人感到开会,在BQ和AppEngine应用之间交流大型结果是否会出现问题