外部 Hive メタストアの Athena データコネクターの使用 - Amazon Athena

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

外部 Hive メタストアの Athena データコネクターの使用

外部 Hive メタストア用の Amazon Athena データコネクタを使用して、Apache Hive メタストアを使用する Amazon S3 のデータセットをクエリできます。メタデータを AWS Glue データカタログに移行する必要はありません。Athena マネジメントコンソールで、プライベート VPC にある Hive メタストアと通信するように Lambda 関数を設定して、それをメタストアに接続します。Lambda から Hive メタストアへの接続は、プライベート Amazon VPC チャンネルによって保護され、パブリックインターネットを使用しません。独自の Lambda 関数コードを指定することも、外部 Hive メタストア用の Athena データコネクタのデフォルト実装を使用することもできます。

機能の概要

外部 Hive メタストア用の Athena データコネクタを使用すると、次のタスクを実行できます。

  • Athena コンソールを使用して、カスタムカタログを登録し、それらを使用してクエリを実行する。

  • 異なる外部 Hive メタストア用の Lambda 関数を定義し、Athena クエリで結合します。

  • 同じ Athena クエリで AWS Glue データカタログと外部 Hive メタストアを使用します。

  • クエリ実行コンテキストのカタログを現在のデフォルトカタログとして指定する。これにより、クエリのデータベース名にカタログ名のプレフィックスを付ける必要がなくなります。構文 catalog.database.table を使用する代わりに、database.table を使用できます。

  • さまざまなツールを使用して、外部 Hive メタストアを参照するクエリを実行します。Athena コンソール、AWS CLI、AWS SDK、Athena API、更新された Athena JDBC および ODBC ドライバーを使用できます。更新されたドライバーは、カスタムカタログをサポートしています。

API サポート

外部 Hive メタストア用の Athena データコネクタには、カタログ登録 API オペレーションとメタデータ API オペレーションがサポートされています。

  • カタログ登録— 外部 Hive メタストアおよび Hive メタストア用のカスタムカタログを登録するフェデレーテッドデータソース

  • メタデータ— メタデータ API を使用して、AWS Glue および Athena に登録したカタログについて、データベースとテーブル情報を提供します。

  • アテナJAVA SDKクライアント— カタログ登録 API、メタデータ API、およびカタログのサポートをStartQueryExecution操作を更新した Athena Java SDK クライアントで実行します。

リファレンス実装

Athena は、外部 Hive メタストアに接続する Lambda 関数のリファレンス実装を提供します。リファレンス実装は、Athena Hive メタストアのオープンソースプロジェクトとして GitHub で提供されています。

リファレンス実装は、AWS サーバーレスアプリケーションリポジトリ (SAR) で、次の 2 つの AWS SAM アプリケーションとして利用できます。これらのアプリケーションのいずれかを SAR で使用して、独自の Lambda 関数を作成できます。

  • AthenaHiveMetastoreFunction— Uber Lambda 関数.jarファイルを開きます。「uber」JAR(依存関係を持つ脂肪のJARまたはJARとも呼ばれます)は、.jarファイルは、Java プログラムとその依存関係の両方を 1 つのファイルに格納します。

  • AthenaHiveMetastoreFunctionWithLayer— Lambda 層と薄いLambda 関数.jarファイルを開きます。

Workflow

次の図は、Athena がどのように外部 Hive メタストアと連携するかを示しています。


                Athena が Hive メタストアとどのように連携するか。

このワークフローでは、データベースに接続された Hive メタストアが VPC 内にあります。Hive Server2 を使用して、Hive CLI を使用して Hive メタストアを管理します。

Athena の外部 Hive メタストアを使用するワークフローには、次のステップが含まれます。

  1. Athena を VPC 内の Hive メタストアに接続する Lambda 関数を作成します。

  2. Hive メタストアの一意のカタログ名をアカウントに登録し、対応する関数名を登録します。

  3. カタログ名を使用する Athena DML または DDL クエリを実行すると、Athena クエリエンジンが、カタログ名に関連付けられた Lambda 関数名を呼び出します。

  4. AWS PrivateLink を使用して、Lambda 関数は VPC 内の外部 Hive メタストアと通信し、メタデータリクエストに対する応答を受け取ります。Athena は、デフォルトの AWS Glue データカタログからのメタデータを使用するときと同様に、外部 Hive メタストアのメタデータを使用します。

考慮事項と制約事項

外部 Hive メタストア用の Athena データコネクタを使用する場合は、次の点を考慮してください。

  • 外部 Hive メタストアに対する DDL サポートは、次のステートメントに制限されています。

    • DESCRIBE TABLE

    • SHOW COLUMNS

    • SHOW TABLES

    • SHOW SCHEMAS

    • SHOW CREATE TABLE

    • SHOW TBLPROPERTIES

    • SHOW PARTITIONS

  • 登録できるカタログの最大数は 1,000 です。

  • 次を使用できますCTAS外部 Hive メタストアのクエリから AWS Glue テーブルを作成できますが、外部 Hive メタストアにテーブルを作成することはできません。

  • INSERT INTO を使用して、外部 Hive メタストアのクエリから AWS Glue テーブルにデータを挿入できますが、外部 Hive メタストアにデータを挿入することはできません。

  • Hive ビューは Athena ビューと互換性がないため、サポートされていません。

  • Hive メタストアの Kerberos 認証はサポートされていません。

  • 外部 Hive メタストアで JDBC ドライバーを使用するには、フェデレーションクエリを含むMetadataRetrievalMethod=ProxyAPIJDBC 接続文字列にを追加します。JDBC ドライバーの詳細については、JDBC ドライバーを介した Athena の使用

Permissions

構築済みのデータソースコネクタは、正しく機能するために、次のリソースへのアクセスが必要になる場合があります。使用するコネクタの情報をチェックして、VPC が正しく設定されていることを確認します。Athena でクエリを実行してデータソースコネクタを作成するために必要な IAM アクセス許可については、」外部 Hive メタストアの Athena データコネクタへのアクセスを許可するおよび外部 Hive メタストアへの Lambda 関数アクセスを許可する

  • Amazon S3— Amazon S3 の Athena クエリ結果場所にクエリ結果を書き込むだけでなく、データコネクタは Amazon S3 のスピルバケットにも書き込みます。この Amazon S3 ロケーションへの接続とアクセス許可が必要です。詳細については、このトピックで後述する「Amazon S3 の流出場所」を参照してください。

  • Athena— クエリの状態をチェックし、オーバースキャンを防止するには、アクセスが必要です。

  • AWS Glue— コネクタが補足メタデータまたはプライマリメタデータに AWS Glue を使用する場合は、アクセスが必要です。

  • AWS Key Management Service

  • ポリシー— Hive メタストア、Athena クエリフェデレーション、および UDF には、AmazonAthenaFullAccess 管理ポリシー。詳細については、「Athena での Identity and Access Management」を参照してください。

Amazon S3 の流出場所

の理由は、limitの場合、しきい値を超えたレスポンスは Lambda 関数の作成時に指定した Amazon S3 の場所に流出します。Athena は、Amazon S3 から直接これらの応答を読み取ります。

注記

Athena は Amazon S3 の応答ファイルを削除しません。応答ファイルを自動的に削除するようにアイテム保持ポリシーを設定することが推奨されます。