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 秒などの高い値を指定しようとしましたが、うまくいきませんでした。動作は同じです。断続的に失敗します。