Bigcheery APIのdryRun
フィールドのドキュメントによると、true
に設定すると、クエリは実行されず、代わりに検証され、基本的な統計が返されます:'dryRun'をtrueに設定したときにNPEを投げるBigQueryクライアントライブラリ
[オプション] trueに設定すると、BigQueryはジョブを実行しません。代わりに クエリが有効な場合、BigQueryは処理されるバイト数を などのジョブに関する統計情報を返します。クエリが無効な場合、エラー が返されます。デフォルト値はfalseです。
[...] JobConfiguration jobConfiguration = newBuilder(query) .setAllowLargeResults(true) .setUseLegacySql(false) .setDryRun(true) .setDestinationTable(TableId.of("<project>", "<dataset>", "<table>")) .setCreateDisposition(CREATE_IF_NEEDED) .setWriteDisposition(WRITE_TRUNCATE) .setPriority(INTERACTIVE) .build(); JobInfo jobInfo = JobInfo.of(jobConfiguration); Job job = bigQuery.create(jobInfo); [...]
Exception in thread "main" java.lang.NullPointerException at com.google.cloud.bigquery.JobConfiguration.fromPb(JobConfiguration.java:140) at com.google.cloud.bigquery.JobInfo$BuilderImpl.<init>(JobInfo.java:182) at com.google.cloud.bigquery.Job.fromPb(Job.java:324) at com.google.cloud.bigquery.BigQueryImpl.create(BigQueryImpl.java:229)
これはバグです
しかし、Java client lib for BigQueryを使用して、そしてtrue
にdryRun
を設定すると、NullPointerExceptionがスローされますJavaクライアントlib、または私はやっている/間違って使っている?
:false
に設定すると、正常に動作します。
注2:jobConfiguration
とjobInfo
両方それは、クライアントライブラリのバグだnull
'build()'の結果がnullである可能性はありますか?何らかの理由で 'JobConfiguration'の構築が失敗したのだろうかと思います。 –
@ElliottBrossard:更新された質問(「null」ではない) –