2017-04-14 51 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); 

謝謝

回答