首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigQuery -同样的查询,REGEXP_CONTAINS处理的数据比IN操作符少3X?内部细节

BigQuery -同样的查询,REGEXP_CONTAINS处理的数据比IN操作符少3X?内部细节
EN

Stack Overflow用户
提问于 2020-09-12 19:58:31
回答 1查看 208关注 0票数 0

我试图提取SKU匹配两个值之一的数据“GGOEGGCX056299 056299\GGOEGAAX0104 0104”

当我运行REGEXP_CONTAINS版本时,它使用来自查询配额17.6MB和使用IN操作符的51.5MB的3X更少的空间。我的Regex版本也被设置为通过管道符号搜索特定的SKU,所以我想知道是什么原因导致REGEX版本在处理查询时使用的空间比同时搜索两个特定SKU的in操作符更少?

对于理解不同之处有什么帮助,以及如何使我的查询更有效?谢谢。

代码语言:javascript
复制
SELECT
date, 
prod.productSKU AS SKU,
SUM(prod.productQuantity) AS qty_purchased
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`, 
UNNEST (hits) hit, UNNEST(product) prod
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170131'
AND
REGEXP_CONTAINS (prod.productSKU,"GGOEGGCX056299|GGOEGAAX0104")
GROUP BY date, SKU
ORDER BY date ASC

当我运行IN版本来获取相同的数据时,它说使用了51.5MB

代码语言:javascript
复制
SELECT
date, 
prod.productSKU AS SKU,
SUM(prod.productQuantity) AS qty_purchased
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*`, 
UNNEST (hits) hit, UNNEST(product) prod
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170331' 
AND
prod.productSKU IN ("GGOEGGCX056299", "GGOEGAAX0104")
GROUP BY date, SKU
ORDER BY date ASC

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-12 20:10:27

从我的查询配额17.6 MB到51.5MB减少了3X空间

以下是原因!

在第一个查询中

代码语言:javascript
复制
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170131'

在第二位

代码语言:javascript
复制
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170331' 

显然,第二次查询覆盖了更多的表,因此字节不同--一个月比三个月--因此~3x差。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63864401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档