本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
當您在外部 Hive 中繼存放區上執行 DML 和 DDL 查詢時,可以藉由省略目錄名稱 (如果查詢編輯器中已選取該名稱) 來簡化查詢語法。此功能有某些限制。
DML 陳述式
使用已註冊的目錄執行查詢
-
您可以在資料庫使用語法
[[
之前放置資料來源,如下列範例所示。data_source_name
].database_name
].table_name
select * from "hms-catalog-1".hms_tpch.customer limit 10;
-
如果您想要使用的資料來源已在查詢編輯器中選取,則可以省略查詢中的名稱,如下列範例所示。
select * from hms_tpch.customer limit 10:
-
當您在查詢中使用多個資料來源時,只能省略預設資料來源名稱,並且必須為任何非預設資料來源指定完整名稱。
例如,假設已在查詢編輯器中選取
AwsDataCatalog
作為預設資料來源。下列查詢摘錄中的FROM
陳述式完全符合前兩個資料來源名稱的資格,但會省略第三個資料來源的名稱,因為它位於 AWS Glue 資料目錄中。... FROM ehms01.hms_tpch.customer, "hms-catalog-1".hms_tpch.orders, hms_tpch.lineitem ...
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
陳述式成立,即便查詢本身省略了 hms-catalog-1
字首和 hms_tpch
資料庫名稱。

在 JDBC 連接字串中指定預設資料來源
當使用 Athena JDBC 驅動程式將 Athena 連接到外部 Hive 中繼存放區時,您可以使用 Catalog
參數在 SQL 編輯器 (例如 SQL Workbench
注意
如需下載最新的 Athena JDBC 驅動程式,請參閱透過 JDBC 驅動程式使用 Athena。
下列連接字串指定預設資料來源 hms-catalog-name
。
jdbc:awsathena://AwsRegion=us-east-1;S3OutputLocation=s3://amzn-s3-demo-bucket/lambda/results/;Workgroup=AmazonAthenaPreviewFunctionality;Catalog=hms-catalog-name
;
下圖即為在 SQL Workbench 中設定的 JDBC 連接 URL 範例。
