了解 Athena 中的表、数据库和数据目录
在 Athena 中,目录、数据库和表是为底层源数据定义架构的元数据定义的容器。
Athena 使用以下术语来指代数据对象的层次结构:
-
数据来源 - 一组数据库
-
数据库 - 一组表
-
表 - 按一组行或列组织的数据
有时,这些对象也会用替代但等效的名称来指代,如下所示:
-
数据来源有时也称为目录。
-
数据库有时也称为架构。
注意
在您与 Athena 一起使用的联合数据来源中,此术语可能有所不同。有关更多信息,请参阅 了解联合表名限定词。
Athena 控制台中的以下示例查询使用 awsdatacatalog
数据来源、数据库 default
和表 some_table
。
对于每个数据集,Athena 中都需要存在一个表。表中的元数据让 Athena 知道数据在 Amazon S3 中的位置,并指定数据的结构,例如列名称、数据类型和表的名称。数据库是表的逻辑分组,并且只保存数据集的元数据和架构信息。
对于您要查询的每个数据集,Athena 必须有一个底层表,以便用来获取和返回查询结果。因此,在查询数据之前,必须在 Athena 中注册表。当您自动或手动创建表时,会发生注册。
您可以使用 AWS Glue 爬网程序自动创建表。有关 AWS Glue 和爬网程序的更多信息,请参阅 使用 AWS Glue 将 Athena 连接到 Amazon S3 中的数据。当 AWS Glue 创建表时,它会将其注册到自己的 AWS Glue Data Catalog 中。Athena 使用 AWS Glue Data Catalog 来存储和检索此元数据,以便当您运行查询来分析底层数据集时使用它。
无论采用何种方式创建表,表的创建过程都会向 Athena 注册数据集。此注册发生在 AWS Glue Data Catalog 中,并允许 Athena 对数据运行查询。在 Athena 查询编辑器中,使用标签 AwsDataCatalog
引用此目录(或数据来源)。
创建表后,您可以使用 SQL SELECT 语句来查询该表,包括获取源数据的特定文件位置。您的查询结果存储在 Amazon S3 中指定的查询结果位置。
您可通过 Amazon Web Services 账户访问到 AWS Glue Data Catalog。其他 AWS 服务 可以共享 AWS 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
)以在 AWS Glue Data Catalog 中创建表和数据库。
要开始使用,您可以使用 Athena 控制台中的教程,也可以参阅 Athena 文档中的分步指南。
-
要在 Athena 控制台中使用本教程,请选择控制台右上角的信息图标,然后选择教程选项卡。
-
有关在 Athena 查询编辑器中创建表和编写查询的分步教程,请参阅 开始使用。