首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigQuery执行时间失效

BigQuery执行时间失效
EN

Stack Overflow用户
提问于 2014-01-23 11:03:29
回答 1查看 721关注 0票数 0

我们刚刚花费了200多美元在BigQuery上测试执行时间,每次执行时间从15秒到2分钟不等,在交互查询上都是完全相同的。有人能告诉我为什么会发生这种事吗?

我们需要一致的执行时间来测试和优化我们的查询。有什么方法可以预测执行时间的一致性吗?我理解执行时间上的+-10%的差异,但是差异远远超过1000%,因此我们不能测试或优化任何东西,因为我们的查询设置与执行时间无关,执行时间看起来完全是随机的。我们并行运行4个查询,所有查询都位于相同的数据上,并且结构相同(只是一些列名被重命名为禁用缓存),我们的执行时间是: 13s、27s、32s、44s。又是20,13,24,45等等.然后在某个时候运行一个查询(与上面相同),执行时间为400 s.见鬼?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-23 16:29:47

关于执行时间的不一致,这似乎是一个比我预期的更高的差异。您能提供一个快速查询和慢速查询的作业id吗?这样我就可以查找在内部查询统计中花费的时间了吗?

这就是说,查询时间上的一些相当大的变化,虽然并不完全取决于您所看到的范围,但并不令人惊讶。以下是一些因素:

  • 尾部延迟。该查询被分解为几个不同的工作人员(可能有数千个,取决于数据的大小)。数据正在从分布式文件系统集群中读取,该集群可能会在数百个磁盘或更多磁盘上对数据进行条带处理(同样取决于表的大小)。 响应这些组件中最慢的一个将决定您的总查询时间。这就是所谓的尾延迟,这意味着你必须等到拖尾器的长尾结束。我们做了大量的工作,以尽量减少影响,复制数据和重新调度工作,但它仍然可以有很大的影响。

  • 加载。目前,当我们的集群负载很重时,它可以减缓其他用户的响应时间。我们正在研究更好的隔离机制,但它们仍有一些出路。这并不能解释你所看到的巨大的时间差异,但它可能是一个因素。

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

  • 写结果。如果你的结果大于100 K左右,写出来的结果可能会很慢,而且可能会有荒谬的变化。这是我们目前正在调查的一个漏洞。

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

如果您提供了作业If,我们可以查看查询的具体情况,找出时间花在哪里,以及我们是否可以做些什么来解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21306286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档