与BigQuery文档相比,我们发现从流式数据分区表(标准SQL )中选择数据时, DOES 会缓存结果。
示例: 当我们使用以下内容对流式数据分区表执行确定性日期扫描时
where (_PARTITIONTIME > '2017-11-12' or _PARTITIONTIME is null)
...如果我们在该时间范围内触发相同的确切查询,BigQuery会将数据缓存5到20分钟。
在我对documentation的解释中,它声明它不应该缓存数据:
'当查询引用的任何表最近收到流式插入(流式缓冲区附加到表中)时,即使没有新行已到达'
重要说明:
我们的问题:
这里发生了什么/为什么BQ缓存会发生?
此数据保留在BQ缓存中的时间是随机的' (5-20分钟之间)。这是什么意思?
答案 0 :(得分:3)
感谢您澄清问题。我认为忽略了我们没有禁用带有流数据的分区表的缓存。否则查询可能会返回过时的结果。
我们在更改表时使缓存无效。流入表将导致表更改。我想这就是为什么缓存在5到20分钟之间失效的原因。