

# 了解 Athena 中的表、数据库和数据目录
<a name="understanding-tables-databases-and-the-data-catalog"></a>

在 Athena 中，目录、数据库和表是为底层源数据定义架构的元数据定义的容器。

Athena 使用以下术语来指代数据对象的层次结构：
+ **数据来源** - 一组数据库
+ **数据库** - 一组表
+ **表** - 按一组行或列组织的数据

有时，这些对象也会用替代但等效的名称来指代，如下所示：
+ 数据来源有时也称为目录。
+ 数据库有时也称为架构。

**注意**  
在您与 Athena 一起使用的联合数据来源中，此术语可能有所不同。有关更多信息，请参阅 [了解联合表名限定词](tables-qualifiers.md)。

对于每个数据集，Athena 中都需要存在一个表。表中的元数据让 Athena 知道数据在 Amazon S3 中的位置，并指定数据的结构，例如列名称、数据类型和表的名称。数据库是表的逻辑分组，并且只保存数据集的元数据和架构信息。

对于您要查询的每个数据集，Athena 必须有一个底层表，以便用来获取和返回查询结果。因此，在查询数据之前，必须在 Athena 中注册表。当您自动或手动创建表时，会发生注册。

您可以使用 Amazon Glue 爬网程序自动创建表。有关 Amazon Glue 和爬网程序的更多信息，请参阅 [使用 Amazon Glue Data Catalog 连接数据](data-sources-glue.md)。当 Amazon Glue 创建表时，它会将其注册到自己的 Amazon Glue Data Catalog 中。Athena 使用 Amazon Glue Data Catalog 来存储和检索此元数据，以便当您运行查询来分析底层数据集时使用它。

无论采用何种方式创建表，表的创建过程都会向 Athena 注册数据集。此注册发生在 Amazon Glue Data Catalog 中，并允许 Athena 对数据运行查询。在 Athena 查询编辑器中，使用标签 `AwsDataCatalog` 引用此目录（或数据来源）。

创建表后，您可以使用 [SQL SELECT](select.md) 语句来查询该表，包括获取[源数据的特定文件位置](select.md#select-path)。您的查询结果存储在 Amazon S3 中[指定的查询结果位置](query-results-specify-location.md)。

您可通过 Amazon Web Services 账户访问到 Amazon Glue Data Catalog。其他 Amazon Web Services 服务 可以共享 Amazon Glue Data Catalog，因此，您可以使用 Athena 查看在整个企业内创建的数据库和表，反之亦然。
+ 要手动创建表，请执行以下操作：
  + 使用 Athena 控制台运行**创建表向导**。
  + 使用 Athena 控制台在查询编辑器中编写 Hive DDL 语句。
  + 使用 Athena API 或 CLI，通过 DDL 语句运行 SQL 查询。
  + 使用 Athena JDBC 或 ODBC 驱动程序。

当您手动创建表和数据库时，Athena 会在后台使用 HiveQL 数据定义语言 (DDL) 语句（例如`CREATE TABLE`、`CREATE DATABASE` 和 `DROP TABLE`）以在 Amazon Glue Data Catalog 中创建表和数据库。

要开始使用，您可以使用 Athena 控制台中的教程，也可以参阅 Athena 文档中的分步指南。
+ 要在 Athena 控制台中使用本教程，请选择控制台右上角的信息图标，然后选择**教程**选项卡。
+ 有关在 Athena 查询编辑器中创建表和编写查询的分步教程，请参阅 [开始使用](getting-started.md)。