Amazon Athena 横串検索の使用 - Amazon Athena

Amazon Athena 横串検索の使用

Amazon S3 以外のソースにデータがある場合は、Athena の横串検索を使用してインプレースでデータをクエリしたり、複数のデータソースからデータを抽出して Amazon S3 に保存するパイプラインを構築したりすることができます。Athena の横串検索では、リレーショナル、非リレーショナル、オブジェクト、およびカスタムデータソースに保存されているデータの全体で SQL クエリを実行することができます。

Athena は横串検索を実行するために、AWS Lambda で実行されるデータソースコネクタを使用します。データソースコネクタは、ターゲットデータソースと Athena 間での変換を実行できるコードです。コネクタは、Athena のクエリエンジンの拡張機能として考えることができます。事前構築された Athena データソースコネクタは、Amazon CloudWatch Logs、Amazon DynamoDB、Amazon DocumentDB、Amazon RDS、および MySQL や Apache 2.0 ライセンスに基づく PostgreSQL などの JDBC 準拠のリレーショナルデータソースといったデータソース用のものです。Athena Query Federation SDK を使用してカスタムコネクタを記述することもできます。データソースコネクタを選択し、設定し、アカウントにデプロイするには、Athena および Lambda コンソールまたは AWS Serverless Application Repository を使用できます。データソースコネクタをデプロイした後、コネクタは SQL クエリで指定できるカタログに関連付けられます。複数のカタログの SQL ステートメントを組み合わせて、1 つのクエリの範囲に複数のデータソースを入れることができます。

データソースに対してクエリが送信されると、Athena が対応するコネクタを呼び出して、読み取る必要があるテーブルの箇所を特定し、並列処理を管理して、フィルター述語をプッシュダウンします。クエリを送信するユーザーに基づいて、コネクタは特定のデータ要素へのアクセスを提供または制限できます。コネクタは、クエリで要求されたデータを返す形式として Apache Arrow を使用します。これにより、コネクタを C、C++、Java、Python、Rust などの言語で実装できます。コネクタは Lambda で処理されるため、Lambda からアクセスできる、クラウドまたはオンプレミスの任意のデータソースからのデータへのアクセスに使用できます。

独自のデータソースコネクタを記述するには、Athena Query Federation SDK を使用して、Amazon Athena が提供し、維持する事前構築されたコネクタの 1 つをカスタマイズできます。GitHub リポジトリからのソースコードのコピーを変更し、コネクタ公開ツールを使用して独自の AWS Serverless Application Repository パッケージを作成できます。

注記

サードパーティーデベロッパーは、データソースコネクタの記述に Athena Query Federation SDK を使用している可能性があります。これらのデータソースコネクタのサポート、またはライセンスに関する問題については、コネクタプロバイダーにお問い合わせください。AWS はこれらのコネクタをテストしておらず、サポートも提供しません。

Athena によって記述され、テストされたデータソースコネクタのリストについては、「Athena データソースコネクタの使用」を参照してください。

独自のデータソースコネクタの記述については、GitHub の「Example Athena Connector」を参照してください。

考慮事項と制約事項

  • エンジンバージョン – Athena の横串検索は、Athena エンジンバージョン 2 でのみサポートされています。Athena エンジンバージョンについては、「Athena エンジンのバージョン管理」を参照してください。Athena エンジンバージョン 2 をサポートする AWS リージョンのリストについては、「Athena エンジンバージョン 2」を参照してください。

  • ビュー – フェデレートされたデータソースでビューを使用することはできません。

  • 料金 – 料金の情報については、「Amazon Athena の料金」を参照してください。

    JDBC ドライバー – 横串検索、または外部 Hive メタストアで JDBC ドライバーを使用するには、JDBC 接続文字列に MetadataRetrievalMethod=ProxyAPI を含めてください。JDBC ドライバーの詳細については、「Athena での JDBC ドライバーの使用」を参照してください。

  • Secrets Manager – AWS Secrets Manager で Athena 横串検索機能を使用するには、Secrets Manager に Amazon VPC プライベートエンドポイントを設定する必要があります。詳細については、AWS Secrets Manager ユーザーガイドの「Secrets Manager VPC プライベートエンドポイントを作成する」を参照してください。

データソースコネクタは、正しく機能するために、次のリソースへのアクセスが必要になる場合があります。事前に構築されたコネクタを使用する場合は、コネクタの情報を確認して、VPC が正しく設定されていることを確認してください。また、クエリを実行し、コネクタを作成する IAM プリンシパルに、必要なアクションに対する権限があることを確認してください。詳細については、「Athena の横串検索を許可する IAM 許可ポリシーの例」を参照してください。

  • Amazon S3 – データコネクタは、Amazon S3 にあるクエリ結果の場所に Athena クエリの結果を書き込むことに加えて、Amazon S3 のスピルバケットへの書き込みも行います。この Amazon S3 の場所に対する接続と許可が必要です。

  • Athena – データソースには、クエリステータスのチェックとオーバースキャンの防止のために、Athena への (または Athena からの) 接続が必要です。

  • AWS Glue Data Catalog – コネクタが補足メタデータまたはプライマリメタデータのためにデータカタログを使用する場合は、接続とアクセス許可が必要です。

既知の問題と制限に関する最新情報については、aws-athena-query-federation GitHub リポジトリの「Limitations and Issues」を参照してください。

Videos

以下の動画を視聴して、Athena の横串検索の使用に関する詳細を確認してください。

動画: Amazon QuickSight で Amazon Athena 横串検索の結果を分析する

以下の動画は、Athena 横串検索の結果を Amazon QuickSight で分析する方法を説明します。

動画: Gaming Analytics Pipeline

以下の動画は、Amazon Athena の横串検索を使用して、ゲームやサービスからのテレメトリデータの取り込み、保存、および分析を実行するためのスケーラブルなサーバーレスデータパイプラインをデプロイする方法を紹介しています。