

# 使用 Athena 查询 Amazon S3 表类数据存储服务
<a name="s3-tables-integrating-athena"></a>

Amazon Athena 是一种交互式查询服务，可用于通过使用标准 SQL 直接分析 Amazon S3 中的数据。有关更多信息，请参阅《Amazon Athena 用户指南》中的 [什么是 Amazon Athena？](https://docs.amazonaws.cn//athena/latest/ug/what-is.html)**。

将表存储桶与 Amazon 分析服务集成后，可以使用 Athena 对 S3 表运行数据定义语言（DDL）、数据操作语言（DML）和数据查询语言（DQL）查询。有关如何查询表存储桶中的表的更多信息，请参阅《Amazon Athena 用户指南》**中的[注册 S3 表存储桶目录](https://docs.amazonaws.cn//athena/latest/ug/gdc-register-s3-table-bucket-cat.html)。

还可以在 Athena 中从 Amazon S3 控制台运行查询。

**重要**  
创建表时，请确保在表名称和表定义中全部使用小写字母。例如，请确保列名称全部为小写。如果表名称或表定义包含大写字母，则 Amazon Lake Formation 或 Amazon Glue Data Catalog 不支持该表。在这种情况下，Amazon Athena 等 Amazon 分析服务将无法看到您的表，即使表存储桶与 Amazon 分析服务集成，也不例外。  
如果表定义包含大写字母，则在 Athena 中运行 `SELECT` 查询时会收到以下错误消息：“GENERIC\$1INTERNAL\$1ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.”

## 使用 S3 控制台和 Amazon Athena
<a name="query-table-console"></a>

以下过程使用 Amazon S3 控制台访问 Athena 查询编辑器，以便您可以使用 Amazon Athena 查询表。

**注意**  
在执行以下步骤之前，请确保您已在此区域中将表存储桶与 Amazon 分析服务集成。有关更多信息，请参阅 [将 Amazon S3 表类数据存储服务与 Amazon 分析服务集成](s3-tables-integrating-aws.md)。

**查询表**

1. 登录到 Amazon Web Services 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)。

1. 在左侧导航窗格中，选择**表存储桶**。

1. 在**表存储桶**页面上，选择包含要查询的表的存储桶。

1. 在存储桶详细信息页面上，选择要查询的表名称旁边的选项按钮。

1. 选择**使用 Athena 查询表**。

1. Amazon Athena 控制台打开，Athena 查询编辑器随即出现，其中包含为您加载的示例 `SELECT` 查询。根据您的用例需要修改此查询。

   在查询编辑器中，**目录**字段中应填充 **s3tablescatalog/**，后跟表存储桶的名称，例如 **s3tablescatalog/*amzn-s3-demo-bucket***。**数据库**字段中应填充在其中存储表的命名空间。
**注意**  
如果您在**目录**和**数据库**字段中看不到这些值，请确保您已在该区域中将表存储桶与 Amazon 分析服务集成。有关更多信息，请参阅 [将 Amazon S3 表类数据存储服务与 Amazon 分析服务集成](s3-tables-integrating-aws.md)。

1. 要运行查询，请选择 **Run**（运行）。
**注意**  
如果您在尝试在 Athena 中运行查询时收到错误“权限不足，无法执行查询。主体对指定的资源没有任何权限”，则必须向您授予对于表的必需 Lake Formation 权限。有关更多信息，请参阅 [授予对表或数据库的 Lake Formation 权限](grant-permissions-tables.md#grant-lf-table)。
如果您在尝试运行查询时收到错误“Iceberg 无法访问所请求的资源”，请转到 Amazon Lake Formation 控制台，并确保您已授予自己对您创建的表存储桶目录和数据库（命名空间）的权限。授予这些权限时请勿指定表。有关更多信息，请参阅 [授予对表或数据库的 Lake Formation 权限](grant-permissions-tables.md#grant-lf-table)。
如果在 Athena 中运行 `SELECT` 查询时收到以下错误消息，则此消息是由表名称中或表定义的列名称中具有大写字母而引起的：“GENERIC\$1INTERNAL\$1ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.” 确保表名称和列名称全部为小写。