创建工作组
创建工作组需要具有执行 CreateWorkgroup
API 操作的权限。请参阅配置对工作组和标签的访问和使用 IAM 策略控制工作组访问。如果要添加标签,您还需要添加对 TagResource
的权限。请参阅 工作组的标签策略示例。
以下过程介绍了如何使用 Athena 控制台创建工作组。要使用 Athena API 创建工作组,请参阅创建工作组。
在 Athena 控制台中创建工作组
-
确定要创建的工作组。需要考虑的几项因素包括:
-
哪些用户可以运行每个工作组中的查询,以及哪些用户拥有工作组配置。使用 IAM 策略强制执行工作组权限。有关更多信息,请参阅 使用 IAM 策略控制工作组访问。
-
在 Amazon S3 中用于工作组查询结果的位置。工作组的所有用户必须能够访问此位置。
-
是否必须对工作组查询结果进行加密。由于加密按工作组进行(而非按查询进行),因此您应该为加密和非加密的查询结果创建单独的工作组。有关更多信息,请参阅 加密在 Amazon S3 中存储的 Athena 查询结果。
-
如果控制台导航窗格不可见,请选择左侧的扩展菜单。
-
在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。
-
在 Workgroups(工作组)页面中,选择 Create workgroup(创建工作组)。
-
在 Create workgroup(创建工作组)页面中,如下所示填写各字段:
字段 描述 Workgroup name (工作组名称) 必需。为工作组输入唯一的名称。名称可以包含 1 到 128 个字符,包括字母数字字符、短划线和下划线。当您创建工作组后,便无法再更改其名称。 描述 可选。为工作组输入描述。最多可包含 1024 个字符。 Choose the type of engine(选择引擎类型) 如需对 Amazon S3 中的数据运行临时 SQL 查询,或者使用预构建的数据来源连接器对 Amazon S3 外部的各种数据来源运行联合查询,请选择 Athena SQL。您可以使用 Athena 查询编辑器、Amazon CLI
或 Athena API 运行查询。 如需使用 Python 和 Apache Spark 创建、编辑和运行 Jupyter notebook 应用程序,请选择 Apache Spark。Jupyter notebook 包含单元格列表,其中可以包括代码、文本、Markdown、数学运算、绘图和富媒体。在 Athena 的交互式笔记本会话中,单元格按计算顺序运行。有关创建和配置启用 Spark 的工作组的信息,请参阅 步骤 1:在 Athena 中创建启用 Spark 的工作组。
创建工作组后,您可以升级其分析引擎(例如,从 Athena 引擎版本 2 升级到 Athena 引擎版本 3),但无法更改其引擎类型。例如,无法将 Athena 引擎版本 3 工作组更改为 PySpark 引擎版本 3 工作组。
更新查询引擎 选择您希望在发布新的 Athena 引擎版本时更新工作组的方式。您可以让 Athena 决定何时更新您的工作组或手动选择引擎版本。有关更多信息,请参阅 Athena 引擎版本控制。 身份验证 选择 Amazon Identity and Access Management(IAM),以对工作组使用 IAM 身份验证或联合身份验证。如果要支持员工身份(例如来自 Microsoft Active Directory 等 SAML 2.0 身份提供商的用户和组),请选择 IAM Identity Center。有关更多信息,请参阅 使用已启用 IAM Identity Center 的 Athena 工作组 和《Amazon IAM Identity Center User Guide》中的 Trusted identity propagation across applications。创建工作组后,您无法更改工作组的身份验证类型。 IAM Identity Center 访问权限的服务角色 Athena 需要 IAM 权限才能代表您访问 IAM Identity Center。有关 IAM 服务角色的更多信息,请参阅《IAM 用户指南》中的创建向 Amazon 服务委派权限的角色。 Location of query result(CTAS 查询结果位置) 输入指向 Amazon S3 存储桶或前缀的路径。此存储桶和前缀必须首先存在,然后才能指定它们。有关创建 Amazon S3 存储桶的信息,请参阅 创建存储桶。
注意
如果您没有为工作组或在设置中指定查询结果位置,则 Athena 查询将失败。如果使用 API 或驱动程序运行查询,则必须至少在这两个位置中的一个位置指定查询结果位置:对于单独查询使用 OutputLocation,对于工作组使用 WorkGroupConfiguration。
预期存储桶拥有者 可选。输入您希望其成为输出位置存储桶拥有者的 Amazon Web Services 账户 ID。这是附加安全措施。如果存储桶拥有者的账户 ID 与您在此处指定的 ID 不匹配,则输出到存储桶的尝试将失败。有关更多信息,请参阅《Amazon S3 用户指南》中的使用存储桶拥有者条件验证存储桶所有权 注意
预期存储桶拥有者设置仅适用于您为 Athena 查询结果指定的 Amazon S3 输出位置。其不适用于其他 Amazon S3 位置,例如外部 Amazon S3 存储桶中的数据源位置、
CTAS
和INSERT INTO
目标表位置、UNLOAD
语句输出位置、为联合查询溢出存储桶的操作,或针对另一个账户中的表运行的SELECT
查询。Assign bucket owner full control over query results(为存储桶拥有者分配对查询结果的完全控制权) 在默认情况下,该字段未被选中。如果您选择了此选项并且为查询结果位置存储桶启用了 ACL,您将向存储桶拥有者授予对查询结果的完全控制权。例如,假设您的查询结果位置属于其他账户所有,则可以使用此选项将所有权以及对查询结果的完全控制权授予该其他账户。
如果存储桶的 S3 Object Ownership(S3 对象所有权)设置为 Bucket owner preferred(存储桶拥有者优先),则存储桶拥有者还拥有从此工作组写入的所有查询结果对象。例如,假设某个外部账户的工作组启用了此选项并将其查询结果位置设置为您账户的 Amazon S3 存储桶,并且该存储桶的 S3 Object Ownership(S3 对象所有权)设置为 Bucket owner preferred(存储桶拥有者优先),则您将拥有并完全控制该外部工作组的查询结果的访问权限。
如果查询结果存储桶的 S3 Object Ownership(S3 对象所有权)设置为 Bucket owner enforced(存储桶拥有者强制),则选择此选项将不具有效力。有关更多信息,请参阅《Amazon S3 用户指南》中的 对象所有权设置。
Encrypt query results (加密查询结果) 可选。对于所有工作组查询,请加密 Amazon S3 中的查询结果。由于您必须加密工作组中的所有查询或不加密任何查询,因此我们建议您为加密和非加密查询创建单独的工作组。
如果已选中,您可以选择 Encryption type (加密类型) 和 Encryption key (加密密钥) 并输入 KMS Key ARN (KMS 密钥 ARN)。
如果您没有密钥,请打开 Amazon KMS 控制台
以创建它。有关更多信息,请参阅 Amazon Key Management Service 开发人员指南中的创建密钥。 将 encryption_type
设置为最低加密可选。选择此选项可对工作组的所有用户强制对查询结果进行最低限度的加密。选择此选项可显示一个包含加密类型层次结构的表。该表还显示当您将特定加密类型指定为最低加密类型时,允许工作组用户使用哪些加密类型。要使用此选项,请勿选择覆盖客户端设置。
有关更多信息,请参阅 为工作组配置最低加密。
启用 S3 Access Grants 当您选择 IAM Identity Center 作为身份验证模式时,会默认选择此字段。选中后,此选项会将基于 IAM Identity Center 用户或组的权限应用于 Amazon S3 位置。 创建基于用户身份的 S3 前缀 选择此选项后,Athena 会在存储查询结果时创建 Amazon S3 前缀。前缀基于用户的 IAM Identity Center 用户身份。 Override client-side settings (覆盖客户端设置) 在默认情况下,该字段未被选中。如果选择该字段,工作组设置会应用于工作组中的所有查询并覆盖客户端设置。有关更多信息,请参阅 Override client-side settings (覆盖客户端设置)。 Publish query metrics to CloudWatch(将查询指标发布到 CloudWatch) 在默认情况下,该字段会被选中。将查询指标发布到 CloudWatch。请参阅 使用 CloudWatch 监控 Athena 查询指标。 Requester Pays S3 buckets (申请方付款 S3 存储桶) 可选。如果工作组用户将对存储在配置为“申请方付款”的 Amazon S3 存储桶中的数据运行查询,请选择 Turn on queries on requester pays buckets in Amazon S3(在 Amazon S3 中启用对申请方付款存储桶的查询)。运行查询的用户的账户需要针对适用的数据访问支付费用,并支付和查询有关的数据传输费用。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的 申请方付款存储桶。
Per query data usage control(每个查询数据使用控制) 可选。设置查询允许扫描的最大数据量限制。只能为工作组的每个查询设置一个限制。该限制适用于工作组中的所有查询,如果查询超过限制,则将取消查询。有关更多信息,请参阅 配置每个查询和每个工作组的数据使用情况控制。 Workgroup data usage alerts(工作组数据使用提示) 可选。当在此工作组中运行的查询在特定时间段内扫描指定数量的数据时,请设置多个提示阈值。提示使用 Amazon CloudWatch 发出告警,并适用于工作组中的所有查询。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的使用 Amazon CloudWatch 告警。 标签 可选。将一个或多个标记添加到工作组。标记是指您为 Athena 工作组资源分配的标签。其中包含一个键和一个值。使用 Amazon 标记最佳实践 创建一组一致的标签,并将工作组按用途、所有者或环境分类。您还可以在 IAM policy 中使用标记,以及用于控制账单成本。请勿为同一工作组使用重复的标签键。有关更多信息,请参阅 标记 Athena 资源。 -
选择 Create workgroup (创建工作组)。工作组显示在 Workgroups (工作组)页面上的列表中。
在查询编辑器中,Athena 将在控制台右上角的工作组选项中显示当前工作组。您可以使用此选项切换工作组。运行查询时,其会在该工作组中运行。
-
为您的用户、组或角色创建 IAM policy,使他们能够访问工作组。这些策略建立工作组成员资格,以及对
workgroup
资源相关操作的访问权限。有关更多信息,请参阅 使用 IAM 策略控制工作组访问。有关示例 JSON 策略,请参阅配置对工作组和标签的访问。 -
(可选)当未针对覆盖客户端设置选项强制设置工作组范围加密时,可在 Amazon S3 中为工作组的所有查询结果配置最低级别的加密。您可以使用此功能确保查询结果永远不会以未加密状态存储在 Amazon S3 存储桶中。有关更多信息,请参阅 为工作组配置最低加密。
-
(可选)使用 Amazon CloudWatch 和 Amazon EventBridge 监控工作组的查询并控制成本。有关更多信息,请参阅 使用 CloudWatch 和 EventBridge 监控查询并控制成本。
-
(可选)使用账单和成本管理控制台,以成本分配标签标记工作组。有关更多信息,请参阅《Amazon Billing User Guide》中的 Using user-defined cost allocation tags。
-
(可选)要获得工作组中查询的专用处理容量,请将该工作组添加到容量预留中。您可以将一个或多个工作组分配给预留。有关更多信息,请参阅 管理查询处理容量。