Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery Google BigQuery:停止运行查询_Google Bigquery - Fatal编程技术网

Google bigquery Google BigQuery:停止运行查询

Google bigquery Google BigQuery:停止运行查询,google-bigquery,Google Bigquery,几个小时前,我在Google BigQuery上运行了一个查询,该查询仍在运行。我单击了“放弃”,但似乎无法停止查询。我能做什么?我可以联系谷歌,让他们停止查询吗 我一直在为一家公司做一个项目,该公司用BigQuery分析谷歌分析数据,所以我不想给他们开一大笔账单。 (可能StackOverflow不是问这个问题的合适地方,但我已经尝试了另一个地方,但我找不到。在BigQuery支持页面上,有人说应该在这里用google BigQuery标签提问,所以我正在这样做) 我写了一个查询(我不想在这里

几个小时前,我在Google BigQuery上运行了一个查询,该查询仍在运行。我单击了“放弃”,但似乎无法停止查询。我能做什么?我可以联系谷歌,让他们停止查询吗

我一直在为一家公司做一个项目,该公司用BigQuery分析谷歌分析数据,所以我不想给他们开一大笔账单。 (可能StackOverflow不是问这个问题的合适地方,但我已经尝试了另一个地方,但我找不到。在BigQuery支持页面上,有人说应该在这里用google BigQuery标签提问,所以我正在这样做)

我写了一个查询(我不想在这里粘贴或描述它,因为有人可能会滥用它来阻止BigQuery或其他东西,我不知道)。让我们假设它包括内部联接。在我写了它之后,在运行它之前,控制台消息类似于“This will analysis 674KB的数据”,考虑到表只有10000行,这看起来还可以。单击“放弃”查询后,我收到了相同的消息,类似于“您可以放弃此查询,但您仍将为674KB的数据付费”

我非常努力地确保我所做的不会给某人带来问题,所以我实际上已经在本地PostgreSQL数据库上运行了该查询(数据与BigQuery中的数据完全相同-10000行),并且该查询在一两秒钟内完成


我如何取消此查询,以及我(我工作过的公司)如何为超过674KB的数据计费?

目前,BigQuery作业启动后无法停止,无论是通过web界面还是API调用

根据,将来可能会添加此功能

由于BigQuery会将查询分片到多台机器上,因此即使是一个大型查询(TB级)也不会对单个机器产生太大的影响,更不用说674KB的查询了。然而,根据,是您将被收取的金额

下面是一些在BigQuery中省钱的技巧

首先要知道的是,与传统的RDBMS不同,BigQuery是基于列的,您将按照列中的数据量而不是行中的数据量收费

  • 这意味着,不要在查询中包含不需要的列。这听起来可能微不足道,但有时来自RDBMS的人可能会编写如下查询:

    SELECT
        COUNT(*), user_id
    FROM
        [Dataset.Table]
    
    这个查询是绝对正确的,但是Google不会只收取用户id列的大小,而是会为这个查询向整个表收费。因此,显式指定列名是一个好主意

  • 把桌子分成小块。与其使用包含所有数据的单个表,不如根据日期拆分表,并在查询期间使用将表缝合在一起。在这种情况下,您不会按不需要的行计费


BigQuery支持取消查询作业。 您可以通过
bq
命令行实用程序执行此操作:

bq cancel <job_id>
bq取消

或者通过jobs.cancel方法(有文档记录)

从API中删除。不必担心成本:无论需要多长时间,如果查询失败,您将为这些674KB收取费用,或者不收取任何费用。如果复制粘贴查询的作业id,支持团队可能也能够调试所述查询。谢谢