我有一个写入 BigQuery 表的数据流作业。每个数据流作业都会创建一个新表。
我意识到对 BigQuery 表的写入操作是异步的,即在数据流作业完成后,对 BigQuery 表的写入操作可能会持续几分钟。
现在我希望能够查询新创建的表的状态并获取其状态,例如:“正在写入”和“写入已完成”。我们可以通过 GCP Java 客户端库来做到这一点吗?
如果没有,我有一个替代的想法。我知道在数据流执行期间将写入表的行数。我可以将表中的行数与该数字进行比较,看看它们是否匹配。如果是,则写操作完成。但是,我不知道可以将数据流执行期间生成的动态生成的行计数放在哪里。
请帮忙。
也许您可以使用 BigQuery JOBS 视图? 您必须存储查询的 job_id,然后在 JOBS 视图中搜索它,如下所示:
SELECT
*
FROM
`region-us`.INFORMATION_SCHEMA.JOBS
WHERE job_id = "JOB_ID"
之后,您可以使用
job_stages.status
STRUCT 获得有关查询状态的信息。查询完成后,会标记为COMPLETED
。
您还可以在 Cloud Logging 中访问此类信息