

# Athena を Apache Hive メタストアに接続する
<a name="connect-to-data-source-hive-connecting-athena-to-an-apache-hive-metastore"></a>

Athena を Apache Hive メタストアに接続するには、Lambda 関数を作成して設定する必要があります。基本的な実装では、Athena マネジメントコンソールから必要なステップのすべてを実行できます。

**注記**  
以下の手順には、Lambda 関数にカスタム IAM ロールを作成するための許可が必要です。カスタムロールを作成するアクセス許可がない場合は、Athena の[リファレンス実装](connect-to-data-source-hive.md#connect-to-a-data-source-hive-features-reference-implementation)を使用して Lambda 関数を個別に作成してから、AWS Lambda コンソールを使用してこの関数に既存の IAM ロールを選択することができます。詳細については、「」を参照してください[既存の IAM 実行ロールを使用して Hive メタストアに Athena を接続する](connect-data-source-hive-existing-iam-role.md)

**Athena を Hive メタストアに接続する**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) で Athena コンソールを開きます。

1. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。  
![\[展開メニューを選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/nav-pane-expansion.png)

1. **[データソースとカタログ]** を選択します。

1. コンソールの右上で、[**Create data source**] (データソースの作成) を選択します。

1. [**Choose a data source**] (データソースの選択) ページの [**Data sources**] (データソース) で、**[S3 - Apache Hive metastore]** (S3 – Apache Hive メタストア) を選択します。

1. [**次へ**] を選択します。

1. **[Data source details]** (データソースの詳細) セクションの **[Data source name]** (データソース名) に、Athena からデータソースをクエリする際に SQL ステートメントで使用する名前を入力します。名前は最大 127 文字で、アカウント内で一意である必要があります。この設定は、作成後に変更することはできません。有効な文字は、a～z、A～Z、0～9、\$1 (アンダースコア)、@ (at マーク)、および - (ハイフン) です。`awsdatacatalog`、`hive`、`jmx`、および `system` の名前は Athena によって予約されており、データソース名には使用できません。

1. **[Lambda 関数]** で **[Lambda 関数の作成]** を選択してから、**[AWS Lambda で新しい関数を作成]** を選択します。

   AWS Lambda コンソールに [**AthenaHiveMetastoreFunction**] ページが開きます。このページには、コネクタに関する詳細情報が表示されます。  
![\[AWS Lambda コンソールの[AthenaHiveMetastoreFunction] ページ。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/connect-to-data-source-hive-4.png)

1. [**Application settings**] (アプリケーションの設定) で Lambda 関数のパラメータを入力します。
   + **[LambdaFuncName]** – 関数の名前を指定します。たとえば、**myHiveMetastore** です。
   + **[SpillLocation]** (スピル場所) - Lambda 関数のレスポンスサイズが 4 MB を超える場合にスピルオーバーメタデータを保持するための、このアカウント内の Amazon S3 の場所を指定します。
   + **[HMSUris]** – ポート 9083 で Thrift プロトコルを使用する Hive メタストアホストの URI を入力します。`thrift://<host_name>:9083` 構文を使用してください。
   + **[LambdaMemory]** - 128 MB から 3,008 MB までの値を指定します。Lambda 関数には、設定するメモリ量に比例した CPU サイクルが割り当てられます。デフォルトは 1024 です。
   + **[LambdaTimeout]** – Lambda 呼び出しの最大許容実行時間を 1～900 (900 秒は 15 分) の秒数で指定します。デフォルトは 300 秒 (5 分) です。
   + **[VPCSecurityGroupIds]** – Hive メタストアの VPC セキュリティグループ ID のカンマ区切りリストを入力します。
   + **[VPCSubnetIds]** – Hive メタストアの VPC サブネット ID のカンマ区切りリストを入力します。

1. **[I acknowledge that this app creates custom IAM roles and resource policies]** (このアプリがカスタム IAM ロールとリソースポリシーを作成することを承認します) を選択した後、**[Deploy]** (デプロイ) を選択します。  
![\[AWS Lambda コンソールから Lambda 関数アプリをデプロイします。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/connect-to-data-source-hive-4a.png)

   デプロイが完了すると、Lambda アプリケーションのリストにこの関数が表示されます。Hive メタストア関数がアカウントにデプロイされたところで、それを使用するように Athena を設定できます。

1. Athena コンソールの [**Connect data sources**] (データソースを接続) ページに戻ります。

1. [**Lambda function**] セクションで、Lambda 関数の検索ボックスの横にある更新アイコンをクリックします。利用できる関数のリストを更新すると、新しく作成した関数がリストに表示されます。

1. Lambda コンソールで作成した関数の名前を選択します。Lambda 関数の ARN が表示されます。

1. (オプション) **[Tags]** (タグ) でキーと値のペアを追加して、このデータソースに関連付けます。タグの詳細については、[Athena リソースにタグ付けする](tags.md)を参照してください。

1. [**次へ**] を選択します。

1. [**Review and create**] (確認と作成) ページで、データソースの詳細について確認し、[**Add data source**] (データソースの追加) を選択します。

1. データソースのページの [**データソースの詳細**] セクションには、新しいコネクタに関する情報が表示されます。

   これで、指定した **[Data source name]** (データソース名) を使用して、Athena の SQL クエリで Hive メタストアを参照できるようになります。SQL クエリで、次の構文例を使用し、`hms-catalog-1` を以前に指定したカタログ名に置き換えます。

   ```
   SELECT * FROM hms-catalog-1.CustomerData.customers 
   ```

1. 作成したデータソースを表示、編集、または削除する方法については、「[データソースを管理する](data-sources-managing.md)」を参照してください。