使用 Amazon 分析服务查询元数据表
可以使用诸如 Amazon Athena、Amazon Redshift 和 Amazon EMR 等 Amazon 分析服务查询 S3 托管式元数据表。
在可以运行查询之前,必须首先将您的 Amazon Web Services 账户和区域中的 Amazon 托管式 S3 表存储桶与 Amazon 分析服务集成。
使用 Amazon Athena 查询元数据表
在集成 Amazon 托管式 S3 表存储桶与 Amazon 分析服务之后,可以开始在 Athena 中查询元数据表。在查询中,执行以下操作:
-
将目录指定为
s3tablescatalog/aws-s3
,并将数据库指定为b_
(这通常是元数据表的命名空间)。general_purpose_bucket_name
-
确保将元数据表命名空间名称用引号 (
"
) 或反勾号 (`
) 括起来,否则查询可能无法运行。
有关更多信息,请参阅使用 Athena 查询 Amazon S3 表类数据存储服务。
还可以在 Athena 中从 Amazon S3 控制台运行查询。
以下过程使用 Amazon S3 控制台访问 Athena 查询编辑器,以便您可以使用 Amazon Athena 查询表。
查询元数据表
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择通用存储桶。
-
在通用存储桶选项卡上,选择存储桶,其中包含要查询的元数据表的元数据配置。
-
在存储桶详细信息页面上,选择元数据选项卡。
-
选择使用 Athena 查询表,然后为日记表或清单表选择一个示例查询。
-
Amazon Athena 控制台打开,Athena 查询编辑器随即出现,其中包含为您加载的示例 查询。根据您的用例需要修改此查询。
在查询编辑器中,目录字段应填充 s3tablescatalog/aws-s3。数据库字段应填充用于存储表的命名空间(例如,b_
general-purpose-bucket-name
)。注意
如果在目录和数据库字段中看不到这些值,请确保已在该区域中将 Amazon 托管式表存储桶与 Amazon 分析服务集成。有关更多信息,请参阅 将 Amazon S3 表类数据存储服务与 Amazon 分析服务集成。
-
要运行查询,请选择 Run(运行)。
注意
-
如果您在尝试在 Athena 中运行查询时收到错误
“权限不足,无法执行查询。主体对指定的资源没有任何权限”
,则必须向您授予对于表的必需 Lake Formation 权限。有关更多信息,请参阅 授予对表或数据库的 Lake Formation 权限。此外,确保您拥有查询元数据表的适当 Amazon Identity and Access Management(IAM)权限。有关更多信息,请参阅 用于查询元数据表的权限。
-
如果您在尝试运行查询时收到错误
“Iceberg 无法访问所请求的资源”
,请转到 Amazon Lake Formation 控制台,并确保您已授予自己对您创建的表存储桶目录和数据库(命名空间)的权限。授予这些权限时请勿指定表。有关更多信息,请参阅 授予对表或数据库的 Lake Formation 权限。
-
使用 Amazon Redshift 查询元数据表
在集成 Amazon 托管式 S3 表存储桶与 Amazon 分析服务集成后,请执行以下操作:
-
创建资源链接,该链接指向元数据表命名空间(通常为
b_
)。general_purpose_bucket_name
-
确保将元数据表命名空间名称用引号 (
"
) 或反勾号 (`
) 括起来,否则查询可能无法运行。
完成后,可以开始在 Amazon Redshift 控制台中查询元数据表。有关更多信息,请参阅使用 Amazon Redshift 访问 Amazon S3 表类数据存储服务。
使用 Amazon EMR 查询元数据表
要使用 Amazon EMR 查询元数据表,需要创建为 Apache Iceberg 配置的 Amazon EMR 集群,然后使用 Apache Spark 连接到元数据表。可以通过将 Amazon 托管式 S3 表存储桶与 Amazon 分析服务集成,或者使用适用于 Iceberg 的开源 Amazon S3 表类数据存储服务目录客户端目录,来对此进行设置。
注意
在 Amazon EMR 或其它第三方引擎上使用 Apache Spark 查询元数据表时,建议您使用 Amazon S3 表类数据存储服务 Iceberg REST 端点。如果不使用此端点,查询可能无法成功运行。有关更多信息,请参阅 使用 Amazon S3 表类数据存储服务 Iceberg REST 端点访问表。
有关更多信息,请参阅使用 Amazon EMR 访问 Amazon S3 表类数据存储服务。