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

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

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

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

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

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

创建表后,您可以使用 SQL SELECT 语句来查询该表,包括获取源数据的特定文件位置。您的查询结果存储在 Amazon S3 中指定的查询结果位置

您可通过亚马逊云科技账户访问到 Amazon Glue Data Catalog。其他 Amazon Web Services 可以共享 Amazon Glue Data Catalog,因此,您可以使用 Athena 查看在整个企业内创建的数据库和表,反之亦然。此外,您可以通过 Amazon Glue 自动发现数据架构,并提取、转换和加载 (ETL) 数据。

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

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

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

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

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

当您手动创建表和数据库时,Athena 会在后台使用 HiveQL 数据定义语言 (DDL) 语句(例如CREATE TABLECREATE DATABASEDROP TABLE)以在 Amazon Glue Data Catalog 中创建表和数据库。

注意

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

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

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

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