AWS Athena并发限制:提交的查询数与正在运行的查询数

时间:2019-07-22 12:22:15

标签: concurrency limit amazon-athena

根据AWS Athena limitations,您一次最多可以提交20个相同类型的查询,但这是一个软限制,可以根据要求增加。我使用boto3与Athena进行交互,我的脚本提交了16个CTAS查询,每个查询大约需要2分钟才能完成。在一个AWS账户中,只有我在使用Athena服务。但是,当我通过控制台查看查询的状态时,我看到实际上只有少数查询(平均5个)正在执行,尽管所有查询都处于状态Running中。这是通常在“雅典娜”历史记录标签中看到的内容:

Athena hisotry tab

我了解到,向Athena提交查询后,它将通过基于整体服务负载和传入请求的数量分配资源来处理查询。但是我尝试在不同的日期和时间运行它们,仍然会同时执行约5个查询。

所以我的问题是这应该如何?如果这样的话,如果大约有15个查询处于空闲状态并等待可用的广告位,那么最多可以提交20个查询的意义。

1 个答案:

答案 0 :(得分:1)

您对Athena服务的帐户限制不是SLA,而是查询调度程序中的优先级。

根据可用容量,即使您没有运行任何其他查询,您的查询也可能会排队。更高的并发限制实际上是内部的,并且可能会改变,但是根据我的经验,最好将其视为查询调度程序处理查询的优先级。所有帐户的查询都在同一服务器池中运行,并且如果每个人都在运行查询,将没有剩余容量供您使用。

通过反复运行同一查询,然后绘制查询执行指标随时间变化,您可以看到实际的效果,您会注意到它们之间的差异很大,并且您会注意到查询排队的时间尖峰每小时的最高时间–当其他所有人都在运行其计划的查询时。

相关问题