首页 > 解决方案 > 在 BigQuery 中将视图转换为表

问题描述

鉴于:

Daily(t)- 包含当天事件的表格t(仅在白天可变t

Agg(t)- 包含截至当天的所有历史事件的汇总表t(在一天之后不可变t

在 dayt中, whileDaily(t)仍然是可变的,我将视图定义V_Agg(t)如下:

V_Agg(t)=q(Agg(t-1), Daily(t))- (q作为聚合查询)

由于Daily(t)一天后不会改变t,所以当一天t结束时,我想“物化” V_Agg(t),把它变成Agg(t)forV_Agg(t+1)来工作。

在实施这个过程时,我认为拥有Agg(t)并且Daily(t)实际上就足够了。我可以在白天拥有Agg(t)一个视图t,并且在白天的某个时间点t(无论何时),我可以将现在不可变的视图替换为Agg(t-1)一个名为相同 ( Agg(t-1)) 的表。

这将使我无需维护V_Agg(t),并且通常会更稳定(我可以Agg(t)独立于Agg(t-1)从视图变为表格的过程创建)。

但是,我找不到在同名视图上编写表的方法。尝试这样给出了... is not allowed for this operation because it is currently a VIEW.

这种解决方案是否可以以事务方式进行(无需一步删除视图并创建表)?如果是这样 - 如何?

标签: google-bigquery

解决方案


推荐阅读