Bigquery:检查流中的重复

时间:2014-09-10 17:06:37

标签: google-bigquery

我们从客户端安装的设备生成了一些数据。存在重复数据并且它是设计的,这意味着我们无法在数据生成阶段消除重复数据。我们现在正在研究在流入Bigquery时避免重复的可能性(而不是通过执行表复制和稍后删除来清理数据)。也就是说,对于每个准备好流式传输的记录,我们先检查它是否已经在Bigquery中,如果没有,那么我们继续将其流入,如果它确实存在,那么我们将不会将其流入。

但这是关注点:(引自[这里]:https://developers.google.com/bigquery/streaming-data-into-bigquery

  

数据可用性

     

第一次发生流式插入时,流式数据无法在最多两分钟的预热期间访问。在预热期之后,在预热期间和之后添加的所有流数据都可以立即查询。经过几个小时的不活动后,在下一次插入过程中将再次进行预热。

     

数据最多可能需要90分钟才能用于复制和导出操作。

我们的数据将进入不同的bigquery表(表名是从数据的date_time动态生成的)。 “第一次插入流”是什么意思?是每张桌子吗?

上述文件是否意味着我们不能依赖查询结果来检查流媒体过程中的重复?

1 个答案:

答案 0 :(得分:3)

如果您提供插入ID,则bigquery会自动为您执行重复数据删除,只要重复项位于重复数据删除窗口中即可。官方文档没有提到重复数据删除窗口有多长,但通常是5分钟到90分钟(如果你把数据写得非常快,那么它将接近5比90,但如果数据流入,它将在重复数据删除缓冲区中持续更长时间。)。

关于"第一次出现流式插入",这是每个表。如果您有一个新表并开始流式传输,则可能需要几分钟才能使该数据可用于查询。但是,一旦您开始流式传输,新数据将立即可用。