繁体   English   中英

检查BigQuery Java中是否存在表

[英]Checking if a table exists in BigQuery Java

我正在尝试编写一个函数来检查BigQuery中是否存在表。 以下代码始终返回true。 问题出在哪儿?

谢谢!

    private static boolean checkTableExist() {
    try {
        BigQueryOptions.Builder optionsBuilder = BigQueryOptions.newBuilder();
        BigQuery bigquery = optionsBuilder.build().getService();
        bigquery.getTable(options.getBigQueryDatasetId(), options.getBigQueryTableId());

    } catch (Exception e) {

        return false;
    }
    return true;

}

我认为您不应该依赖Java Exception来测试布尔条件。 我没看过getTable()方法很多,但是这是检查表是否存在的方法:

public boolean isExisting() {
    return getDataset().get(tableName) != null;
}

protected Dataset getDataset() {
    return bigQuery.getDataset(dataSetName);
}

尝试这个:

if (bigquery.getDataset(datasetName).get(tableName).exists()) {
  // table exists        
} else {
  // table does not exist in BQ dataset
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM