我在BigQuery中有一个按天划分的表格。数据流作业使用流式API连续插入新记录,但只能插入到最新的分区(在极少数情况下为两个,当数据在几天之内略有混乱时)。
另一方面,我查询了很多表,汇总了历史月份,也没有涉及最近的日子,即流缓冲。
我想利用此类查询结果的缓存。不幸的是,即使从理论上讲,缓存到表的流不受流化的行的影响,流传输到表也会禁用缓存。
如何在历史分区上使用缓存,同时仍然能够流式传输到最新的分区?
如果开箱即用是不可能的,那么以下最佳设计是
如果是的话,如果仅查询“历史”数据,我将如何定义将使用缓存的视图?还是我需要拥有自己的查询重写工具?
也许您还有其他想法?
答案 0 :(得分:1)
您不能use caching and streaming contemporaneously。您已经有一个feature request asking for the same。
作为一种解决方法,如您所说,您需要两个不同的表并使用数据冗余。我同意您发布的方法:
检查here如何“管理分区表”。有一个基于bq cp
命令的用例列表,可以帮助您将“最近”表合并到“历史”表中。