2017-09-13 77 views
3

我有一个问题围绕在Big Query中的WRITE_TRUNCATE行为。WRITE_TRUNCATE在Big Query中的行为

我有一个很大的查询表(T1),我周期性地用日志数据(每个日志行一行)追加到这个表中。我想要有一个数据流作业(D1)从该表中读取,删除任何重复行并执行其他数据清理操作,然后将其输出到另一个大查询表(T2),替换可能已经存在的任何数据已出现在此表中。我相信我可以通过在数据流作业中的BigQuery.IO接收器中使用WRITE_TRUNCATE write disposition来实现此目的。

问题是,如果我有另一个数据流任务(D2)从表T2读书而工作D1是在写截断的中间这个表中,哪些数据不D2看到,即它是否以截断前或截断结束后的状态查看表。或者它可以在截断期间的任何步骤中看到表格(例如通过附加新数据的一部分)?

上面链接的javadoc表明截断可能不是是原子,而REST documentation for Big Query表示它是。

回答

3

的REST API实际上是真理,这里的来源,即改变原子大量查询工作的成功完成。