

# 外部 Hive メタストアクエリでカタログ名を省略する
<a name="datastores-hive-default-catalog"></a>

外部 Hive メタストアで DML クエリと DDL クエリを実行するとき、クエリエディタでカタログ名が選択されている場合は、カタログ名を省略することでクエリ構文を簡略化できます。この機能には一定の制限が適用されます。

## DML ステートメント
<a name="datastores-hive-default-catalog-dml-statements"></a>

**登録済みカタログでクエリを実行するには**

1. 次の例のように、構文 `[[data_source_name].database_name].table_name` を使用してデータベースの前にデータソース名を配置できます。

   ```
   select * from  "hms-catalog-1".hms_tpch.customer limit 10;
   ```

1. 使用するデータソースが、クエリエディタ内ですでに選択されている場合は、次の例のようにクエリからカタログ名を省略できます。

   ```
   select * from hms_tpch.customer limit 10:
   ```  
![\[デフォルトのデータソースを使用した DML クエリ。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/datastores-hive-default-catalog-2.png)

1. クエリで複数のデータソースを使用する場合、デフォルトのデータソース名のみ省略が可能で、デフォルト以外のすべてのデータソースについては、フルネームを指定する必要があります。

   例えば、クエリエディタでデフォルトのデータソースとして `AwsDataCatalog` が選択されているとします。次に抜粋した、クエリの `FROM` ステートメントでは、最初の 2 つのデータソース名については完全修飾名で指定していますが、3 番目のデータソースの名前は、AWS Glue データカタログに含まれているため省略しています。

   ```
   ...
   FROM ehms01.hms_tpch.customer,
            "hms-catalog-1".hms_tpch.orders,
            hms_tpch.lineitem
   ...
   ```

## DDL ステートメント
<a name="datastores-hive-default-catalog-ddl-statements"></a>

以下の 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` ステートメントは成功します。

![\[デフォルトのカタログを使用する DDL ステートメント。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/datastores-hive-default-catalog-4.png)


## JDBC 接続文字列でのデフォルトデータソースの指定
<a name="datastores-hive-default-catalog-jdbc"></a>

Athena JDBC ドライバーを使用して Athena を外部 Hive メタストアに接続する場合、[SQL Workbench](https://www.sql-workbench.eu/index.html) などの SQL エディタで、`Catalog` パラメータを使用して接続文字列にデフォルトのデータソース名を指定します。

**注記**  
最新の Athena JDBC ドライバーをダウンロードするには、「[Athena での JDBC ドライバーの使用](https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html)」を参照してください。

次の接続文字列は、デフォルトのデータソースに *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 の例を示しています。

![\[SQL Workbench での JDBC 接続 URL の設定。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/datastores-hive-default-catalog-jdbc-1.jpg)
