分步升级到 AWS Glue 数据目录 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

分步升级到 AWS Glue 数据目录

目前,所有支持 Athena 的区域也支持 AWS Glue 数据目录。通过使用 AWS Glue 数据目录可让数据库和表对 Athena 可用,反之亦然。

如果您在某个区域支持 AWS Glue 之前已使用 Athena 或 Amazon Redshift Spectrum 创建数据库和表,则可以升级 Athena 以使用 AWS Glue 数据目录。

如果您使用的是较旧的 Athena 托管数据目录,则会在控制台顶部看到升级选项。Athena 托管目录中的元数据在 AWS Glue 数据目录中不可用,反之亦然。虽然目录并排存在,但无法在 AWS Glue 或 Athena 中创建具有相同名称的表或数据库。这可在您执行升级时防止名称冲突。有关使用 AWS Glue 数据目录的优势的更多信息,请参阅常见问题解答:升级到 AWS Glue 数据目录

Athena 控制台中的向导可指导您完成升级到 AWS Glue 控制台的过程。升级只需几分钟的时间,并且您可以在停止的位置恢复操作。有关每个升级步骤的信息,请参阅此部分中的各个主题。

有关使用 AWS Glue 数据目录中的数据和表的信息,请参阅将 Athena 与 AWS Glue 结合使用时的最佳实践中的准则。

步骤 1 – 允许用户执行升级

默认情况下,允许用户执行升级的操作在任何策略 (包括任何托管策略) 中都是不允许的。由于 AWS Glue 数据目录在整个账户中都是共享的,因此这种额外的故障保护可防止有人意外迁移目录。

在可以执行升级之前,您需要使用一个允许升级操作的策略语句将客户托管的 IAM 策略附加到执行迁移的用户。

下面是一个示例策略语句。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:ImportCatalogToGlue" ], "Resource": [ "*" ] } ] }

步骤 2 - 更新与 Athena 用户关联的客户托管/内联策略

如果您有与 Athena 用户关联的客户托管或内联 IAM 策略,则需要更新一个或多个策略以允许 AWS Glue 所需的操作。如果您使用 Athena 托管策略,则无需执行任何操作。下面的示例策略中列出了允许的 AWS Glue 策略。有关完整策略声明,请参阅有关用户访问权限的 IAM 策略

{ "Effect":"Allow", "Action":[ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition" ], "Resource":[ "*" ] }

步骤 3 - 在 Athena 控制台中选择升级

在您进行所需的 IAM 策略更新后,在 Athena 控制台中选择 Upgrade (升级)。Athena 将您的元数据移动到 AWS Glue 数据目录。升级只需要几分钟。在您升级后,Athena 控制台会有一个链接,用以从 Athena 中打开 AWS Glue 目录管理器。

使用控制台创建表时,您可以使用 AWS Glue 爬网程序创建表。有关更多信息,请参阅使用 AWS Glue 爬网程序