2013-03-21 44 views
5

有没有办法如何取消正在运行的查询?如何停止运行bigquery查询

我使用网络界面。首先,我对10k和20k行的表进行了一系列测试,响应时间在几秒钟之内。但比我跑100k行表上的三连接查询,似乎千百秒后无止境。

我只是想在将所有工作转移到bigquery前进行一些测试,但现在恐怕会花费整个每月100GB的免费限制+更多。

该表是一个简单的键值对的整数值。

回答

6

shell命令bq cancel job_id现在可以做到这一点。您可以从BigQuery控制台中的查询历史记录选项卡中获取job_id。如果您通过CLI开始查询,它将会将job_id记录为标准输出。

1

我们没有找到一种方法来停止使用Java API的工作,并且据我所知,您无法在Web界面停止工作。

3

目前没有办法通过API或UI停止正在运行的查询。您可以关闭查询构建器(通过UI右上角的'x')并再次重新打开它,以使UI再次响应。我们目前正在UI中开展这项功能。

令人惊讶的是,除非您的连接加入非唯一键,否则查询会花费那么长的时间,即使是联接,也会花费时间生成匹配键的交叉产品。例如:

SELECT t1.foo 
FROM (SELECT 1 as one, foo FROM table1) t1 
JOIN (SELECT 1 as one, bar FROM table2) t2 
ON t1.one = t2.one 

会生成n×m行,其中n是table1中的行数,m是table2中的行数。有没有可能你的查询做类似的事情?如果不是,你可以发送查询吗? (也许在另一个SO问题中,与慢连接性能有关)。

+0

嗨约旦。谢谢你的评价,这很有帮助。同时在一夜之间,我的windoz安装了更新并重新开始自己丢失了所有的桌面工作,所以我甚至无法看到它是否完成了查询。无论如何,这是查询:'SELECT aa.e1,c.n_id_customer,count(*)from (select a.i_euvn as e1,b.i_euvn as e2 FROM [ovca.ovca100k] a join [ovca.ovca100k] b 上a.n_id_customer = b.n_id_customer)为AA 加入[ovca.ovca100k]ç 上aa.e2 = c.i_euvn每个 组由1,2-为了通过1,3-递减;' – ulkas 2013-03-22 07:40:39

+0

我错了,我可以看到查询结果,生成15 080 486个结果行。 – ulkas 2013-03-22 07:43:49

+0

,奇怪的是资源使用并没有改变。我仍然只有'每天处理的数据量为 14 MB''虽然我确定查询吃得更多 – ulkas 2013-03-22 07:47:04