BigQuery 表如何与分区和集群字段一起使用?
Posted
技术标签:
【中文标题】BigQuery 表如何与分区和集群字段一起使用?【英文标题】:How does BigQuery table works with Partition and Cluster field? 【发布时间】:2019-04-10 06:33:19 【问题描述】:当指定TIMESTAMP
列作为分区时 - 数据保存在磁盘上的分区允许每次访问。
现在,BigQuery 还允许定义多达 4 个列作为集群字段。
如果我理解正确,分区就像PK
,集群字段就像indexes
。
所以这意味着集群字段与记录如何保存在磁盘上无关?
【问题讨论】:
查看这个answer,它为这个主题提供了一个很好的答案。还有this@Felipe 的中等帖子非常好 @TamirKlein 它没有。它讨论了无论分区字段如何的聚类字段。 【参考方案1】:如果我得到正确的分区就像PK
这是不正确的,分区不用于标识表中的行,而是启用 BigQuery 将每个分区数据存储在不同的段中,因此当您按分区扫描表时,您只扫描指定的分区,从而减少扫描费用
簇字段就像索引
这是正确的集群字段用作指向表中记录的指针,并且无论分区如何,都可以快速/最低成本地访问数据。这意味着使用集群字段可以以最低的成本查询表跨分区
我喜欢来自his medium post 的@Felipe 图片,它可以很好地可视化数据的存储方式。
注意:分区发生在插入时,而集群作为 BigQuery 执行的后台作业发生
【讨论】:
以上是关于BigQuery 表如何与分区和集群字段一起使用?的主要内容,如果未能解决你的问题,请参考以下文章