Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Amazon Athena を使用して SQL で Amazon DynamoDB テーブルをクエリする Amazon Athena - AWS 規範ガイダンス

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

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

Amazon Athena を使用して SQL で Amazon DynamoDB テーブルをクエリする Amazon Athena

作成者: Gavin Perrie (AWS)、Ajit Ambike (AWS)、Brad Yates (AWS)

概要

データに Amazon Simple Storage Service (Amazon S3) 以外のソースが含まれている場合は、フェデレーティッドクエリを使用して、それらのリレーショナル、非リレーショナル、オブジェクト、またはカスタムデータソースにアクセスできます。このパターンは、SQL データソースコネクタを使用して Amazon Athena から Amazon DynamoDB への横串検索アクセスを設定する方法を示しています。

このパターンを使用すると、次のことができます。

  • SQL を使用して DynamoDB テーブルをクエリします。

  • Athena でフェデレーティッド SQL クエリを実行し、DynamoDB テーブルをサポートされている他のデータソースと結合します。

前提条件と制限

前提条件

  • DynamoDB 表。

  • Athena エンジンバージョン 2 を使用するように設定された Athena ワークグループ。手順については、Athena のドキュメントを参照してください。

  • AthenaDynamoDBConnector AWS Lambda 関数がデータをスピルできる S3 バケット。S3 バケットと Lambda 関数は同じ AWS リージョンに存在する必要があります。

Athena に初めてアクセスする場合は、クエリ結果の場所として使用する追加の S3 バケットが必要です。手順については、Athena のドキュメントを参照してください。

制約事項

  • INSERT INTO などの書き込みオペレーションはサポートされていません。

製品バージョン

アーキテクチャ

ターゲット アーキテクチャ

次の図は、パターンが確立された後の接続フローを示しています。ユーザーは Amazon Athena に接続してクエリを提供します。Athena はクエリとターゲットを DynamoDB データソースコネクタ Lambda 関数に渡します。Lambda 関数はデータを取得して Athena に返します。大量のデータが返された場合、Athena は一時的な結果をスピルバケットに保存してから、データセット全体をパッケージ化して返します。

ユーザーから Athena へのワークフローから Lambda へ。Lambda は S3 バケットと DynamoDB テーブルに接続します。

ツール

AWS のサービス

コードリポジトリ

このパターンのコードは、GitHub Athena クエリフェデレーションリポジトリで入手できます。

エピック

タスク説明必要なスキル

AthenaDynamoDBConnector アプリケーションをデプロイします。

AthenaDynamoDBConnecter をデプロイするには、次の手順を実行します。

  1. にサインインし AWS Management Console、DynamoDB テーブルとスピルバケット AWS リージョン に使用している を選択します。

  2. https://console.aws.amazon.com/serverlessrepo/. でサーバーレスアプリケーションリポジトリを開きます。

  3. ナビゲーションペインで、使用可能なアプリケーションを選択します。

  4. AWS Identity and Access Management (IAM) アクセスの場合は、検索バーで、カスタム IAM ロールまたはリソースポリシーを作成するアプリの表示チェックボックスをオンにします。

  5. AthenaDynamoDBConnector を検索して選択し、リストされている作成者が Amazon Athena フェデレーションであることを確認します。

  6. アプリケーション設定で、次の値を入力します。

    • SpillBucket ‒ 関数がデータをスピルできる場所。

    • AthenaCatalogName ‒ 作成される Lambda 関数の名前。この名前は、Athena のデータソース名としても使用されます。

  7. チェックボックスをオンにして、IAM ロールとポリシーの作成を承認します。

  8. [デプロイ] を選択します。

AWS DevOps

Athena のデータソースを作成します。

データソースを作成するには、次の手順を実行します。

  1. で Athena コンソールを開きます。

    https://console.aws.amazon.com/athena/.

  2. ナビゲーションペインを展開し、データソースを選択します。

  3. [データソースを作成] を選択します。

  4. Amazon DynamoDB を選択します。

  5. データソース名を入力します。

  6. 作成した Lambda 関数を選択します。

  7. 詳細を確認し、データソースの作成を選択します。

AWS DevOps

Athena を使用して DynamoDB テーブルをクエリします。

DynamoDB テーブルをクエリするには、次の操作を行います。

  1. Athena コンソールで、ナビゲーションペインを展開し、クエリエディタを選択します。

  2. データソースドロップダウンリストで、作成したデータソースを選択します。

  3. DynamoDB テーブルがテーブルにリストされていることを確認します。

  4. クエリを実行します。

アプリ開発者

DynamoDB データソースコネクタのセットアップとテスト

タスク説明必要なスキル

AthenaDynamoDBConnector アプリケーションをデプロイします。

AthenaDynamoDBConnecter をデプロイするには、次の手順を実行します。

  1. にサインインし AWS Management Console、DynamoDB テーブルとスピルバケット AWS リージョン に使用している を選択します。

  2. https://console.aws.amazon.com/serverlessrepo/. でサーバーレスアプリケーションリポジトリを開きます。

  3. ナビゲーションペインで、使用可能なアプリケーションを選択します。

  4. AWS Identity and Access Management (IAM) アクセスの場合は、検索バーで、カスタム IAM ロールまたはリソースポリシーを作成するアプリの表示チェックボックスをオンにします。

  5. AthenaDynamoDBConnector を検索して選択し、リストされている作成者が Amazon Athena フェデレーションであることを確認します。

  6. アプリケーション設定で、次の値を入力します。

    • SpillBucket ‒ 関数がデータをスピルできる場所。

    • AthenaCatalogName ‒ 作成される Lambda 関数の名前。この名前は、Athena のデータソース名としても使用されます。

  7. チェックボックスをオンにして、IAM ロールとポリシーの作成を承認します。

  8. [デプロイ] を選択します。

AWS DevOps

Athena のデータソースを作成します。

データソースを作成するには、次の手順を実行します。

  1. で Athena コンソールを開きます。

    https://console.aws.amazon.com/athena/.

  2. ナビゲーションペインを展開し、データソースを選択します。

  3. [データソースを作成] を選択します。

  4. Amazon DynamoDB を選択します。

  5. データソース名を入力します。

  6. 作成した Lambda 関数を選択します。

  7. 詳細を確認し、データソースの作成を選択します。

AWS DevOps

Athena を使用して DynamoDB テーブルをクエリします。

DynamoDB テーブルをクエリするには、次の操作を行います。

  1. Athena コンソールで、ナビゲーションペインを展開し、クエリエディタを選択します。

  2. データソースドロップダウンリストで、作成したデータソースを選択します。

  3. DynamoDB テーブルがテーブルにリストされていることを確認します。

  4. クエリを実行します。

アプリ開発者

トラブルシューティング

問題ソリューション

クエリは で失敗しますGENERIC_INTERNAL_ERROR: The bucket is in this region: <region>

Athena スピルバケットと Lambda 関数が同じ に作成されていることを確認します AWS リージョン。

新しく作成されたデータソースは Athena コンソールに表示されません。

Athena データカタログはリージョン別です。AthenaDynamoDBConnector が Athena を使用しようとしているリージョンにデプロイされていることを確認します。

新しく作成されたデータソースに対してクエリを実行できません。

クエリ結果の場所が設定されていることを確認します。

関連リソース

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.