GROUP BY中解决的资源已超出,但我需要降低成本

时间:2014-12-18 14:31:39

标签: google-bigquery

在对具有数十亿行的表执行GROUP BY EACH时,我解决了资源超出错误。 然而,解决方案成本非常高,我想降低这些成本。

错误几乎不是由于分组键偏差造成的,而是由于分组键的基数过高(是否存在固定的最大值?)。

我的解决方案:

SELECT key FROM
(SELECT key FROM [table] WHERE ABS(HASH(key)) % 4 = 0 GROUP EACH BY key),
(SELECT key FROM [table] WHERE ABS(HASH(key)) % 4 = 1 GROUP EACH BY key),
(SELECT key FROM [table] WHERE ABS(HASH(key)) % 4 = 2 GROUP EACH BY key),
(SELECT key FROM [table] WHERE ABS(HASH(key)) % 4 = 3 GROUP EACH BY key)

这有效,但它多次读取我的多TB表,我相信这有点贵。 有没有降低成本的解决方案?

谢谢,鲁本

1 个答案:

答案 0 :(得分:6)

它只从“表”中读取整个键列一次。