Amazon Athena Federated QueryでDynamoDBのデータを確認する
はじめに
前回、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に返します。
実際の設定手順
-
Athenaのコンソールからデータソースの作成
-
データソースの一覧からDynamoDBを選択
-
データソースの詳細よりLambda関数の作成を押下
-
自動で関数が作成される
-
Spill Bucket欄に事前に作成したS3を設定し、カタログ名を入力
※Spill BucketとはLambda 関数のレスポンスサイズ制限を超えるデータを保存するための領域となります。
-
コネクタが正常に作成されていることを確認
-
元の画面に戻って接続の詳細のLambda関数にて自動作成されたものを選択
-
データソースの作成完了
-
クエリエディタからデータソースとデータベースを指定してクエリを実行
データソースがうまく作成できていれば赤枠の箇所にDynamoDBのテーブルが表示されます。
このようにコネクタさえ作ってしまえばDynamoDBのテーブルの複数のテーブルの確認ができるので便利に使えます。
まとめ
今回はAmazon Athena Federated QueryでDynamoDBのデータを確認する方法をまとめました。
DynamoDBの大量データからSQLで条件を絞ってデータを確認する際に有効な機能だと思います。
前回、Bounce/Complaint対策にて登録したデータの種別ごとの件数をカウントしたり、どういった傾向があるか簡単に確認することができます。
もちろんDynamoDB以外の様々なデータソースを横断で検索することもできます。
Athenaの結果をAmazon QuickSightに連携して簡易的なダッシュボードを作ることもできるのでデータ分析基盤やBIツールの導入を検討する前段階のPoCの際にも用いることができます。
Discussion