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

Ech*_*cho 2 google-bigquery

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

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

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

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

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

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

Pat*_*ice 5

如果col不是"不同的ID",那么这是正常的.

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

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