Bigquery:getNumRows()在tables.get之后返回null?

时间:2014-10-15 13:30:59

标签: google-bigquery

// Retrieve the specified table resource
public Table getTable(String tableId) {
    Tables tableRequest = sBIGQUERY.tables();
    Table table = null;
    try {
        table = tableRequest.get(mProjectId, mDataset, tableId).execute();
    } catch (IOException e) {
        logger.error(e);
    }
    return table;
}

之后,在我的主要功能中:

Table info = mBigquery.getTable(tableId);
logger.info(tableId + "#" + info.getCreationTime() + "#" + info.getLastModifiedTime()+"#"+info.getNumBytes()+"#"+info.getNumRows());

有时info.getNumBytes()和info.getNumRows()返回null但是info.getCreationTime()和info.getLastModifiedTime()都很好。这是为什么?

1 个答案:

答案 0 :(得分:1)

如果未提前知道行数,BigQuery将不会返回表中的行数。这种情况发生的主要方式是最近通过流操作(tabledata.insertall())写入的表。某些类型的表是链接到Google内部数据的表(这种情况很少见),也可能发生在表视图中,其中当基础表发生更改时,不会计算行数。