はじめに
「手を動かして学ぶ!KafkaとPythonによるAWSストリーミングデータ分析入門【30日チャレンジ】」24日目です。前回、Amazon Kinesis Data Analyticsの概要と、MSKとの連携方法を学びました。
今日は、その知識を活かして、いよいよAmazon QuickSightでリアルタイムダッシュボードを作成してみましょう。これにより、ストリーミングデータ分析の結果を誰にでもわかる形で可視化する体験ができます。
1. Amazon QuickSightのデータソース
QuickSightは、様々なデータソースと連携してデータを可視化できます。リアルタイムダッシュボードを作成するためには、以下のようなデータソースを利用します。
- Amazon S3: 処理済みのデータをS3に保存し、QuickSightがAthena経由でクエリを実行して可視化します。これは、リアルタイムというよりも、ニアリアルタイムの分析に適しています。
- Amazon OpenSearch Service: Kinesis Data Analyticsで処理したデータをOpenSearch Serviceに書き込み、QuickSightがリアルタイムでデータを取得して可視化します。
- Amazon Kinesis Data Streams: QuickSightは、Kinesis Data Streamsのデータを直接ソースとして利用することも可能です。
今回は、これまでの流れを活かし、Athenaを介してS3上のデータを可視化する方法に焦点を当てます。
2. S3とAthenaを使ってダッシュボードを作成する
このプロセスは、以下のステップで進めます。
ステップ1: Athenaでビューを作成する
QuickSightは、Athenaのビューをデータソースとして利用できます。リアルタイムに近い分析のために、Kinesis Data Analyticsで処理したデータをS3に保存し、そのデータに対してAthenaでビューを作成します。
例えば、過去5分間のWebサイトアクセス数や人気ページをリアルタイムで集計し、その結果をS3に出力していると仮定します。
Athenaのクエリエディタで、以下のようなSQLを使ってビューを作成します。
CREATE OR REPLACE VIEW recent_page_views AS
SELECT
*
FROM "kafka_analysis"."web_logs_web_logs"
WHERE
CAST("timestamp" AS TIMESTAMP) >= NOW() - INTERVAL '5' MINUTE;
このビューは、常に最新5分間のデータのみを参照します。
ステップ2: QuickSightでデータセットを作成する
次に、QuickSightコンソールで、Athenaのビューをデータソースとするデータセットを作成します。
- QuickSightコンソールにログインします。
- 「Datasets」タブに移動し、「New dataset」をクリックします。
- データソースとして「Athena」を選択します。
- AthenaがS3にアクセスするためのIAMロールが適切に設定されていることを確認します。
- 先ほど作成した「
kafka_analysis」データベースと「recent_page_views」ビューを選択し、「Select」をクリックします。
ステップ3: 分析とビジュアル化
データセットが作成されたら、「Analyses」タブに移動し、「New analysis」をクリックして、分析を開始します。
- 左側のフィールドリストから、可視化したい項目をドラッグ&ドロップします。例えば、「
page_id」と「count」をドラッグして、棒グラフを作成します。 - 「
timestamp」をX軸に、「count」をY軸に設定して、折れ線グラフを作成することで、時間経過に伴うページビュー数の推移を確認できます。
ステップ4: ダッシュボードの公開と共有
分析が完了したら、右上の「Share」ボタンから「Publish dashboard」を選択します。ダッシュボード名を入力し、公開することで、チームメンバーと分析結果を共有できます。
QuickSightのダッシュボードは、自動で定期的にデータを更新する設定も可能です。これにより、常に最新の情報を反映したリアルタイムに近いダッシュボードを維持できます。
まとめと次回予告
今日は、Amazon QuickSightを使って、S3に蓄積されたストリーミングデータを可視化し、リアルタイムダッシュボードを作成する方法を学びました。これにより、データパイプラインの最終目的地である「インサイトの獲得」が達成されました。
明日は、このシステムの運用をより確実にするための重要な要素について学びます。
25日目: CloudWatchを使ってMSKとEC2のメトリクスを監視する
お楽しみに!