AWS 最近宣布了一项针对 Athena 的新功能 Provisioned Capacity,该功能允许用户以固定价格在完全托管的计算容量上运行 SQL 查询,且无需长期承诺。
Athena是一种无服务器交互式查询服务,允许用户使用标准 SQL 查询分析Amazon Simple Storage Service (Amazon S3) 数据湖和 30 个不同数据源(包括本地数据源或其他云系统)中的数据。Provisioned Capacity 是 Athena 的可选附加功能。
借助新增的预置容量功能,用户现在可以预购一段时间内的查询处理容量,并选择他们想要运行的并发查询数量——让他们能够更有效地管理查询性能和成本,尤其是对于需要的关键工作负载一致且可预测的查询性能。
AWS 的主要开发人员倡导者Sébastien Stormacq在 AWS 新闻博客文章中解释了预置容量:
在幕后,Athena 在其运营的每个 AWS 区域维护着一个大型计算池。您可以将其视为一个大型计算池,按逻辑划分给客户。当您在 Athena 中预留容量时,该容量将专供您使用。您可以选择哪些查询在您配置的容量上运行,哪些在 Athena 的多租户按需容量上运行。多个查询可以共享您配置的容量。
用户可以随时增加他们的容量单位以满足他们的需求,或者在至少八小时后减少他们的配置容量。
容量单位基于所谓的数据处理单元 (DPU),单个单元代表四个 vCPU 和 16 Gb RAM。根据 Stormacq 的说法,当用户每月在 Athena 上花费 100 美元或更多时,用户可以提供的最低容量是 24 DPU,持续八小时。
通过提前预留容量,用户可以避免排队延迟、确定查询的优先级并获得更可预测的查询性能。该公司提供了确定用户可能需要多少容量的指南。
通过 Athena 控制台、AWS SDK 或 CLI,用户可以为其账户设置容量,并选择他们希望使用该容量的查询工作组。工作组是一种 Athena 机制,允许用户将用户、团队、应用程序或工作负载分开,以对每个查询或整个工作组可以处理和跟踪成本的数据量设置限制。
与指定工作组关联的查询将使用配置的容量执行。此外,容量可以在多个工作组之间共享,前提是它们都使用相同的 Athena 引擎版本。
与 Athena 类似的其他服务包括Google BigQuery、Microsoft Azure Synapse Analytics、Snowflake和Apache Spark。Resmo 和 AWS Community Builder 的联合创始人Mustafa Ak?n在一条关于 Athena 预置容量的推文中表示:
如果需要,只需使用 Snowflake
相比之下, EMR/Athena 查询引擎工程主管(主管) Roni Burd在LinkedIn 帖子中写道:
新的预配置容量模型非常适合想要更大规模和/或无队列延迟和/或完全控制容量的客户,同时享受 Athena 相同的“just-works”无服务器特性。它还可以更轻松地推断预算分配,这对于客户向其自己的客户提供数据湖查询非常重要。
目前,Athena Provisioned Capacity 在美国东部(俄亥俄、弗吉尼亚北部)、美国西部(俄勒冈)、亚太地区(新加坡、悉尼、东京)和欧洲(爱尔兰、斯德哥尔摩)AWS 区域可用。此外,定价页面上提供了 Athena 的定价详细信息。