BigQuery 中的表视图是否受益于 partitioning/clustering 优化?

Do views of tables in BigQuery benefit from partitioning/clustering optimization?

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

为了确保我们的 UI 始终显示最新的,我们为每个 table 设置了一个视图设置,它只是在最新的时间戳 record_id 上执行 SELECT WHERE ]组合

我们即将设置分区和集群以优化查询 scope/speed 我在 Google 文档中找不到关于 table 的视图是否会出现的明确答案仍然有分区查询,否则它最终会查询所有数据。

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

如果您谈论的是逻辑视图,那么是的,如果它引用的基础 table 是 clustered/partitioned,它将使用那些从 WHERE 子句引用的功能。逻辑视图没有自己的托管存储,它只是一个有效的 SQL 子查询,每当引用视图时它都会获得 运行。

如果您谈论的是实体化视图,则基础 table 的 partitioning/clustering 不会被继承,但可以在实体化视图上定义。有关详细信息,请参阅 DDL 语法:https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#create_materialized_view_statement