1

big-query Java クライアントを使用して、実行時間の長いクワイアを実行しています。

大きなクエリジョブを構築し、このように実行します

val queryRequest = new QueryRequest().setQuery(query)
val queryJob = client.jobs().query(ProjectId, queryRequest)
queryJob.execute()

私が直面している問題は、同じクエリの場合です。ジョブが完了する前にクライアントが返されます。つまり、結果の行数がゼロになります。

応答を印刷してみましたが、表示されます

{"jobComplete":false,"jobReference":{"jobId":"job_bTLRGrw5_xR26i9Li3a9EQvuA6c","projectId":"analytics-production"},"kind":"bigquery#queryResponse"}

そのことから、仕事が完了していないことがわかります。仕事が完了する前にクライアントが戻ってきたのはなぜですか?

クライアントを構築する際に、HttpRequestInitializerおよび初期化メソッドでタイムアウト パラメータを指定します。

override def initialize(request: HttpRequest): Unit = {
  request.setConnectTimeout(...)
  request.setReadTimeout(...)
}

タイムアウトに 240 秒などの高い値を指定しようとしましたが、うまくいきませんでした。動作は同じです。断続的に失敗します。

4

1 に答える 1