使用工作组控制查询访问和成本
您可以使用 Athena 工作组来分离工作负载、控制团队访问权限、强制配置以及跟踪查询指标和控制成本。
分离工作负载
您可以使用工作组来分离工作负载。例如,您可以创建两个独立工作组,一个用于报告生成等自动计划的应用程序,另一个供分析师临时使用。
控制团队访问权限
由于工作组可作为 IAM 资源,因此您可以使用基于资源级身份的策略来控制谁可以访问工作组以及谁可以在其中运行查询。要隔离组织中两个不同团队的查询,可以为每个团队创建一个单独的工作组。每个工作组仅为其中的查询显示查询历史和已保存的查询列表,而不会为账户中的所有查询显示这些信息。有关更多信息,请参阅 使用 IAM 策略控制工作组访问。
执行配置
您可以选择对工作组中运行的所有查询强制使用相同的工作组范围设置。这些设置包括 Amazon S3 中的查询结果位置、预期存储桶拥有者、加密,以及对写入查询结果存储桶的对象的控制权。有关更多信息,请参阅 Override client-side settings (覆盖客户端设置)。
跟踪查询指标、查询事件和控制成本
要跟踪每个 Athena 工作组的查询指标、查询事件和控制成本,您可以使用以下功能:
-
发布查询指标:将您的工作组的查询指标发布到 CloudWatch。在 Athena 控制台中,您可以针对每个工作组查看查询指标。在 CloudWatch 中,您可以创建自定义控制面板,并为这些指标设置阈值和警报。有关更多信息,请参阅启用 Athena 中的 CloudWatch 查询指标 和使用 CloudWatch 监控 Athena 查询指标。
-
监控 Athena 使用情况指标:在 CloudWatch 图表和控制面板上显示当前服务使用情况,以了解您的账户对资源的使用情况。有关更多信息,请参阅 使用 CloudWatch 监控 Athena 使用情况指标
-
监控查询事件:使用 Amazon EventBridge 接收有关查询状态的实时通知。有关更多信息,请参阅 使用 EventBridge 监控 Athena 查询事件。
-
创建数据使用控制:在 Athena 中,您可以针对每个查询和每个工作组配置数据使用控制。Athena 会在查询超过指定阈值时取消查询,或者在超出工作组阈值时激活 Amazon SNS 警报。有关更多信息,请参阅 配置每个查询和每个工作组的数据使用情况控制。
-
使用成本分配标签:使用账单和成本管理控制台为工作组添加成本分配标签。与工作组中运行查询相关的费用会在具有相应成本分配标签的“成本和使用情况报告”中显示。有关更多信息,请参阅《AWS Billing User Guide》中的 Using user-defined cost allocation tags。
-
使用容量预留:您可以使用您指定的数据处理单元数量创建容量预留,然后向预留中添加一个或多个工作组。有关更多信息,请参阅 管理查询处理容量。
请参阅 AWS Big Data Blog 文章 Separate queries and managing costs using Amazon Athena workgroups
注意事项和限制
当您在 Athena 中使用工作组时,请记住以下几点:
-
每个账户都具有一个主要工作组。默认情况下,如果您尚未创建任何工作组,则账户中的所有查询在主工作组中运行。不能删除主工作组。默认权限允许所有经过身份验证的用户访问该工作组。
-
有权访问工作组时,可以查看工作组的设置、指标和数据使用控制限制。通过其他权限,您可以编辑设置和数据使用控制限制。
-
运行查询时,其会在该工作组中运行。您可以通过 API 操作、命令行界面或使用 JDBC 或 ODBC 驱动程序通过客户端应用程序在控制台中运行该工作组上下文中的查询。
-
在 Athena 控制台查询编辑器中,您最多可以在每个工作组中打开十个查询选项卡。当您在工作组之间切换时,最多可将三个工作组中的查询选项卡保持打开状态。
-
在您自己的账户中,最多可对每个 AWS 区域 创建 1000 个工作组。
-
可以禁用工作组。禁用工作组可防止在其中运行查询,直到您重新启用工作组。
-
如果您尝试删除包含已保存查询的工作组,Athena 会向您发出警告。在删除其他用户有权访问的工作组之前,确保这些用户有权访问可以从中运行查询的另一工作组。