- 我们的容器集群位于@美国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);
谢谢