Apache Hive メタストアへの Athena の接続 - Amazon Athena

Apache Hive メタストアへの Athena の接続

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

注記

以下の手順には、Lambda 関数にカスタム IAM ロールを作成するための許可が必要です。カスタムロールを作成するアクセス許可がない場合は、Athena のリファレンス実装を使用して Lambda 関数を個別に作成してから、AWS Lambda コンソールを使用してこの関数に既存の IAM ロールを選択することができます。詳細については、「」を参照してください既存の IAM 実行ロールを使用した Hive メタストアへの Athena の接続

Athena を Hive メタストアに接続する
  1. https://console.aws.amazon.com/athena/ で Athena コンソールを開きます。

  2. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

    
                            展開メニューを選択します。
  3. [Data sources] (データソース) を選択します。

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

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

  6. [Next] を選択します。

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

  8. [Lambda function] (Lambda 関数) については、[Create Lambda function] (Lambda 関数の作成) を選択してから、[Create a new Lambda function in AWS Lambda] (AWS Lambda で新しい Lambda 関数を作成) を選択します。

    AWS Lambda コンソールに [AthenaHiveMetastoreFunction] ページが開きます。このページには、コネクタに関する詳細情報が表示されます。

    
                        AWS Lambda コンソールの[AthenaHiveMetastoreFunction] ページ。
  9. [Application settings] (アプリケーションの設定) で Lambda 関数のパラメータを入力します。

    • [LambdaFuncName] – 関数の名前を指定します。たとえば、myHiveMetastore です。

    • SpillLocation – Lambda 関数のレスポンスサイズが 4 MB を超える場合にスピルオーバーメタデータを保持するための、このアカウント内の Amazon S3 の場所を指定します。

    • [HMSUris] – ポート 9083 で Thrift プロトコルを使用する Hive メタストアホストの URI を入力します。thrift://<host_name>:9083 構文を使用してください。

    • [LambdaMemory] – 128 MB から 3008 MB までの値を指定します。Lambda 関数には、設定するメモリ量に比例した CPU サイクルが割り当てられます。デフォルトは 1024 です。

    • [LambdaTimeout] – Lambda 呼び出しの最大許容実行時間を 1~900 (900 秒は 15 分) の秒数で指定します。デフォルトは 300 秒 (5 分) です。

    • [VPCSecurityGroupIds] – Hive メタストアの VPC セキュリティグループ ID のカンマ区切りリストを入力します。

    • [VPCSubnetIds] – Hive メタストアの VPC サブネット ID のカンマ区切りリストを入力します。

  10. [I acknowledge that this app creates custom IAM roles and resource policies] (このアプリがカスタム IAM ロールとリソースポリシーを作成することを承認します) を選択した後、[Deploy] (デプロイ) を選択します。

    
                        AWS Lambda コンソールから Lambda 関数アプリをデプロイします。

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

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

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

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

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

  15. [Next] を選択します。

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

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

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

    SELECT * FROM hms-catalog-1.CustomerData.customers
  18. 作成したデータソースを表示、編集、または削除する方法については、「データソースの管理」を参照してください。