google-bigquery - 在 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.
这种解决方案是否可以以事务方式进行(无需一步删除视图并创建表)?如果是这样 - 如何?
解决方案
推荐阅读
- php - 显示数组中的条件
- c# - 在 .Net Core 2.2 中发送 Html
- elasticsearch - 使用骆驼将数据编入弹性搜索但在 Kibana 或 localhost:9200 中看不到
- scheme - library.readscheme.org 是否永久关闭?它搬到了哪里?
- html - CSS Grid - 左侧菜单关闭时网格项未填满空间
- wordpress - 邮递员中的 REST GET 响应中缺少字段吗?
- mysql - 如何将此原始查询转换为续集 ORM
- redis - 如何获得 SMEMBERS 结果的子集?或者我应该对分数和成员使用具有相同值的 SortedSet 吗?
- phpstorm - 如果运行 phpcs,PhpStorm 会抛出错误
- javascript - .next('tag') 在纯 JavaScript 中?