在聚合列上对 BigQuery 物化视图进行分区

问题描述

我有一个包含这些列的日志表:

时间戳 sessionID elementID 值

logs 表在 timestamp 列上分区。

我用它创建了一个物化视图:

create materialized view X
partition by date(new_timestamp)
as
select min(timestamp) as new_timestamp,sessionID,elementID,sum(value) as sumvalue 
from logs 
group by sessionID,elementID

我收到错误“物化视图的分区列必须与基表的分区列或伪列匹配,或者是它的 TIMESTAMP_Trunc。”

BigQuery doc 说对物化视图进行分区的唯一方法是使用与主表完全相同的分区列,甚至不接受列上的 min() 运算符。尽管有这个限制,你知道我如何才能达到我想要的结果吗?

解决方法

重新审视您的问题给了我一个简单的答案:直接使用 timestamp

实际上,您将仅在物化视图中存储 min(timestamp)。因此,数据的分区/分片将通过时间戳、最小值或最大值来完成,这不是目的!