使用工作组指定查询结果位置 - Amazon Athena

使用工作组指定查询结果位置

您使用 AWS Management Console、AWS CLI 或 Athena API 在工作组配置中指定查询结果位置。

使用 AWS CLI 时,请在运行 aws athena create-work-group 或者 aws athena update-work-group 命令时使用 --configuration 选项的 OutputLocation 参数指定查询结果位置。

使用 Athena 控制台指定工作组的查询结果位置
  1. 如果控制台导航窗格不可见,请选择左侧的扩展菜单。

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

  3. 在工作组列表中,选择要编辑的工作组的链接。

  4. 选择编辑

  5. 对于 Query result location and encryption(查询结果位置和加密),请执行以下操作之一:

    • Location of query result(查询结果位置)框中,输入 Amazon S3 中用于存储查询结果的存储桶的路径。在路径前添加前缀 s3://

    • 选择 Browse S3(浏览 S3),选择为您要使用的当前区域创建的 Amazon S3 存储桶,然后选择 Choose(选择)。

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

    注意

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

  7. (可选)如果要加密存储在 Amazon S3 中的查询结果,则选择 Encrypt query results(加密查询结果)。要详细了解 Athena 的加密,请参阅静态加密

  8. (可选)如果查询结果存储桶启用了 ACL,则选择 Assign bucket owner full control over query results(为存储桶拥有者分配对查询结果的完全控制权),以向存储桶拥有者授予对查询结果的完全控制权。例如,假设您的查询结果位置属于其他账户所有,则可以将所有权以及对查询结果的完全控制权授予该其他账户。

    如果存储桶的 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 用户指南》中的控制存储桶的对象所有权和禁用 ACL

  9. 如果您希望工作组的所有用户使用您指定的查询结果位置,请向下滚动到 Settings(设置)部分,然后选择 Override client-side settings(覆盖客户端侧设置)。

  10. 选择 Save changes(保存更改)