BigQuery在简单的LEFT JOIN上花费了太多时间

时间:2018-01-24 14:23:08

标签: join google-bigquery left-join

所以我做了一个非常基本的左连接,基本上加入了我的数据库的不同标识符,如下所述:

SELECT
main_id,
DT.table_1.mid_id AS mid_id,
final_id

FROM DT.table_1

LEFT JOIN DT.table_2 ON DT.table_1.mid_id = DT.table_2.mid_id

表1由四列组成,main_id,mid_id,firstSeen和lastSeen。 有17014,676行,用于519 MB的数据。每行由唯一的main_id - mid_id对组成,但main_id / mid_id可以在表中多次出现。

表2由四列组成,mid_id,final_id,firstSeen和lastSeen。 对于3.86 GB的数据,有66,779,079行。同样,每一行都由一个唯一的mid_id - final_id对组成,但mid_id / final_id可以在表中多次出现。

BigQuery自己只使用3.11 GB进行查询。 first_id和mid_id是整数,final_id是一个字符串。

查询结果对于bigQuery来说太大了,所以我不得不创建一个"结果" table,包含我在上面写的确切类型的first,mid和final id。 "允许大结果"必须选择选项,否则会抛出错误。

我的问题是这个简单的查询已经用了一个小时,甚至还没有最终确定!我读到,良好的做法是做一个正确的连接,这样连接中的第一个表是最大的,但是,即使对于那种情况,一小时也非常长!

Stack Overflow的亲切的人,你有解释吗?

提前谢谢你!

0 个答案:

没有答案