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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理工作组

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 个字符。
    Choose the type of engine(选择引擎类型)

    如需对 Amazon S3 中的数据运行临时 SQL 查询,或者使用预构建的数据来源连接器对 Amazon S3 外部的各种数据来源运行联合查询,请选择 Athena SQL。您可以使用 Athena 查询编辑器、Amazon CLIAthena API 运行查询。

    如需使用 Python 和 Apache Spark 创建、编辑和运行 Jupyter notebook 应用程序,请选择 Apache Spark。Jupyter notebook 包含单元格列表,其中可以包括代码、文本、Markdown、数学运算、绘图和富媒体。在 Athena 的交互式笔记本会话中,单元格按计算顺序运行。有关创建和配置启用 Spark 的工作组的信息,请参阅 在 Athena 中创建启用 Spark 的工作组

    创建工作组后,您可以升级其分析引擎(例如,从 Athena 引擎版本 2 升级到 Athena 引擎版本 3),但无法更改其引擎类型。例如,Athena 引擎版本 3 的工作组不能更改为PySpark引擎版本 3 工作组。

    更新查询引擎 选择您希望在发布新的 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 查询。

    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 开发人员指南中的创建密钥

    设置加密_类型作为最低限度的加密

    可选。选择此选项可对工作组的所有用户的查询结果强制执行最低类型的加密。选择此选项会显示一个包含加密类型层次结构的表。该表还显示了当您将特定加密类型指定为最低加密类型时,允许工作组用户使用哪些加密类型。要使用此选项,覆盖客户端设置不得选择。

    有关更多信息,请参阅为工作组配置最低加密

    将查询指标发布到CloudWatch 在默认情况下,该字段会被选中。将查询指标发布到 CloudWatch。请参阅使用监控 Athena 查询CloudWatch指标
    Override client-side settings (覆盖客户端设置) 在默认情况下,该字段未被选中。如果选择该字段,工作组设置会应用于工作组中的所有查询并覆盖客户端设置。有关更多信息,请参阅工作组设置覆盖客户端设置
    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(工作组数据使用提示) 可选。当在此工作组中运行的查询在特定时间段内扫描指定数量的数据时,请设置多个提示阈值。警报是使用亚马逊实施的CloudWatch警报并适用于工作组中的所有查询。有关更多信息,请参见使用亚马逊CloudWatch警报在里面亚马逊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. 依次选择操作删除

  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”。

为工作组配置最低加密

作为 Athena SQL 工作组的管理员,您可以在 Amazon S3 中对来自该工作组的所有查询结果强制执行最低级别的加密。您可以使用此功能来确保查询结果永远不会以未加密状态存储在 Amazon S3 存储桶中。

当启用了最低加密的工作组中的用户提交查询时,他们只能将加密设置为您配置的最低级别,或者如果可用,则设置为更高的级别。Athena 以用户运行查询时指定的级别或工作组中设置的级别对查询结果进行加密。

以下级别可用:

  • 基本— 使用亚马逊 S3 托管密钥进行亚马逊 S3 服务器端加密 (SSE_S3)。

  • 中级— 使用 KMS 托管密钥进行服务器端加密 (SSE_KMS)。

  • 高级— 使用 KMS 托管密钥进行客户端加密 (CSE_KMS)。

注意事项和限制

  • 最低加密功能不适用于启用了 Apache Spark 的工作组。

  • 最低加密功能仅在工作组未启用时才起作用覆盖客户端设置选项。

  • 如果工作组有覆盖客户端设置选项已启用,以工作组加密设置为准,最低加密设置无效。

  • 启用此功能不收取任何费用。

为工作组启用最低限度加密

创建或更新 Athena SQL 工作组时,可以为该工作组的查询结果启用最低加密级别。为此,你可以使用 Athena 控制台、Athena API 或Amazon CLI。

使用 Athena 控制台启用最低限度加密

要开始使用 Athena 控制台创建或编辑您的工作组,请参阅创建工作组要么编辑工作组。配置您的工作组时,请使用以下步骤启用最低加密。

为工作组查询结果配置最低加密级别
  1. 其他配置部分,展开设置

  2. 清除覆盖客户端设置选项,或者验证它是否未被选中。

  3. 其他配置部分,展开查询结果配置

  4. 选择加密查询结果选项。

  5. 对于加密类型,选择您希望 Athena 用于工作组查询结果的加密方法 (SSE_S3SSE_KMS,或CSE_KMS)。这些加密类型对应于基本、中级和高级安全级别。

  6. 要对所有用户强制使用您选择的最低加密级别的加密方法,请选择设置加密_方法作为最低限度的加密

    选择此选项时,表格会显示当您选择的加密类型变为最低加密类型时允许用户使用的加密层次结构和加密级别。

  7. 创建工作组或更新工作组配置后,选择创建工作组要么保存更改

使用 Athena API 或Amazon CLI启用最低限度加密

当你使用CreateWorkGroup要么UpdateWorkGroup用于创建或更新 Athena SQL 工作组的 API,设置EnforceWorkGroupConfigurationfalseEnableMinimumEncryptionConfigurationtrue,然后使用EncryptionOption指定加密类型。

在Amazon CLI,使用create-work-group要么update-work-group用命令行事--configuration要么--configuration-updates参数并指定与 API 对应的选项。