BigQuery覆盖作业期间的流式插入

时间:2016-07-12 20:26:53

标签: google-bigquery

我有一个BigQuery表,我想使用writeDisposition WRITE_TRUNCATE的作业用其子行覆盖表。我这样做是因为我试图模仿DELETE FROM … WHERE …操作。

假设作业正在运行,我同时尝试将行流式传输到表中。是否可以在作业运行时插入行,因此在作业完成时会被覆盖?或者是否有一个锁定机制,可以防止在作业完成之前插入行?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您需要停止流式传输作业,直到您进行操作。一旦你完成它就恢复。没有锁定。

此外,在停止流媒体插入后,您应该允许一些冷却期,因为它们是在后台处理的,您需要让系统完成。

答案 1 :(得分:1)

由于流式系统中的表元数据缓存层,它目前需要大约10分钟才能意识到表已被截断。在这~10分钟内,所有流数据都将被丢弃(因为它们被视为截断数据的一部分)。

正如Pentium10建议的那样,如果您正在执行WRITE_TRUNCATE,建议暂停流请求,并在截断完成后10分钟恢复它。