首页 > 解决方案 > 对聚合列进行分区 BigQuery 物化视图

问题描述

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

时间戳 sessionID elementID 值

日志表在时间戳列上进行分区。

我从中创建了一个物化视图:

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 文档说对物化视图进行分区的唯一方法是使用与主表完全相同的分区列,即使列上的 min() 运算符也不被接受。你知道尽管有这个限制,我怎样才能达到我想要的结果吗?

标签: google-cloud-platformgoogle-bigquerypartitionmaterialized-views

解决方案


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

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


推荐阅读