

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

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

** AWS Glue Data Catalog 集成**  
这是处理 S3 表存储桶中的表的推荐访问方法。这种集成使您可以通过 AWS Glue Data Catalog 统一查看多个 AWS 分析服务中的数据资产。集成后，可以使用 Athena 和 Amazon Redshift 等服务查询表。对表的访问是使用 IAM 权限进行管理的。要使用此集成访问表，您使用的 IAM 身份需要访问 S3 表类数据存储服务资源和操作、AWS Glue Data Catalog 对象以及您正在使用的查询引擎。有关更多信息，请参阅 [S3 表类数据存储服务的访问管理](s3-tables-setting-up.md)。

**直接访问**  
如果您需要使用 AWS Partner Network（APN）目录实现、自定义目录实现，或者只需要对单个表存储桶中的表执行基本读/写操作，请使用此方法。对表的访问是使用 IAM 权限进行管理的。要访问表，您使用的 IAM 身份需要访问您的表资源和 S3 表类数据存储服务操作。有关更多信息，请参阅 [S3 表类数据存储服务的访问管理](s3-tables-setting-up.md)。

## 通过 AWS Glue Data Catalog 集成访问表
<a name="table-access-gdc-integration"></a>

您可以将 S3 表存储桶与 AWS Glue Data Catalog 集成，以便通过 AWS 分析服务访问表，例如 Amazon Athena、Amazon Redshift 和 Quick。该集成会使用您的表资源填充 AWS Glue Data Catalog，并联合访问这些资源。有关集成的更多信息，请参阅[将 Amazon S3 表类数据存储服务与 AWS 分析服务集成](s3-tables-integrating-aws.md)。

以下 AWS 分析服务可以通过此集成访问表：
+ [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)
+ [AWS Glue ETL](s3-tables-integrating-glue.md)
+ [使用 SageMaker 融通式合作开发工作室查询 S3 表类数据存储服务](s3-tables-integrating-sagemaker.md)

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

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

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

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

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

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

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

对表的直接访问可通过附加到表和表存储桶的基于 IAM 身份的策略或基于资源的策略来进行管理。

### 通过 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)。

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

**支持的查询引擎**
+ 任何 Iceberg 客户端，包括 Spark、PyIceberg 等。
+ [Amazon EMR](s3-tables-integrating-emr.md)
+ [AWS 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)