管理工作组 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

管理工作组

https://console.aws.amazon.com/athena/,您可以执行以下任务:

Statement 描述
创建工作组

创建新的工作组

编辑工作组 编辑工作组并更改其设置。您不能更改工作组的名称,但您可以创建一个具有相同设置但名称不同的新工作组。
查看工作组详细信息 查看工作组的详细信息,例如其名称、描述、数据使用限制、查询结果位置、预期查询结果存储桶拥有者、加密,以及对写入查询结果存储桶的对象的控制权。如果 Override client-side settings (覆盖客户端设置) 已被选中,您还可以验证该工作组是否已强制实施其设置。
删除工作组

删除工作组。如果您删除某个工作组,则查询历史记录、已保存查询、工作组设置和查询数据限制控制都将被删除。工作组范围的数据限制控制会保留在 CloudWatch 中,您可以单独删除它们。

不能删除主工作组。

切换工作组

在您有权访问的工作组之间切换。

在工作组之间复制已保存的查询 在工作组之间复制已保存的查询。例如,如果您在预览工作组中创建了查询,并且希望在非预览工作组中使用该查询,则可能需要执行此操作。
启用和禁用工作组

启用或禁用工作组。当工作组处于禁用状态,其用户无法运行查询或创建新的命名查询。如果您有权访问它,您仍然可以查看指标、数据使用限制控制、工作组设置,查询历史记录和已保存查询。

指定从中运行查询的工作组

您必须为 Athena 指定要使用的工作组,然后才能运行查询。您必须具有工作组的权限。

创建工作组

创建工作组需要具有执行 CreateWorkgroup API 操作的权限。请参阅 对工作组和标签的访问 用于访问工作组的 IAM policy。如果要添加标签,您还需要添加对 TagResource 的权限。请参阅 工作组的标签策略示例

在控制台中创建工作组

  1. 如果控制台导航窗格不可见,请选择左侧的扩展菜单。

    
                            选择扩展菜单。
  2. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  3. Workgroups(工作组)页面中,选择 Create workgroup(创建工作组)。

  4. Create workgroup(创建工作组)页面中,如下所示填写各字段:

    字段 描述
    Workgroup name (工作组名称) 必需。为工作组输入唯一的名称。使用 1 到 128 个字符。(A-Z、a-z、0-9、_、-、.)。此名称不能更改。
    描述 可选。为工作组输入描述。最多可包含 1024 个字符。
    更新查询引擎 选择您希望在发布新的 Athena 引擎版本时更新工作组的方式。您可以让 Athena 决定何时更新您的工作组或手动选择引擎版本。有关更多信息,请参阅Athena 引擎版本控制
    Location of query result(CTAS 查询结果位置)

    可选。输入指向 Amazon S3 存储桶或前缀的路径。此存储桶和前缀必须首先存在,然后才能指定它们。

    注意

    如果您在控制台中运行查询,则是否指定查询结果位置是可选的。如果您没有为工作组或者在Settings (设置) 中指定它,Athena 会使用默认的查询结果位置。如果您使用 API 或驱动程序运行查询,则必须 至少在这两个位置中的一个位置中指定查询结果位置:使用 OutputLocation 为单独查询指定,或使用 WorkGroupConfiguration 为工作组指定。

    预期存储桶拥有者 可选。输入您希望其成为输出位置存储桶拥有者的 Amazon Web Services 账户 ID。这是附加安全措施。如果存储桶拥有者的账户 ID 与您在此处指定的 ID 不匹配,则输出到存储桶的尝试将失败。有关更多信息,请参阅《Amazon S3 用户指南》中的使用存储桶拥有者条件验证存储桶所有权
    注意

    预期存储桶拥有者设置仅适用于您为 Athena 查询结果指定的 Amazon S3 输出位置。其不适用于其他 Amazon S3 位置,例如外部 Amazon S3 存储桶中的数据源位置、CTASINSERT INTO 目标表位置、UNLOAD 语句输出位置、为联合查询溢出存储桶的操作,或针对另一个账户中的表运行的 SELECT 查询。

    Encrypt query results (加密查询结果)

    可选。加密结果存储在 Amazon S3 中。如果选中,则工作组中的所有查询都会加密。

    如果已选中,您可以选择 Encryption type (加密类型)Encryption key (加密密钥) 并输入 KMS Key ARN (KMS 密钥 ARN)

    如果您没有密钥,请打开 Amazon KMS 控制台以创建它。有关更多信息,请参阅 Amazon Key Management Service 开发人员指南中的创建密钥

    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 用户指南》中的 对象所有权设置

    指标 在默认情况下,该字段会被选中。将查询指标发布到 CloudWatch。请参阅使用 CloudWatch 指标监控 Athena 查询
    Override client-side settings (覆盖客户端设置) 在默认情况下,该字段未被选中。如果选择该字段,工作组设置会应用于工作组中的所有查询并覆盖客户端设置。有关更多信息,请参阅工作组设置覆盖客户端设置
    Requester Pays S3 buckets (申请方付款 S3 存储桶)

    可选。如果工作组用户将对存储在配置为申请方付款的 Amazon S3 存储桶中的数据运行查询,请选择 Enable 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 资源添加标签
  5. 选择 Create workgroup (创建工作组)。工作组显示在 Workgroups (工作组)页面上的列表中。

