首页 > 解决方案 > BigQuery 中的表视图是否受益于分区/集群优化?

问题描述

我们在 BigQuery 中有一些表每晚都会更新,然后我们有一个重复数据删除过程来缓慢地进行垃圾收集。

为了确保我们的 UI 始终显示最新的,我们为每个表设置了一个视图设置,该设置只需对最新的时间戳 record_id 组合执行 SELECT WHERE

我们即将设置分区和集群以优化查询范围/速度,但我无法在 Google 文档中找到明确的答案,说明该表的视图是否仍将具有分区查询,或者最终会查询所有数据。

或者,当我们创建视图时,我们可以在构建视图的查询中包含分区和集群吗?

标签: google-cloud-platformgoogle-bigquerypartitioning

解决方案


如果您正在谈论逻辑视图,那么是的,如果它引用的基表是集群/分区的,那么如果它们是从 WHERE 子句引用的,它将使用这些功能。逻辑视图没有自己的托管存储,它实际上只是一个 SQL 子查询,只要引用该视图就会运行。

如果您正在谈论物化视图,则不会继承基表的分区/集群,但可以在物化视图上定义。有关详细信息,请参阅 DDL 语法:https ://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_materialized_view_statement


推荐阅读