【发布时间】:2019-02-10 19:56:24
【问题描述】:
我正在通过 Streaming 进行插入。在 UI 中,我可以看到以下行数:
有没有办法通过 API 获得?我现在做的时候:
from google.cloud import bigquery
client = bigquery.Client()
dataset = client.dataset("bqtesting")
table = client.get_table(dataset.table('table_streaming'))
table.num_rows
0
显然 0 不是我想要得到的数字。从 API 文档中可以看出:
numRows unsigned long [Output-only] 此表中数据的行数,不包括流缓冲区中的任何数据。
那么,我的问题是:我们如何获得表中的确切行数?目前我正在做:
count=[item[0] for item in client.query('SELECT COUNT(*) FROM `bqtesting.table_streaming`').result()][0]
但这需要大约 5 秒才能获得计数(我需要非常频繁地执行此查询以查看是否所有流式插入都已“完成”)。
【问题讨论】:
-
行计数元数据更新需要一些时间(根据我的经验最多 30 分钟)