【发布时间】:2017-09-10 15:55:32
【问题描述】:
上下文
- 我们的容器集群位于@us-east1-c
- 我们正在使用以下 Java 库:google-cloud-bigquery、0.9.2-beta
- 我们的数据集大约有 26M 行,代表 ~10G
- 我们所有的查询都返回少于 100 行,因为我们总是在特定列上进行分组
问题
我们分析了 BigQuery 中最近执行的 100 个查询,这些查询都是在大约 2-3 秒内执行的(我们通过调用 bq --format=prettyjson show -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);
谢谢
【问题讨论】:
标签: java google-bigquery google-cloud-platform