10

実行中のクエリをキャンセルする方法はありますか?

私はウェブインターフェースを使用しています。最初に、10k 行と 20k 行を超えるテーブルで一連のテストを実行しましたが、応答は数秒でした。しかし、10万行のテーブルでトリプル結合クエリを実行したところ、数千秒後に無限に見えました。

すべての作業を bigquery に移行する前にいくつかのテストを実行したかっただけですが、毎月の 100 GB の無料制限とそれ以上を費やすことになるのではないかと心配しています。

テーブルは、整数値の単純なキーと値のペアです。

4

3 に答える 3

15

シェルコマンドbq cancel job_idはこれを行います。BigQuery コンソールの [ Query Historyjob_id ] ​​タブから取得できます。CLI 経由でクエリを開始した場合は、標準出力にログが記録されます。job_id

于 2016-02-01T22:35:05.310 に答える
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

nxm 行を生成します。ここで、n は table1 の行数、m は table2 の行数です。あなたのクエリが似たようなことをしている可能性はありますか? そうでない場合は、クエリを送信できますか? (おそらく、結合パフォーマンスの低下に関連する別のSOの質問にあります)。

于 2013-03-21T20:06:56.473 に答える
1

Java API の使用中にジョブを停止する方法が見つかりませんでした。私の知る限り、Web インターフェイスでジョブを停止することはできません。

于 2013-03-21T16:39:50.007 に答える