Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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 BigQuery执行时间不一致性_Google Bigquery - Fatal编程技术网

Google bigquery BigQuery执行时间不一致性

Google bigquery BigQuery执行时间不一致性,google-bigquery,Google Bigquery,我们刚刚花了200多美元在BigQuery上测试执行时间,在交互查询上,每次执行时间从15秒到2分钟不等。有人能告诉我为什么会这样吗 我们需要一致的执行时间来测试和优化查询。有没有办法预测执行时间的一致性?我可以理解执行时间上的+-10%差异,但差异远远超过1000%,因此我们无法测试或优化任何内容,因为我们的查询设置与执行时间无关,而执行时间似乎完全是随机的。我们并行运行4个查询,所有查询都基于相同的数据,并且以相同的方式构造(只是一些列名被重命名为禁用缓存),我们的执行时间是:13s、27s

我们刚刚花了200多美元在BigQuery上测试执行时间,在交互查询上,每次执行时间从15秒到2分钟不等。有人能告诉我为什么会这样吗

我们需要一致的执行时间来测试和优化查询。有没有办法预测执行时间的一致性?我可以理解执行时间上的+-10%差异,但差异远远超过1000%,因此我们无法测试或优化任何内容,因为我们的查询设置与执行时间无关,而执行时间似乎完全是随机的。我们并行运行4个查询,所有查询都基于相同的数据,并且以相同的方式构造(只是一些列名被重命名为禁用缓存),我们的执行时间是:13s、27s、32s、44s。然后又是20,13,24,45等等。。。然后在某个时刻,我们运行一个查询(与上面相同),执行时间是400秒。。。WTF


此外,BigQuery上的销售团队也不存在购买支持包的情况(现在请求了几次报价,第一次是一个月前),所以我只需要在这里寻求帮助。

关于执行时间的不一致性,这似乎比我预期的差异更大。您能否提供快速查询和慢速查询的作业id,以便我可以在内部查询统计信息中查找花费的时间

这就是说,查询时间的一些相当显著的变化,虽然与您看到的范围不太一致,但并不令人惊讶。以下是一些因素:

  • 尾部延迟。查询被分成若干部分,并分配给几个不同的工作人员(可能有数千个,具体取决于数据的大小)。数据是从分布式文件系统集群读取的,该集群可能会将您的数据分条到数百个或更多磁盘(同样取决于表的大小)

    这些组件中响应最慢的一个将决定您的总查询时间。这被称为尾部延迟,这意味着您必须等到掉队者的长尾结束。我们做了大量的工作来尽量减少影响,复制数据并重新分派工作,但它仍然可以产生很大的影响

  • 装载。目前,当我们的集群负载过重时,它会降低其他用户的响应时间。我们正在研究更好的隔离机制,但它们还有一点出路。这并不能解释你们所看到的时间差异的大小,但它可能是一个因素

  • 节流。当一个客户同时发送多个并行查询时,这些查询可能会减慢速度,以防止该客户占用过多的容量。这种情况发生的程度和程度取决于许多因素,包括查询大小和集群上的其他负载

  • 写作结果。如果您的结果大于100k左右,那么写出结果可能会非常慢,并且可能会有荒谬的变化。这是我们目前正在调查的一个bug

目前正在作出重大努力,以减少所有这些因素的影响。然而,现在我们没有一根魔杖可以挥舞并说“查询性能将保持在20%以内”,而不是说“我们认识到这个问题并正在努力改进它”


如果您提供工作ID,我们可以查看您查询的具体情况,以确定时间花在哪里,以及我们是否可以采取措施来解决此问题。

我不是谷歌云支持团队的专家,但看起来您可以在此处注册白银计划:。您是否正在寻求更高级别的支持?如果是这样,如果你让我知道你的电子邮件地址,我可能会找到人与你联系。(如果你不想在公共论坛上发送你的电子邮件地址,你可以在google.com上给tigani发电子邮件)。