2015-11-03 67 views
1

嗨,那里。如何使用BigQuery插槽

最近,我想通过使用“group by”在一些表(表的名称适合xxx_mst_yyyymmdd)在bigquery Web UI中运行查询。行将超过1000万。不幸的是,查询失败,此错误:

查询失败 错误:查询执行过程中的资源超出。

我做了一些改进,与我的查询语言,该错误可能不是这个时间。但我的数据的increasement发生,错误也会出现在future.So我检查的BigQuery的最新版本,也许有两种方法可以解决这个问题:

1. 2016/01/01之后,Bigquery将更改查询定价层以满足“高计算层”,以便“resourcesExceeded error”不会再发生。

2.BigQuery插槽。 我检查了谷歌的一些文件,并没有发现关于如何使用BigQuery的Slots.Is有大量查询插槽的任何样本或用例的方法吗?或者我有与BigQuery团队联系,以开启该功能?

希望有人能帮我回答这个问题,非常感谢!

回答

1

为了让您的项目符合使用插槽的条件,您需要联系支持人员。

2

几个要点:

  1. 我很惊讶,一组由10M的基数失败,资源超标。你能否提供失败查询的工作ID,以便我们可以进行调查?您提到您担心随着您的数据量增加而更频繁地遇到这些错误;您应该能够将数据量增加几个数量级而不会看到这个数据;很可能您遇到了一个错误或者您的查询或数据有些奇怪。

  2. “高计算层”不一定会摆脱resourcesExceeded。在大多数情况下,resourcesExceeded意味着BigQuery遇到内存限制;高计算层只能解决CPU使用率问题。 (并且注意,它们还没有被启用)。

  3. BigQuery插槽使您能够更快速地处理数据并获得更可靠的性能。大多数情况下,他们也不会帮助防止resourcesExceeded错误。

  4. 目前(如11月5日),你可以可能需要提供具有GROUP BY的每个关键字的错误。最近发生的变化应使BigQuery的自动选择执行策略,所以每个不应该是必要的,但也有一对夫妇的情况下,不选择正确的一个。如有疑问,请在JOIN和GROUP BY操作中添加EACH。

+0

Jordan Tigani,感谢您的建议,因为您询问“工作ID是什么”,因为该项目中存在一些商业秘密,所以我在Google SupportCenter中提供了SQL和工作ID,如果有的话消息,我会更新这张票。 – xialin

+0

作为我的SQL的简要视图:为Ct,A,B,C FROM (SELECT甲 SELECT COUNT(*),B,C FROM [数据集。一个] ) GROUP BY A,B,C HAVING克拉> 1 或者是这样的: SELECT COUNT(*)AS CT,A,B,C FROM [dataset.a] GROUP BY A,B ,C HAVING> 1 数据集的行数约为11,000,000。 – xialin

+0

更新: SELECT COUNT()AS ct,A,B,C FROM(SELECT A,B,C FROM [dataset.a])GROUP BY A,B,C具有ct> 1→失败。 SELECT COUNT()AS ct,A,B,C FROM(SELECT A,B,C FROM [dataset.a])GROUP EACH BY A,B,C H> ct> 1→success。 这似乎是每个也是需要的。 – xialin

相关问题