亚马逊AWS官方博客

Athena 预置容量简介



今天,我们发布了为运行 Amazon Athena 查询预置容量的功能。

Athena 是一种使用标准 SQL 查询的查询服务,让您可以轻松分析 Amazon Simple Storage Service (Amazon S3) 数据湖和 30 个不同数据来源(包括本地数据源或其他云系统)中的数据。Athena 是一种无服务器服务,因此您无需管理任何基础设施,而且到今天为止,您只需为所运行的查询付费。从今天开始,您可以为查询获取专用容量,并使用新的工作负载管理功能来优先处理、控制和扩展最重要的查询,而且只需为预置的容量付费。

在 AWS,90% 的新服务和功能是由您的直接反馈推动的。许多 Athena 客户告诉我们,当运行大量查询时,有时会出现排队情况,这可能会拖慢某些应用程序或业务流程的速度。要解决此问题,您通常需要创建一个查询优先级机制,将任务关键型查询优先于不太关键、交互式或探索性查询。这种优先级机制有助于先运行最高优先级的查询,但代价是需要在 Athena 之外构建和维护代码或业务流程。你们还告诉我们,Athena 的成本难以预测。Athena 按扫描的数据量收费,这笔费用通常很难预测,因为它取决于数据集的大小、用户查询的构造以及数据的存储格式。

我们听到了这种反馈,今天,我们推出了大规模预置专用查询处理容量的功能。通过预置容量,您可以预置一组专用的计算资源来运行查询。这种永不间断的容量可以几乎零延迟地为您的关键业务查询提供服务,无需排队。它使您可以控制工作负载性能特征,例如成本、并发性和查询优先级。与其他 AWS 服务的预配置容量类似,您只为预置容量付费,而不为实际使用量付费。使用预置容量时,您的 Athena 账单是可预测的,并且不必为了控制每月预算而限制用户查询。我将在下面分享有关计费模式的更多信息。

Athena 在其运营的每个 AWS 区域背后都维护着一个大型计算池。您可以将其视为一个庞大的计算池,在逻辑上划分给客户。当您在 Athena 中预留容量时,该容量将专供您使用。您可以选择哪些查询在您的预置容量上运行,哪些在 Athena 的多租户按需容量上运行。多个查询可以共享您预置的容量。您可以根据不断变化的业务需求随时添加额外的容量单位。您还可以在至少 8 小时后调低预置容量。

容量单位是数据处理单元 (DPU)。单个 DPU 相当于四个 vCPU 和 16Gb 内存。您可以预置的最小容量为 24 个 DPU,持续 8 小时。这种新的 Athena 预置容量非常适合那些运行任何查询量的人,但开始使用预置容量的最佳时机是当您每月在 Athena 上花费 100 美元或更多时。

您需要的 DPU 数量取决于您的目标和分析模式。例如,如果您需要立即开始查询且无需排队,则应预置足够的 DPU 以满足峰值并发查询需求。允许预置少于峰值需求的 DPU,但可能会导致排队。发生这种情况时,查询将保存在队列中,并在容量可用时执行。如果您的目标是在固定预算内运行查询,则可以使用 AWS 定价计算器来确定符合预算的 DPU 数量。最后,请记住,数据大小、存储格式和查询结构会影响查询所需的 DPU 数量。您可以通过压缩、分区和将数据转换为列式格式来提高查询性能。Athena 的文档为您提供了指导,以便您确定同时运行多个查询可能需要的容量

它的工作原理是什么?
入门过程分为三步。我导航到 AWS 管理控制台中的 Athena 页面,然后在左侧导航菜单中选择“容量预留”。
(您在此演示中看到的控制台基于新的 Cloudscape 开源设计系统,您的控制台上的 AWS 账户可能仍采用传统设计。

控制台中的 Athena 容量预留登录页面

我选择了页面右上角的“创建容量预留”按钮。

在“创建容量预留”页面上,我输入容量预留名称和要预置的 DPU 数量。

Athena 容量预留 - 创建预留

我选择“查看”来查看我的选择,然后选择“创建容量预留”来创建我的预留。短时间后,容量预留状态变为 ✅ Active(活动)。

Athena 容量预留 - 状态

第三步(也是最后一步)是创建一个工作组并将该工作组分配给预置容量。工作组是一种 Athena 机制,允许您分离用户、团队、应用程序或工作负载,以限制每个查询或整个工作组可以处理的数据量并跟踪成本。

属于已分配工作组的查询将在您预置的容量上运行。容量可以与多个工作组共享,前提是它们都使用相同的 Athena 引擎版本。这个概念(如下图所示)通过容量分配策略体现,该策略定义了如何在工作组之间分配容量。这使您可以根据业务需求灵活地以更多或更少的容量运行查询。

Athena 容量预留 - 共享工作组

为了创建工作组,我导航到 Athena 页面的“工作组”部分。然后选择“创建工作组”。

Athena 容量预留 - 创建工作组

我确保在预留中选择的分析引擎与工作组中的分析引擎相匹配。

Athena 容量预留 - 选择分析引擎然后,我返回到刚才创建的容量预留,然后选择“添加工作组”来添加我刚刚创建的工作组。

Athena 容量预留 - 添加工作组

就这么简单! 现在配置已经准备就绪,我可以运行我的查询了。现有查询将在未修改的预置容量上运行。我确保在运行查询时选择我刚刚创建的工作组。我在查询编辑器的右上角选择一个工作组,或者在 AWS 命令行上使用 --work-group 参数,例如:

aws athena start-query-execution --work-group AWSNewsBlog

Athena 容量预留 - 选择工作组

可用性和定价
正如我在介绍中所解释的那样,我们根据您预置的 DPU 数量和持续时间收费。最短持续时间为 8 小时,之后按分钟计费。您可以随时释放预置容量。若在最短持续时间段内取消预置容量,则将按整个期限计费,容量将在所有当前正在运行的查询终止后立即释放。

在分配给预置容量的工作组中运行的查询不按扫描的数据量计费。实际上,您需要根据预置容量支付统一费率,而不是按使用量付费。如果容量过剩,则可以减少预置的 DPU 数量或添加工作组以消耗多余的容量。

通常来说,Athena 定价页面包含所有详细信息。

Athena 预置容量现已在美国东部(俄亥俄州、弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(新加坡、悉尼、东京)和欧洲(爱尔兰、斯德哥尔摩)AWS 区域提供。

立即预置您的 Athena 容量吧!

— seb