2017-04-14 54 views
3

语境查询执行时间和Java查询调用之间的三角洲完成

  • 我们的容器集群位于@美国east1-C
  • 我们用下面的Java库:谷歌云计算的BigQuery ,0.9.2-β
  • 我们的数据有大约26M行和代表〜10G
  • 我们所有的查询返回少于100行,因为我们总是在一个特定的列分组

问题

我们分析BigQuery中执行的最后100个查询,这些都是在大约2-3秒(我们通过调用BQ --format = prettyjson显示-j JOBID分析了该执行,结束时间 - 创建时间)。

尽管在我们的Java日志中,大多数拨打bigquery.query的呼叫阻塞5-6秒(并且10秒不是不寻常的)。什么能解释在BigQuery集群中完成的查询和Java中可用的结果之间的系统差距?我知道5-6秒不是天文数字,但我很好奇当使用Java BigQuery云库时这是否是正常行为。

我没有深入到使用Wireshark分析出站呼叫的地步。我们所有的测试都在我们的集装箱集群(Kubernetes)中执行。

代码

QueryRequest request = QueryRequest.newBuilder(sql) 
       .setMaxWaitTime(30000L) 
       .setUseLegacySql(false) 
       .setUseQueryCache(false) 
       .build(); 

QueryResponse response = bigquery.query(request); 

谢谢

回答