

# 访问表数据
<a name="s3-tables-access"></a>

有多种方法可以访问 Amazon S3 表存储桶中的表，您可以使用 Amazon SageMaker 智能湖仓将表与 Amazon 分析服务集成，也可以直接使用 Amazon S3 表类数据存储服务 Iceberg REST 端点或适用于 Apache Iceberg 的 Amazon S3 表类数据存储服务目录来访问表。您使用的访问方法将取决于您的目录设置、治理模式和访问控制需要。下文概述了这些访问方法。

**Amazon SageMaker 智能湖仓集成**  
这是处理 S3 表存储桶中的表的推荐访问方法。该集成为您提供了统一的表管理、集中式治理以及跨多个 Amazon 分析服务的精细访问控制。集成后，可以在 Athena 和 Amazon Redshift 等服务中查询表。

**直接访问**  
如果您需要使用 Amazon Partner Network（APN）目录实现、自定义目录实现，或者只需要对单个表存储桶中的表执行基本读/写操作，请使用此方法。

**注意**  
要访问表，您使用的 IAM 身份需要访问您的表资源和 S3 表类数据存储服务操作。有关更多信息，请参阅 [S3 表类数据存储服务的访问管理](s3-tables-setting-up.md)。

## 通过 Amazon SageMaker 智能湖仓集成访问表
<a name="table-access-gdc-integration"></a>

您可以将 S3 表存储桶与 Amazon SageMaker 智能湖仓集成，以便通过 Amazon 分析服务访问表，例如 Amazon Athena、Amazon Redshift 和 Quick。Amazon SageMaker 智能湖仓统一了您在 Amazon S3 数据湖和 Amazon Redshift 数据仓库中的数据，因此，您可以在单个数据副本上构建分析、机器学习（ML）和生成式人工智能应用程序。该集成会使用您的表资源填充 Amazon Glue Data Catalog，并与 Amazon Lake Formation 联合访问这些资源。有关集成的更多信息，请参阅[将 Amazon S3 表类数据存储服务与 Amazon 分析服务集成](s3-tables-integrating-aws.md)。

该集成通过 Amazon Lake Formation 支持精细的访问控制，以提供额外的安全性。Lake Formation 结合使用自己的权限模型和 IAM 权限模型，来控制对表资源和基础数据的访问权限。这意味着，访问表的请求必须通过由 IAM 和 Lake Formation 执行的权限检查。有关更多信息，请参阅《Amazon Lake Formation Developer Guide》**中的 [Lake Formation permissions overview](https://docs.amazonaws.cn/lake-formation/latest/dg/lf-permissions-overview.html)。

以下 Amazon 分析服务可以通过此集成访问表：
+ [Amazon Athena](s3-tables-integrating-athena.md)
+ [Amazon Redshift](s3-tables-integrating-redshift.md)
+ [Amazon EMR](s3-tables-integrating-emr.md)
+ [Quick](s3-tables-integrating-quicksight.md)
+ [Amazon Data Firehose](s3-tables-integrating-firehose.md)
+ [Amazon Glue ETL](s3-tables-integrating-glue.md)
+ [使用 SageMaker 融通式合作开发工作室查询 S3 表类数据存储服务](s3-tables-integrating-sagemaker.md)

### 使用 Amazon Glue Iceberg REST 端点访问表
<a name="table-access-glue-irc"></a>

在将 S3 表存储桶与 Amazon SageMaker 智能湖仓集成后，还可以使用 Amazon Glue Iceberg REST 端点，从支持 Iceberg 的第三方查询引擎连接到 S3 表。有关更多信息，请参阅 [使用 Amazon Glue Iceberg REST 端点访问 Amazon S3 表](s3-tables-integrating-glue-endpoint.md)。

当您要从 Spark、PyIceberg 或其它 Iceberg 兼容的客户端访问表时，我们建议使用 Amazon Glue Iceberg REST 端点。

以下客户端可以直接通过 Amazon Glue Iceberg REST 端点访问表：
+ 任何 Iceberg 客户端，包括 Spark、PyIceberg 等。

## 直接访问表
<a name="table-access-direct"></a>

 您可以通过将 S3 表类数据存储服务管理操作与 Apache Iceberg 分析应用程序连接起来的方法，直接从开源查询引擎访问表。有两种直接访问方法：Amazon S3 表类数据存储服务 Iceberg REST 端点或适用于 Apache Iceberg 的 Amazon S3 表类数据存储服务目录。建议使用 REST 端点。

如果您访问自行管理的目录实现中的表，或者只需要对单个表存储桶中的表执行基本的读/写操作，我们建议您直接访问。对于其它访问场景，我们建议使用 Amazon SageMaker 智能湖仓集成。

对表的直接访问可通过附加到表和表存储桶的基于 IAM 身份的策略或基于资源的策略来进行管理。直接访问表时，您无需管理表的 Lake Formation 权限。

### 通过 Amazon S3 表类数据存储服务 Iceberg REST 端点访问表
<a name="access-tables-irc"></a>

您可以使用 Amazon S3 表类数据存储服务 Iceberg REST 端点，通过 HTTP 端点直接从任何 Iceberg REST 兼容的客户端访问您的表，有关更多信息，请参阅[使用 Amazon S3 表类数据存储服务 Iceberg REST 端点访问表](s3-tables-integrating-open-source.md)。

以下 Amazon 分析服务和查询引擎可以使用 Amazon S3 表类数据存储服务 Iceberg REST 端点直接访问表：

**支持的查询引擎**
+ 任何 Iceberg 客户端，包括 Spark、PyIceberg 等。
+ [Amazon EMR](s3-tables-integrating-emr.md)
+ [Amazon Glue ETL](s3-tables-integrating-glue.md)

### 通过适用于 Apache Iceberg 的 Amazon S3 表类数据存储服务目录直接访问表
<a name="access-client-catalog"></a>

也可以通过使用 S3 表类数据存储服务客户端目录直接从查询引擎（例如 Apache Spark）访问表，有关更多信息，请参阅[使用适用于 Apache Iceberg 的 Amazon S3 表类数据存储服务目录访问 Amazon S3 表](s3-tables-client-catalog.md)。但是，S3 建议使用 Amazon S3 表类数据存储服务 Iceberg REST 端点进行直接访问，因为它支持更多应用程序，而无需语言或引擎特定的代码。

以下查询引擎可以使用客户端目录直接访问表：
+ [Apache Spark](s3-tables-client-catalog.md#s3-tables-integrating-open-source-spark)