您也可以使用 CreateWorkGroup API 操作创建工作组。

重要

在创建工作组后,创建将允许您运行工作组相关操作的 用于访问工作组的 IAM policy IAM。

编辑工作组

编辑工作组需要具有执行 UpdateWorkgroup API 操作的权限。请参阅 对工作组和标签的访问 用于访问工作组的 IAM policy。如果要添加或编辑标记,您还需要具有对 TagResource 的权限。请参阅工作组的标签策略示例

在控制台中编辑工作组

  1. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  2. Workgroups(工作组)页面上,选择要编辑的工作组的按钮。

  3. 选择 Actions(操作)和 Edit(编辑)。

  4. 根据需要更改字段。有关字段的列表,请参阅创建工作组。您可以更改除工作组名称以外的所有字段。如果您需要更改名称,请创建具有新名称和相同设置的另一工作组。

  5. 选择保存更改。已更新的工作组显示在 Workgroups (工作组)页面上的列表中。

查看工作组详细信息

您可以查看每个工作组的详细信息。这些详细信息包括工作组名称、描述、启用还是禁用以及用于在该工作组中运行的查询的设置,其中包括查询结果位置、预期存储桶拥有者、加密,以及对写入查询结果存储桶的对象的控制权。如果工作组具有数据使用限制,也会显示出来。

查看工作组详细信息

  1. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  2. Workgroups(工作组)页面上,选择要查看的工作组的链接。显示工作组的 Overview Details(概览详细信息)页面。

删除工作组

如果您具有相应权限,则可以删除工作组。不能删除主工作组。

如果您有权限,则可以随时删除空工作组。您也可以删除包含已保存查询的工作组。在这种情况下,Athena 会警告您保存的查询将被删除,然后再继续删除工作组。

如果您删除正在其中的工作组,控制台会将焦点切换到主工作组。如果您有权访问它,可以运行查询并查看其设置。

如果您删除某个工作组,其设置和查询数据限制控制都将被删除。工作组范围的数据限制控制保留在 CloudWatch 中,您可以在需要时从中删除它们。

重要

在删除工作组之前,确保其用户同时属于其他工作组,从而可以从中继续运行查询。如果用户的 IAM policy 允许他们允许该工作组中的查询,而您删除了它,则他们将不再具有运行查询的权限。有关更多信息,请参阅Example Policy for Running Queries in the Primary Workgroup

在控制台中删除工作组

  1. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  2. Workgroups(工作组)页面上,选择要删除的工作组的按钮。

  3. 依次选择 Actions(操作)Delete(删除)

  4. Delete workgroup(删除工作组)确认提示处,输入工作组名称,然后选择 Delete(删除)。

要使用 API 操作删除工作组,请使用 DeleteWorkGroup 操作。

切换工作组

如果您具有两个工作组的权限,则可以从一个工作组切换到另一个工作组。

在每个工作组中,您可以打开最多十个查询选项卡。当您在工作组之间切换时,最多可将三个工作组中的查询选项卡保持打开。

切换工作组

  1. 在 Athena 控制台中,使用右上角的 Workgroup(工作组)选项来选择工作组。

  2. 如果出现 Workgroup workgroup-name settings(工作组 workgroup-name 设置)对话框,请选择 Acknowledge(确认)。

Workgroup(工作组)选项将显示已切换到的工作组名称。现在,您可以运行该工作组中的查询。

在工作组之间复制已保存的查询

目前,Athena 控制台没有将保存的查询从一个工作组直接复制到另一个工作组的选项,但您可以使用以下过程手动执行相同的任务。

要在工作组之间复制保存的查询

  1. 在 Athena 控制台中,从您想复制查询的工作组中,选择 Saved queries(保存的查询)选项卡。

  2. 选择要复制的已保存查询的链接。Athena 会在查询编辑器中打开查询。

  3. 在查询编辑器中,选择查询文本,然后按 Ctrl+C 以复制查询。

  4. 切换到目标工作组,或创建工作组,然后切换到该工作组。

  5. 在查询编辑器中打开一个新选项卡,然后按 Ctrl+V 将文本粘贴到新选项卡中。

  6. 在查询编辑器中,选择 Save as(另存为)将查询保存到目标工作组中。

  7. Choose a name(选择一个名称)对话框中,输入查询名称和可选说明。

  8. 选择保存

启用和禁用工作组

如果您拥有相应的权限,您可以在控制台中、使用 API 操作或者使用 JDBC 和 ODBC 驱动程序启用或禁用工作组。

启用或禁用工作组

  1. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  2. Workgroups(工作组)页面上,选择工作组的链接。

  3. 在右上角,选择 Enable workgroup(启用工作组)或 Disable workgroup(禁用工作组)。

  4. 在确认提示处,选择 Enable(启用)或 Disable(禁用)。如果您禁用一个工作组,其用户无法运行其中的查询或创建新的命名查询。如果您启用一个工作组,用户可以使用它来运行查询。

指定从中运行查询的工作组

若要指定要使用的工作组,您必须具有该工作组的权限。

指定要使用的工作组

  1. 确保您的权限允许您在要使用的工作组中运行查询。有关更多信息,请参阅 用于访问工作组的 IAM policy

  2. 若要指定工作组,请使用以下选项之一:

    • 如果您正在使用 Athena 控制台,请通过切换工作组设置工作组。

    • 如果您正在使用 Athena API 操作,请在 API 操作中指定工作组名称。例如,您可以在 StartQueryExecution 中设置工作组名称,如下所示:

      StartQueryExecutionRequest startQueryExecutionRequest = new StartQueryExecutionRequest() .withQueryString(ExampleConstants.ATHENA_SAMPLE_QUERY) .withQueryExecutionContext(queryExecutionContext) .withWorkGroup(WorkgroupName)
    • 如果您正在使用 JDBC 或 ODBC 驱动程序,使用 Workgroup 配置参数在连接字符串中设置工作组名称。驱动程序将工作组名称传递到 Athena。在连接字符串中指定工作组参数,如以下示例所示:

      jdbc:awsathena://AwsRegion=<AWSREGION>;UID=<ACCESSKEY>; PWD=<SECRETKEY>;S3OutputLocation=s3://<athena-output>-<AWSREGION>/; Workgroup=<WORKGROUPNAME>;

      有关更多信息,请在 JDBC 驱动程序文档中包含的驱动程序文档链接中搜索“Workgroup”。