查询按分区字段分区的 BigQuery 表

Posted

技术标签:

【中文标题】查询按分区字段分区的 BigQuery 表【英文标题】:Query BigQuery table partitioned by Partitioning Field 【发布时间】:2018-03-15 09:54:03 【问题描述】:

我们可以创建一个由Partitioning Field 分区的表。 Doc Reference here.

我创建了一个包含 2 个字段的表 visitors

访客:STRING part: TIMESTAMP

当我查询表格时:

SELECT * FROM mydataset.visitors WHERE part >= "2018-03-14 09:00:00" AND part < "2018-03-15 18:00:00"

问题:

BigQuery 引擎是否足够智能,仅扫描 2018-03-14 和 2018-03-15 两个分区,然后找到满足小时范围的所有行? BigQUery 是否对所有分区进行全面扫描?

谢谢

【问题讨论】:

分区表的重点在于 BigQuery 只需扫描 where 子句中引用的分区。您可以通过删除 where 子句轻松看到这一点,并且您会看到要处理的数据量增加(在 UI 中)。要回答你的问题,是的,它足够聪明 ;-) 谢谢,@GrahamPolley!这回答了我的问题:) @GrahamPolley 我可以请你发表评论作为答案吗? 好的,我会这样做的。看起来更像是评论;-) 【参考方案1】:

分区表的重点在于 BigQuery 只需扫描 where 子句中引用的分区。您可以通过删除 where 子句轻松看到这一点,并且您会看到要处理的数据量增加(在 UI 中)。要回答你的问题,是的,它足够聪明;-)

【讨论】:

以上是关于查询按分区字段分区的 BigQuery 表的主要内容,如果未能解决你的问题,请参考以下文章

按日期时间 Google BigQuery 分区

尚不支持 BigQuery、非分区表上的通配符表和基于字段的分区表

向分区 BigQuery 表添加数据和查询

bigquery - 自定义字段上的分区 - 仅适用于标准 SQL?

按日期分区?

当 Firebase Analytics 分区表中出现表时,在 Bigquery 中安排查询