BigQuery表如何与“分区”和“集群”字段一起使用?

时间:2019-04-10 06:33:20

标签: google-bigquery

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

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

如果我正确理解它,则分区类似于TIMESTAMP,群集字段类似于PK

因此,这意味着群集字段与如何将记录保存在磁盘上无关?

1 个答案:

答案 0 :(得分:2)

  

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

这是不正确的,分区不用于标识表中的行,而是使BigQuery可以将每个分区数据存储在不同的段中,因此当您按分区扫描表时,您仅扫描指定的分区,从而减少了扫描费用

  

集群字段就像索引

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

我喜欢his medium post中的@Felipe图像,该图像可以很好地显示数据的存储方式。

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

enter image description here