带有where子句的Google Bigquery表装饰器

时间:2015-03-20 21:50:09

标签: google-bigquery

它说表装饰器更具成本效益,所以我做了我的测试:

从[myDataSet.myTable@-86400000--30000]中选择计数(不同的ID)

它显示只会扫描15.6 GB的数据 有效:此查询在运行时将处理15.6 GB。

当我添加一个where子句时,它显示它将处理双倍数据大小:

从[myDataSet.myTable@-86400000--30000]中选择计数(不同的ID),其中col =' something' 有效:此查询在运行时将处理34.0 GB。***

为什么会有区别?我怎么能避免这种情况?

1 个答案:

答案 0 :(得分:5)

如果col不是“不同ID”,那么这是正常的。

大查询“已处理的大小”取决于它需要扫描的COLUMNS的数量。如果你在回归中将col放在distinctID的顶部,那么它将需要读取两者。有意义的是大小翻倍,不是吗?

尝试检查数据select distinctID, col from [myDataSet.myTable@-86400000--30000]的数量。我有一种感觉它会一样:)