🦖

Amazon Athena Federated QueryでDynamoDBのデータを確認する

2024/06/04に公開

はじめに

前回、Amazon SES Bounce/Complaint対策についてまとめました。
今回はDynamoDBに格納したデータをAmazon Athena Federated Queryで格納する方法をまとめます。

Amazon Athena Federated Queryとは

Federated Queryは、ユーザに対して、リレーショナルデータベース、非リレーショナルデータベース、オブジェクトデータ、カスタムデータソースに保存されているデータをまたがるSQLを実行することが可能な Amazon Athenaの機能です。
例えばAmazon DynamoDB, Apache HBase, Amazon DocumentDB, Amazon Redshift, Amazon CloudWatch Logs等が対象となります。
実行に際し、AWS Lambdaで実行するデータソースコネクタを介しデータを検索します。
つまり、AthenaとLambdaを使っていろいろなデータを簡単に確認しようといった機能ですね。

Athena Federated Queryの構成

Athena Federated Queryを使用するには、まずLambda関数を作成し、DynamoDBとの連携を設定する必要があります。このLambda関数は、AthenaからのクエリをDynamoDBに転送し、結果をAthenaに返します。

実際の設定手順

  1. Athenaのコンソールからデータソースの作成

  2. データソースの一覧からDynamoDBを選択

  3. データソースの詳細よりLambda関数の作成を押下

  4. 自動で関数が作成される

  5. Spill Bucket欄に事前に作成したS3を設定し、カタログ名を入力

※Spill BucketとはLambda 関数のレスポンスサイズ制限を超えるデータを保存するための領域となります。

  1. コネクタが正常に作成されていることを確認

  2. 元の画面に戻って接続の詳細のLambda関数にて自動作成されたものを選択

  3. データソースの作成完了

  4. クエリエディタからデータソースとデータベースを指定してクエリを実行

データソースがうまく作成できていれば赤枠の箇所にDynamoDBのテーブルが表示されます。

このようにコネクタさえ作ってしまえばDynamoDBのテーブルの複数のテーブルの確認ができるので便利に使えます。

まとめ

今回はAmazon Athena Federated QueryでDynamoDBのデータを確認する方法をまとめました。
DynamoDBの大量データからSQLで条件を絞ってデータを確認する際に有効な機能だと思います。

前回、Bounce/Complaint対策にて登録したデータの種別ごとの件数をカウントしたり、どういった傾向があるか簡単に確認することができます。
もちろんDynamoDB以外の様々なデータソースを横断で検索することもできます。

Athenaの結果をAmazon QuickSightに連携して簡易的なダッシュボードを作ることもできるのでデータ分析基盤やBIツールの導入を検討する前段階のPoCの際にも用いることができます。

Discussion