有多种方法可以访问 Amazon S3 表存储桶中的表,您可以使用 Amazon SageMaker 智能湖仓将表与 AWS 分析服务集成,也可以直接使用 Amazon S3 表类数据存储服务 Iceberg REST 端点或适用于 Apache Iceberg 的 Amazon S3 表类数据存储服务目录来访问表。您使用的访问方法将取决于您的目录设置、治理模式和访问控制需要。下文概述了这些访问方法。
选择访问方法
- Amazon SageMaker 智能湖仓集成
这是处理 S3 表存储桶中的表的推荐访问方法。该集成为您提供了统一的表管理、集中式治理以及跨多个 AWS 分析服务的精细访问控制。
- 直接访问
如果您需要使用 AWS Partner Network(APN)目录实现、自定义目录实现,或者只需要对单个表存储桶中的表执行基本读/写操作,请使用此方法。
通过 Amazon SageMaker 智能湖仓集成访问表
您可以将 S3 表存储桶与 Amazon SageMaker 智能湖仓集成,以便通过 AWS 分析服务访问表,例如 Amazon Athena、Amazon Redshift 和 Amazon QuickSight。Amazon SageMaker 智能湖仓统一了您在 Amazon S3 数据湖和 Amazon Redshift 数据仓库中的数据,因此,您可以在单个数据副本上构建分析、机器学习(ML)和生成式人工智能应用程序。该集成会使用您的表资源填充 AWS Glue Data Catalog,并与 AWS Lake Formation 联合访问这些资源。有关集成的更多信息,请参阅将 Amazon S3 表类数据存储服务与 AWS 分析服务结合使用。
该集成通过 AWS Lake Formation 支持精细的访问控制,以提供额外的安全性。Lake Formation 结合使用自己的权限模型和 IAM 权限模型,来控制对表资源和基础数据的访问权限。这意味着,访问表的请求必须通过由 IAM 和 Lake Formation 执行的权限检查。有关更多信息,请参阅《AWS Lake Formation Developer Guide》中的 Lake Formation permissions overview。
以下 AWS 分析服务可以通过此集成访问表:
使用 AWS GlueIceberg REST 端点访问表
在将 S3 表存储桶与 Amazon SageMaker 智能湖仓集成后,还可以使用 AWS Glue Iceberg REST 端点,从支持 Iceberg 的第三方查询引擎连接到 S3 表。有关更多信息,请参阅 使用 AWS GlueIceberg REST 端点访问 Amazon S3 表。
当您要从 Spark、PyIceberg 或其它 Iceberg 兼容的客户端访问表时,我们建议使用 AWS Glue Iceberg REST 端点。
以下客户端可以直接通过 AWS Glue Iceberg REST 端点访问表:
任何 Iceberg 客户端,包括 Spark、PyIceberg 等。
直接访问表
您可以通过将 S3 表类数据存储服务管理操作与 Apache Iceberg 分析应用程序连接起来的方法,直接从开源查询引擎访问表。有两种直接访问方法:Amazon S3 表类数据存储服务 Iceberg REST 端点或适用于 Apache Iceberg 的 Amazon S3 表类数据存储服务目录。建议使用 REST 端点。
如果您访问自行管理的目录实现中的表,或者只需要对单个表存储桶中的表执行基本的读/写操作,我们建议您直接访问。对于其它访问场景,我们建议使用 Amazon SageMaker 智能湖仓集成。
对表的直接访问可通过附加到表和表存储桶的基于 IAM 身份的策略或基于资源的策略来进行管理。直接访问表时,您无需管理表的 Lake Formation 权限。
通过 Amazon S3 表类数据存储服务 Iceberg REST 端点访问表
您可以使用 Amazon S3 表类数据存储服务 Iceberg REST 端点,通过 HTTP 端点直接从任何 Iceberg REST 兼容的客户端访问您的表,有关更多信息,请参阅使用 Amazon S3 表类数据存储服务 Iceberg REST 端点访问表。
以下 AWS 分析服务和查询引擎可以使用 Amazon S3 表类数据存储服务 Iceberg REST 端点直接访问表:
支持的查询引擎
任何 Iceberg 客户端,包括 Spark、PyIceberg 等。
通过适用于 Apache Iceberg 的 Amazon S3 表类数据存储服务目录直接访问表
也可以通过使用 S3 表类数据存储服务客户端目录直接从查询引擎(例如 Apache Spark)访问表,有关更多信息,请参阅使用适用于 Apache Iceberg 的 Amazon S3 表类数据存储服务目录访问 Amazon S3 表。但是,S3 建议使用 Amazon S3 表类数据存储服务 Iceberg REST 端点进行直接访问,因为它支持更多应用程序,而无需语言或引擎特定的代码。
以下查询引擎可以使用客户端目录直接访问表: