了解表、数据库和数据目录 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

了解表、数据库和数据目录

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

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

无论采用何种方式创建表,表的创建过程都会向 Athena 注册数据集。此注册发生在 AWS Glue 数据目录中,并允许 Athena 对数据运行查询。

  • 要自动创建表,请在 Athena 中使用 AWS Glue 爬网程序。有关 AWS Glue 和爬网程序的更多信息,请参阅与 AWS Glue 集成。AWS Glue 在创建表时,会将其注册到自己的 AWS Glue Data Catalog中。Athena 使用 AWS Glue Data Catalog来存储和检索此元数据,以便当您运行查询来分析底层数据集时使用它。

AWS Glue Data Catalog可通过您的 AWS 账户访问。其他 AWS 服务可以共享 AWS Glue Data Catalog,因此,您可以使用 Athena 查看整个企业或组织内创建的数据库和表,反之亦然。此外,您可以通过 AWS Glue 自动发现数据架构,并提取、转换和加载 (ETL) 数据。

注意

在不提供 AWS Glue 的区域以及无法使用 AWS Glue Data Catalog的区域中,您可以使用内部 Athena 数据目录。

  • 要手动创建表,请执行以下操作:

    • 使用 Athena 控制台运行创建表向导

    • 使用 Athena 控制台在查询编辑器中编写 Hive DDL 语句。

    • 使用 Athena API 或 CLI,通过 DDL 语句执行 SQL 查询。

    • 使用 Athena JDBC 或 ODBC 驱动程序。

当您手动创建表和数据库时,Athena 会在后台使用 HiveQL 数据定义语言 (DDL) 语句(例如 CREATE TABLECREATE DATABASEDROP TABLE)来在 AWS Glue 数据目录中或在其内部数据目录中(对于不提供 AWS Glue 的区域)创建表和数据库。

注意

如果您在 2017 年 8 月 14 日之前在 Athena 中创建了表,则它们是在一个 Athena 托管的数据目录中创建的,该数据目录与 AWS Glue 数据目录并列存在,直到您选择更新为止。有关更多信息,请参阅分步升级到 AWS Glue 数据目录

当您在后台查询现有表时,Amazon Athena 会使用 Presto,它是一种分布式 SQL 引擎。我们有使用 Athena 中的示例数据创建的示例,可向您显示如何创建表,然后使用 Athena 针对它发出查询。Athena 还在控制台中有一个教程,可帮助您开始根据在 Amazon S3 中存储的数据创建表。

  • 有关在 Athena 查询编辑器中创建表和编写查询的分步教程,请参阅入门

  • 在控制台中运行 Athena 教程。如果您第一次登录到 https://console.amazonaws.cn/athena/,它会自动启动。您还可以在控制台中选择 Tutorial (教程) 来启动它。