首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bigquery客户端间歇性地返回坏结果

Bigquery客户端间歇性地返回坏结果
EN

Stack Overflow用户
提问于 2015-01-27 12:03:06
回答 1查看 247关注 0票数 1

我正在使用大型查询java客户端执行一些长时间运行的测试。

我构造了一个大查询作业并像这样执行

代码语言:javascript
运行
复制
val queryRequest = new QueryRequest().setQuery(query)
val queryJob = client.jobs().query(ProjectId, queryRequest)
queryJob.execute()

我面临的问题是相同的查询,客户端在作业完成前返回,即结果中的行数为零。

我试着打印响应,结果显示

代码语言:javascript
运行
复制
{"jobComplete":false,"jobReference":{"jobId":"job_bTLRGrw5_xR26i9Li3a9EQvuA6c","projectId":"analytics-production"},"kind":"bigquery#queryResponse"}

从这一点我可以看出,这项工作还没有完成。为什么客户在工作完成前返回?

在构建客户机时,我使用HttpRequestInitializer,并在初始化方法中提供超时参数。

代码语言:javascript
运行
复制
override def initialize(request: HttpRequest): Unit = {
  request.setConnectTimeout(...)
  request.setReadTimeout(...)
}

尝试给出高值的超时值,比如240秒etc..but,没有运气。行为还是一样的。它间歇性地失败了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-27 12:09:59

确保在Bigquery请求体上设置超时,而不是在HTTP对象上设置超时。

代码语言:javascript
运行
复制
val queryRequest = new QueryRequest().setQuery(query).setTimeoutMs(10000) //10 seconds

param是timeoutMs。这里记录了这一点:https://cloud.google.com/bigquery/docs/reference/v2/jobs/query

还请阅读有关此字段的文档:在请求超时并返回之前,需要等待多久才能完成查询(以毫秒为单位)。请注意,这只是请求的超时,而不是查询。如果查询运行的时间比超时值长,则调用返回时没有任何结果,并且“jobComplete”标志设置为false。可以调用GetQueryResults()来等待查询完成和读取结果。默认值为10000毫秒(10秒)。

这里有更多关于同步查询的信息

https://cloud.google.com/bigquery/querying-data#syncqueries

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28170079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档