我正在使用 big-query java 客户端执行一些长时间运行的查询。
我构建了一个大查询作业并像这样执行
val queryRequest = new QueryRequest().setQuery(query)
val queryJob = client.jobs().query(ProjectId, queryRequest)
queryJob.execute()
我面临的问题是对于同一个查询,客户端在作业完成之前返回,即结果中的行数为零。
我尝试打印响应并显示
{"jobComplete":false,"jobReference":{"jobId":"job_bTLRGrw5_xR26i9Li3a9EQvuA6c","projectId":"analytics-production"},"kind":"bigquery#queryResponse"}
从那我可以看出这项工作还没有完成。为什么客户在工作完成之前返回?
在构建客户端时,我使用HttpRequestInitializer
and 在初始化方法中提供超时参数。
override def initialize(request: HttpRequest): Unit = {
request.setConnectTimeout(...)
request.setReadTimeout(...)
}
尝试为超时设置高值,例如 240 秒等。但没有运气。行为仍然相同。它间歇性地失败。