翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Athena を使用して SQL で Amazon DynamoDB テーブルをクエリする
Gavin Perrie、Ajit Ambike、Brad Yates、Amazon Web Services
概要
データに Amazon Simple Storage Service (Amazon S3) 以外のソースが含まれている場合は、フェデレーティッドクエリを使用して、それらのリレーショナルデータソース、非リレーショナルデータソース、オブジェクトデータソース、またはカスタムデータソースにアクセスできます。このパターンは、SQL データソースコネクタを使用して Amazon Athena から Amazon DynamoDB へのフェデレーティッドクエリアクセスを設定する方法を示しています。
このパターン使用して、次のことを行うことができます。
SQL を使用して DynamoDB テーブルをクエリします。
Athena でフェデレーティッド SQL クエリを実行し、DynamoDB テーブルをサポートされている他のデータソースに結合します。
前提条件と制限
前提条件
DynamoDB テーブル。
Athena エンジンバージョン 2 を使用するように設定された Athena ワークグループ。手順については、Athena ドキュメントを参照してください。
AthenaDynamoDBConnectorAWS Lambda 関数がデータをスピルできる S3 バケット。S3 バケットと Lambda 関数は、同じ AWS リージョンに存在する必要があります。
Athena に初めてアクセスする場合は、クエリ結果の場所として使用する追加の S3 バケットが必要です。手順については、Athena ドキュメントを参照してください。
制限事項
INSERT INTO などの書き込みオペレーションはサポートされていません。
製品バージョン
アーキテクチャ
ターゲットアーキテクチャ
次の図は、パターンが確立された後の接続フローを示しています。ユーザーは Amazon Athena に接続してクエリを提供します。Athena はクエリとターゲットを DynamoDB データソースコネクタ Lambda 関数に渡します。Lambda 関数はデータを取得して Athena に返します。大量のデータが返された場合、Athena は一時的な結果をスピルバケットに保存してから、データセット全体をパッケージ化して返します。

ツール
AWS のサービス
Amazon Athenaは、標準 SQL を使用して Amazon Simple Storage Service (Amazon S3) 内のデータを直接分析できるようにするインタラクティブなクエリサービスです。このパターンでは、Amazon Athena クエリフェデレーション SDK を使用して構築され、 を介してアプリケーションとしてインストールされたツールである Amazon Athena DynamoDB Connector
を使用します AWS Serverless Application Repository。 Amazon Athena AWS Lambda Amazon DynamoDB は、フルマネージド NoSQL データベースサービスです。高速かつ予測可能でスケーラブルなパフォーマンスを提供します。
AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。
コードリポジトリ
このパターンのコードは GitHub 内の「Athena クエリフェデレーション
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
AthenaDynamoDBConnector アプリケーションをデプロイします。 | AthenaDynamoDBConnecter をデプロイするには、以下を実行します。
| AWS DevOps |
Athena 用のデータソースを作成します。 | データソースを作成するには、以下を実行します。
| AWS DevOps |
Athena を使用して DynamoDB テーブルをクエリします。 | DynamoDB テーブルをクエリするには、以下を実行します。
| アプリデベロッパー |
トラブルシューティング
| 問題 | ソリューション |
|---|---|
クエリは | Athena スピルバケットと Lambda 関数が同じ AWS リージョンに作成されていることを確認します。 |
新しく作成されたデータソースは Athena コンソールに表示されません。 | Athena データカタログはリージョン別です。 |
新しく作成されたデータソースに対してクエリを実行できません。 | クエリ結果の場所が設定されていることを確認します。 |