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 によって記述され、テストされたデータソースコネクタのリストについては、「使用可能なデータソースコネクタ」を参照してください。

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

考慮事項と制約事項

  • エンジンバージョン – 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 の横串検索を使用して、ゲームやサービスからのテレメトリデータの取り込み、保存、および分析を実行するためのスケーラブルなサーバーレスデータパイプラインをデプロイする方法を紹介しています。