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 リポジトリ
注記
サードパーティーデベロッパーは、データソースコネクタの記述に Athena Query Federation SDK を使用している可能性があります。これらのデータソースコネクタのサポート、またはライセンスに関する問題については、コネクタプロバイダーにお問い合わせください。AWS はこれらのコネクタをテストしておらず、サポートも提供しません。
Athena によって記述され、テストされたデータソースコネクタのリストについては、「使用可能なデータソースコネクタ」を参照してください。
独自のデータソースコネクタの記述については、GitHub の「Example Athena connector
考慮事項と制約事項
-
エンジンバージョン – Athena Federated Query は、Athena エンジンバージョン 2 以降でのみサポートされています。Athena エンジンバージョンの詳細については、「Athena エンジンのバージョニング」を参照してください。
-
ビュー – フェデレーティッドデータソースでビューを作成してクエリできるようになりました。フェデレーティッドビューは、基盤となるデータソースではなく、AWS Glue に格納されます。詳細については、「フェデレーテッドビューをクエリする」を参照してください。
-
書き込み操作 — INSERT INTO などの書き込み操作はサポートされていません。これを試みた場合、「
This operation is currently not supported for external catalogs (この操作は現在、外部カタログではサポートされていません)
」というエラーメッセージが表示されることがあります。 -
料金 – 料金の情報については、「Amazon Athena の料金
」を参照してください。 JDBC ドライバー – フェデレーティッドクエリや外部 Hive メタストアで JDBC ドライバーを使用するには、JDBC 接続文字列に
MetadataRetrievalMethod=ProxyAPI
を含めてください。JDBC ドライバーの詳細については、「JDBC で Amazon Athena に接続する」を参照してください。 -
Secrets Manager – AWS Secrets Manager で Athena 横串検索機能を使用するには、Secrets Manager に Amazon VPC プライベートエンドポイントを設定する必要があります。詳細については、「AWS Secrets Manager ユーザーガイド」の「Secrets Manager VPC プライベートエンドポイントを作成する」を参照してください。
データソースコネクタは、正しく機能するために、次のリソースへのアクセスが必要になる場合があります。事前に構築されたコネクタを使用する場合は、コネクタの情報を確認して、VPC が正しく設定されていることを確認してください。また、クエリを実行し、コネクタを作成する IAM プリンシパルに、必要なアクションに対する権限があることを確認してください。詳細については、「Athena Federated Query を許可する IAM 許可ポリシーの例」を参照してください。
-
Simple Storage Service (Amazon S3) – データコネクタは、Athena のクエリ結果が保存される Amazon S3 内の場所にクエリ結果を書き込むほか、Amazon S3 のスピルバケットにも書き込みます。この Amazon S3 の場所に対する接続と許可が必要です。
-
Athena – データソースには、クエリステータスのチェックとオーバースキャンの防止のために、Athena への (または Athena からの) 接続が必要です。
-
AWS Glue Data Catalog – コネクタが補足メタデータまたはプライマリメタデータのためにデータカタログを使用する場合は、接続とアクセス許可が必要です。
動画
以下の動画を視聴して、Athena の横串検索の使用に関する詳細を確認してください。
動画: Amazon QuickSight で Amazon Athena 横串検索の結果を分析する
以下の動画は、Athena 横串検索の結果を Amazon QuickSight で分析する方法を説明します。
動画: Gaming Analytics Pipeline
以下の動画は、Amazon Athena の横串検索を使用して、ゲームやサービスからのテレメトリデータの取り込み、保存、および分析を実行するためのスケーラブルなサーバーレスデータパイプラインをデプロイする方法を紹介しています。