Athena Data Connector for External Hive Metastore (Preview) を使用する - Amazon Athena

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

Athena Data Connector for External Hive Metastore (Preview) を使用する

外部 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 クエリに結合する。

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

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

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

API サポート

Athena Data Connector for External Hive Metastore (Preview) では、カタログ登録 API オペレーションとメタデータ API オペレーションがサポートされています。

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

  • [ メタデータ–] APIs メタデータ AWS Glue を使用して、Athena および に登録するカタログのデータベースとテーブル情報を提供します。

  • JAVA SDK クライアントAthena 更新された – Java SDK クライアントでの APIs オペレーションで、カタログ登録 APIs、メタデータ StartQueryExecution、およびカタログのサポートを使用します。Athena

リファレンス実装

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

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

  • AthenaHiveMetastoreFunction – Uber Lambda 関数 .jar ファイル。

  • AthenaHiveMetastoreFunctionWithLayer – Lambda レイヤーとシン Lambda 関数 .jar ファイル。

Workflow

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


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

このワークフローでは、データベースに接続された 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 メタストアのメタデータを使用します 。

考慮事項と制約事項

Athena Data Connector for External Hive Metastore (Preview) を使用する場合は、次の点を考慮してください。

  • 外部 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 ドライバーを使用するには、JDBC 接続文字列に MetadataRetrievalMethod=ProxyAPI を含めます。JDBC ドライバーの詳細については、「JDBC ドライバーを介した Athena の使用」を参照してください。

Permissions

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

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

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

  • AWS Glue – コネクタが補足メタデータまたはプライマリメタデータに AWS Glue を使用する場合。

  • AWS Key Management Service

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

Amazon S3 のスピル場所

関数の応答サイズに制限があるため、しきい値より大きい応答は、Lambda 関数の作成時に指定した Amazon S3 場所に流出します。Lambda は、これらの応答を Athena から直接読み取ります。Amazon S3

注記

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