我的bigquery表具有以下结构:
source | feature | value |
---------------------------
s1 | f1 | HIGH |
---------------------------
s2 | f1 | LOW |
---------------------------
s2 | f2 | MEDIUM |
.
.
.
---------------------------
s7000 | f1000 | HIGH |
我想计算特征和值的所有排列出现了多少个来源。结果集示例:
feature | feature | value | value | count
-----------------------------------------------
f1 | f2 | HIGH | HIGH | 7
-----------------------------------------------
f1 | f2 | LOW | HIGH | 211
.
.
.
-----------------------------------------------
f7000 | f1000 | HIGH |MEDIUM | 123
这是我的SQL查询:
select m1.feature as f1, m2.feature as f2, m1.value as v1, m2.value as v2, count(*)
from matrix m1 inner join matrix m2 on m1.source=m2.source
group by m1.feature, m2.feature, m1.value, m2.value
在这种情况下,问题是bigquery的性能非常差。矩阵表不是很大,大约有7,000,000条记录。 7分钟后我停止了查询的执行...
您能帮我提高查询性能吗?
答案 0 :(得分:3)
很少建议:
WHERE m1.feature < m2.feature
CREATE TABLE AS
或INSERT INTO
来抑制将结果加载到UI并将其放入表中,然后就可以使用/随便查询