首页 > 解决方案 > BigQuery 表如何与分区和集群字段一起使用?

问题描述

将列指定TIMESTAMP为分区时 - 将数据保存在磁盘上的分区允许每次访问。

现在,BigQuery 还允许定义多达 4 个列,这些列将用作集群字段。

如果我得到正确的分区就像PK和集群字段就像indexes.

那么这是否意味着集群字段与记录如何保存在磁盘上无关?

标签: google-bigquery

解决方案


如果我理解正确,分区就像 PK

这是不正确的,分区不用于标识表中的行,而是使 BigQuery 能够将每个分区数据存储在不同的段中,因此当您按分区扫描表时,您只扫描指定的分区,从而降低扫描成本

集群字段就像索引

这是正确的集群字段用作指向表中记录的指针,并且无论分区如何,都可以快速/最低成本地访问数据。这意味着使用集群字段,您可以以最低的成本查询表跨分区

我喜欢他的媒体帖子中的@Felipe 图片,它很好地可视化了数据的存储方式。

注意:分区发生在插入时,而集群作为 BigQuery 执行的后台作业发生

在此处输入图像描述


推荐阅读