外部 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
ステートメントでは、最初の 2 つのデータソース名については完全修飾名で指定していますが、3 番目のデータソースの名前は、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
が選択されています。クエリ自体から、プレフィックス hms-catalog-1
と データベース名 hms_tpch
が省略されていても、show
create table customer
ステートメントは成功します。
JDBC 接続文字列でのデフォルトデータソースの指定
Athena JDBC ドライバーを使用して Athena を外部 Hive メタストアに接続する場合、SQL WorkbenchCatalog
パラメータを使用して接続文字列にデフォルトのデータソース名を指定します。
注記
最新の Athena JDBC ドライバーをダウンロードするには、「Athena での JDBC ドライバーの使用」を参照してください。
次の接続文字列は、デフォルトのデータソースに 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 の例を示しています。