了解表、数据库和数据目录 - 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来存储和检索此元数据,以便当您运行查询来分析底层数据集时使用它。

创建好一张桌子后,您可以使用 选定后执行 进行查询,包括获得 源数据的特定文件位置. 您的查询结果存储在 Amazon S3 在 您指定的查询结果位置.

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

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

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

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

    • 使用 Athena API或CLI,以使用DDL语句运行一个查询串。

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

当您手动创建表和数据库时,Athena 会在后台使用 HiveQL 数据定义语言 (DDL) 语句(例如 CREATE TABLECREATE DATABASEDROP TABLE)以在 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 (教程) 来启动它。