google-cloud-platform - 对聚合列进行分区 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() 运算符也不被接受。你知道尽管有这个限制,我怎样才能达到我想要的结果吗?
解决方案
重新审视你的问题给了我一个简单的答案:timestamp
直接使用!
实际上,您将只在物化视图中存储min(timestamp)
. 因此,数据的分区/分片将通过时间戳、最小值或最大值来完成,这不是目的!
推荐阅读
- c# - 如何使用 HttpClientFactory 在 .NET 5 中记录 HttpClient 的连接池信息?
- javascript - Select2 搜索不会返回结果
- android - @react-native-firebase\dynamic-links 找不到符号
- python - 我们如何在路径中添加 sqlformat.exe 并在路径中添加 django-admin.exe?
- reactjs - JSS/CSS 类名在 Next.js 中发生冲突
- google-chrome - 如何在 puppeteer 中使用 chrome dev tools api
- elasticsearch - 为什么 ES 显示错误日志 `readiness probe failed`?
- google-cast - 使用 Presentation API / Google Cast 呈现时钟网站
- android - 如何在汉堡按钮下添加菜单?
- javascript - 如何检查变量中包含的随机生成的值是否以相同的方式列出 10,000 次