本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在外部 Hive 中繼存儲查詢中省略目錄名稱
在外部 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工作台
注意
若要下載最新的 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 中設URL定的JDBC連線範例。