在外部 Hive 元存储查询中使用默认目录 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

在外部 Hive 元存储查询中使用默认目录

在外部 Hive 元存储上运行 DML 和 DDL 查询时,如果在查询编辑器中选择了目录名称,则可以通过省略该名称来简化查询语法。此功能将受到一些限制。

DML 语句

使用已注册目录运行查询

  1. 您可以使用语法 [[catalog_name].database_name].table_name 将目录名称置于数据库之前,如以下示例所示。

    select * from "hms-catalog-1".hms_tpch.customer limit 10;
    
                        具有完全限定目录名称的 DML 查询。
  2. 在将要使用的目录选定为数据源后,您可以在查询中省略目录名称,如以下示例所示。

    select * from hms_tpch.customer limit 10:
    
                        使用默认目录的 DML 查询。
  3. 对于多个目录,您只能省略默认目录名称。指定任何非默认目录的全名。例如,虽然以下查询中的 FROM 语句省略了 AWS Glue 目录的目录名称,但它完全限定了前两个目录名称。

    ... FROM ehms01.hms_tpch.customer, "hms-catalog-1".hms_tpch.orders, hms_tpch.lineitem ...
    
                        具有默认和非默认目录的 DML 查询。

DDL 语句

以下 Athena DDL 语句支持目录名称前缀。其他 DDL 语句中的目录名称前缀会导致语法错误。

SHOW TABLES [IN [catalog_name.]database_name] ['regular_expression'] SHOW TBLPROPERTIES [[catalog_name.]database_name.]table_name [('property_name')] SHOW COLUMNS IN [[catalog_name.]database_name.]table_name SHOW PARTITIONS [[catalog_name.]database_name.]table_name SHOW CREATE TABLE [[catalog_name.][database_name.]table_name DESCRIBE [EXTENDED | FORMATTED] [[catalog_name.][database_name.]table_name [PARTITION partition_spec] [col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )]

与 DML 语句一样,在数据源面板中选择目录和数据库时,可以从查询中省略目录前缀。

在以下示例中,在查询编辑器中选择了数据源和数据库。在从查询中省略 hms-catalog-1 前缀和 hms_tpch 数据库名称时,show create table customer 语句将成功。


                使用默认目录的 DDL 语句。