【发布时间】:2019-11-30 10:14:00
【问题描述】:
根据AWS Athena limitations,您一次最多可以提交20个相同类型的查询,但这是一个软限制,可以根据要求增加。我使用boto3 与 Athena 交互,我的脚本提交了 16 个 CTAS 查询,每个查询大约需要 2 分钟才能完成。在 AWS 账户中,只有我在使用 Athena 服务。但是,当我通过控制台查看查询状态时,我发现实际上只有少数查询(平均 5 个)正在执行,尽管它们都处于状态 Running。以下是通常在 Athena 历史标签中看到的内容:
我了解,在我向 Athena 提交查询后,它会根据整体服务负载和传入请求的数量分配资源来处理查询。但是我尝试在不同的日期和时间运行它们,仍然会同时执行大约 5 个查询。
所以我的问题是它应该是这样的吗?如果是这样,那么如果其中大约 15 个查询处于空闲状态并等待可用的插槽,那么能够提交多达 20 个查询又有什么意义呢。
2019 年 9 月 26 日更新
刚刚在 presto 文档中偶然发现了 HIVE CONNECTOR,其中有一个部分 AWS Glue Catalog Configuration Properties。我们可以看到
hive.metastore.glue.max-connections:Glue 的最大并发连接数(默认为 5)。
这让我想知道这是否与我的问题有关。据我了解,Athena 只是一个运行在 EMR 集群上的 Presto,该集群配置为使用 AWS Glue 数据目录作为 Metastore。
那么,如果我的问题来自 Athena 的 EMR 集群只是使用默认值来与 Glue 的并发连接,即 5,这正是我实际执行的并发查询的数量(平均而言) .
2019 年 11 月 27 日更新
Athena 团队最近为 Athena 部署了许多新功能。尽管QUEUED 已经在状态枚举中存在了一段时间,但直到现在才被使用。所以现在我得到了关于历史选项卡中查询状态的正确信息,但其他一切都保持不变。
此外,another post 发布时也存在类似问题。
【问题讨论】:
-
Athena 服务限制默认允许您最多提交 20 个查询。 Athena 然后尽快处理这些。根据我的经验,您所看到的是典型的行为。能够提交 20 的重点是查询会尽快执行。
标签: concurrency limit amazon-emr amazon-athena aws-glue