控制容量使用
您可以通过设置最大或最小 DPU 控制来控制 Athena 分配给查询的 DPU 数量。您可以在工作组级别对其进行配置以建立所有查询的基准控制,也可以在单个查询级别进行精细控制。这使您可以直接控制查询性能、工作负载并发性和成本。
-
设置最大 DPU 数时,查询不会消耗超出您指定的容量。这使得控制成本和工作负载并发性变得简单。例如,如果您的容量预留有 200 个 DPU,则将每次查询的最大 DPU 数设置为 8 可允许您同时运行 25 个查询。如果您将预留增加到 400 个 DPU,则可以同时运行 50 个查询。
-
设置最小 DPU 数量时,可以确保使用所需的最低 DPU 数量执行查询。如果您事先了解查询的典型容量使用情况,这会很有帮助。
注意
DPU 使用控制仅适用于使用容量预留执行的查询。
注意
要对所有查询使用相同数量的 DPU,请对最小和最大 DPU 使用相同的值。
在工作组级别设置 DPU 控制
在工作组级别设置 DPU 控制以管理成本并控制所选工作组的工作负载性能。启用覆盖客户端侧设置后,在工作组级别设置的 DPU 控制适用于所有查询。
使用控制台设置 DPU 控制
从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 -
在导航窗格中,选择 Workgroups(工作组)。
-
选择使用容量预留的工作组。
-
在执行控制选项卡上,选择编辑控件。
-
配置以下内容:
-
对每次查询的最小 DPU,输入一个介于 4 到 124 之间的值,增量为 4。
-
对每次查询的最大 DPU,输入一个介于 4 到 124 之间的值,增量为 4。
-
-
选择保存。
-
(可选)选择覆盖客户端侧设置以强制执行这些设置并忽略查询级 DPU 配置。
使用 AWS CLI 设置 DPU 控制
-
使用
update-work-group命令设置工作组的 DPU 控制:aws athena update-work-group \ --work-group my_workgroup \ --configuration-updates '{ "EngineConfiguration": { "Classifications": [ { "Name": "athena-query-engine-properties", "Properties": { "max-dpu-count" : "24", "min-dpu-count" : "12" } } ] }}'如果将
EnforceWorkGroupConfiguration设置为true,则通过 StartQueryExecution 提交时工作组设置将覆盖查询级别指定的任何 DPU 控制。这样可以确保工作组中所有查询的资源分配保持一致。
使用单个查询设置 DPU 控制
当您需要对具有不同资源要求的查询进行精细控制时,请设置查询级 DPU 控制。除非工作组启用覆盖客户端侧设置,否则查询级 DPU 控制优先于工作组级设置。
使用控制台设置查询的 DPU 控制
从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 -
在导航窗格中,选择查询编辑器。
-
选择使用容量预留的工作组。
-
选择查询设置选项卡。
-
在执行控制部分,选择编辑控件。
-
配置以下内容:
-
对每次查询的最小 DPU,输入一个介于 4 到 124 之间的值,增量为 4。
-
对每次查询的最大 DPU,输入一个介于 4 到 124 之间的值,增量为 4。
-
-
选择保存。
使用 AWS CLI 设置查询的 DPU 控制
-
将
start-query-execution命令与engine-configuration参数一起使用:aws athena start-query-execution \ --query-string "SELECT * FROM my_table LIMIT 10" \ --work-group "my_workgroup" \ --engine-configuration '{ "Classifications": [ { "Name": "athena-query-engine-properties", "Properties": { "max-dpu-count" : "32", "min-dpu-count" : "8" } } ]}'
查询级和工作组级 DPU 设置之间的关系取决于您的工作组配置:
-
启用覆盖客户端侧设置后,工作组级 DPU 控制优先于任何查询级设置。这样可以确保指定工作组中所有查询的资源使用保持一致。
-
未启用覆盖客户端侧设置时,查询级 DPU 控制优先于任何工作组级设置。这样可以灵活地优化单个查询。
如果您没有在任一级别指定 DPU 控制,Athena 会根据查询的复杂程度自动分配容量。
注意
对于 DDL 查询,最小 DPU 数的最大值为 4。设置更高的 DDL 查询最小值会导致错误。
监控 DPU 使用情况
查询完成后,您可以查看其 DPU 使用情况。Athena 通过控制台、API 操作和 CloudWatch 提供 DPU 使用情况指标。
在控制台中查看 DPU 消耗
从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 -
在导航窗格中,选择查询编辑器。
-
查询完成后,可在查询结果容器中查看其使用的 DPU 值。
-
要查看过去查询的 DPU 消耗,请执行以下操作:
-
在导航窗格中,选择最近的查询。
-
选择设置图标,将使用的 DPU 列添加到表格中(如果尚未显示)。
-
查看每个已完成查询的 DPU 消耗。
-
-
(可选)从查询编辑器中选择查询统计数据选项卡,然后查看使用的 DPU。
使用 API 检索 DPU 消耗
-
使用以下 API 操作以编程方式检索 DPU 消耗:
-
GetQueryExecution:返回特定查询的执行详细信息 -
BatchGetQueryExecution:返回多个查询的执行详细信息
-
-
使用 AWS CLI 的示例:
aws athena get-query-execution \ --query-execution-id "123e4567-e89b-12d3-a456-426614174000"响应包含
Statistics对象中的DpuCount字段:{ "QueryExecution": { "Statistics": { "DpuCount": 8 } } }
使用 CloudWatch 监控 DPU 使用情况
-
Athena 将查询相关的指标发布到 CloudWatch,帮助您监控容量利用率和其他性能数据。要了解更多信息,请参阅使用 CloudWatch 监控 Athena 查询指标。