如何在使用Java Bigquery API执行更新操作时检索更新的行数
我们正在使用BigQueryAPI 我正在尝试使用以下代码段执行更新操作:如何在使用Java Bigquery API执行更新操作时检索更新的行数,java,google-bigquery,Java,Google Bigquery,我们正在使用BigQueryAPI 我正在尝试使用以下代码段执行更新操作: String dmlQuery = String.format("update dataset.Student set Stud_Name = \"Shruti11\", Stud_Class=\"II\" where Stud_Id = 300", datasetName, tableName); QueryJobConfiguration dmlQueryConfig =
String dmlQuery = String.format("update dataset.Student set Stud_Name = \"Shruti11\", Stud_Class=\"II\" where Stud_Id = 300", datasetName, tableName);
QueryJobConfiguration dmlQueryConfig =
QueryJobConfiguration.newBuilder(dmlQuery).build();
// Execute the query.
TableResult result = bigquery.query(dmlQueryConfig);
System.out.println("Total rows affected :" + result.getTotalRows());
System.out.println("Table updated successfully using DML");
在上面的代码中,result.getTotalRows()
在更新时不返回任何值。它返回select操作中的行数
我正在寻找一个API,它可以告诉我Bigquery表中更新的行数
在使用BigQueryV2 API时,我能够跟踪使用queryResponse.getNumDmlAffectedRows()更新的行数
你能告诉我这里类似的API吗?我们需要知道受影响行的数量
此外,如果出现任何错误,BigQueryV2 API将用于返回queryResponse.getErrors()
你也能帮忙吗
环境:
Java 1.8
谷歌云大查询
谢谢,我终于明白了。。工作原理。。下面是代码片段
public void query() throws InterruptedException {
String dmlQuery =
String.format(
"update exploreTest.Student set Stud_Name = \"Shruti11\", Stud_Class=\"II\" where Stud_Id = 300");
QueryJobConfiguration dmlQueryConfig = QueryJobConfiguration.newBuilder(dmlQuery).build();
// Execute the query.
Job job = bigQuery.create(JobInfo.of(dmlQueryConfig));
job = job.waitFor();
JobStatistics.QueryStatistics statistics = job.getStatistics();
TableResult result = job.getQueryResults();
long numDmlAffectedRows = statistics.getNumDmlAffectedRows();
System.out.println(numDmlAffectedRows);
}