2016-07-21 59 views
1

当使用Big Query streaming api并在每行上设置insertId时,我们可以通过执行后续插入操作来更新(覆盖)行,具有相同的insertIdBig Query Streaming API使用insertId覆盖行

此行为不是在documentation提到的那样,只规定:

BigQuery使用的insertId属性去复制一个尽力而为的基础上您的数据。

大查询是否总会覆盖具有相同insertId的行?

这可能会被用来更新数据吗?

回答

1

文档:这就是文档所说的(或至少暗示)“重复数据删除”:它假定使用相同的insertId发送的数据是相同的,因此只会插入一个副本。但是请注意,这是尽力而为的,不能保证。

覆盖:否,并且由于许多因素:它只是尽力而为,您无法控制哪些数据将保留(较旧或较新),并且仅适用于流缓冲区中的数据。数据提交后,重复数据删除机制不再生效。

+0

不知道为什么他们低估了你,但有一个upvote - 这是正确的答案。 –

+0

谢谢@FelipeHoffa! – iustin

+0

@FelipeHoffa和iustin这是重新说明文档并做出更多假设,没有任何支持。 至于覆盖这不是我们发现的行为,我们可以在单独的请求中多次覆盖同一行。 流缓冲区有多长?到目前为止,我们已经看到覆盖成功发生15分钟以上。 –