【入門】QuickSight × S3 でデータ可視化


S3 に保管されたデータを QuickSight で可視化するまでの流れをブログ化しました。
「S3 は普段から利用しているが、QuickSight は未経験」という方向けの内容です。

目次

  • はじめに
  • Amazon QuickSightとは
  • ハンズオン
  • 次の学びに向けて

はじめに

システム運用を担当していると
「データが見たい」
「データを集計して欲しい」
という要望・作業依頼を受けることがあります。

データの属性によっては「業務での意思決定に必要」な場面も多く、また、「鮮度が重要なため常に最新のデータが必要」という理由により、割と高い温度感での集計実施を求められることが増えています。
その一方、昨今のマイクロサービスブームの影響により、必要な情報が複数のシステムに分散してしまい、「集計担当官」を設けなければ、欲しい情報1つすらままならない、という状況もちらほら見られます。

システムには「予め決められたことを、その通りに動作する」という原理原則があります。「データが見たい」という要望の裏には「いまのシステムでは欲しい情報が得られない」という悲しい現実があります。

もし「集計担当官」という役職を設けて、専属の作業者をアサインできるのであれば、集計作業自体は問題になりません。しかし、実際のところは「システム業務を担当するエンジニアが、付帯業務として集計を実施する」という運用方針になることが多いです。

これにより
①エンジニアは片手間で集計しているため、集計アウトプットが必ずしも高くはない
②「データが見たい」と依頼した人のもとには、その依頼とマッチするような結果が必ずしも得られない → 集計を再依頼する
という負のループが回ってしまうことがあります。

「データベース」と「データを見たい非エンジニア」
をスムーズに繋げるルートがない(間にエンジニアが入らなければデータのやり取りができない)ことが問題の原因のため、「ある程度の検索柔軟性を保ちつつ、非エンジニアでも操作可能なUIで、環境用意がエンジニアの作業負荷ならずに済むデータ可視化・集計システム」用意できれば、エンジニアを介さずとも「データを見たい」という要望を叶えることができます。

今回はその簡易的に作成できる可視化・集計システムの1つとして「Amazon QuickSight」に触れてみました。

Amazon QuickSightとは

公式 Amazon QuickSight

Amazon QuickSight は、AWS がサーバレスで提供する BI(Business Intelligence)サービスの1つです。
BI サービスとしてデータの集計・可視化ができ、そのデータ参照先として「S3, RDS, Aurora, DynamoDB, Timestream」などの AWS サービス群が利用できます。
データ自体が存在するならば、自前で集計・可視化環境を構築せずとも、QuickSight 経由でそれらを実現することができます。

QuickSight で作成したダッシュボードは、Emailなどで別ユーザとも共有可能です。

(画像引用元: Amazon QuickSight の仕組み

公式が QuickSight のサンプルを公開しているので、こちらをご覧になれば、QuickSight の表現の幅が伝わると思います。

日本語版: 小売り業界の売上分析ダッシュボード
英語版: Amazon QuickSight Gallery

ハンズオン

QuickSight のはじめの一歩として、「S3 に保存されたデータの可視化」をやってみます。

今回利用するリソースは
- Amazon S3
- Amazon QuickSight

の2つです。

可視化用のデータとして、以下を data.csv として利用します。

id,name,age,gender,pc-os,mobile-os
00001,Ken,40,man,windows,android
00002,Judy,30,woman,windows,android
00003,Dybit,20,man,windows,ios
00004,Eubda,35,woman,windows,ios
00005,Ashton,30,man,mac,android
00006,Gwendolyn,25,woman,mac,android
00007,Cade,28,man,mac,android
00008,Jamie,41,woman,mac,ios
00009,Korbin,23,man,mac,ios
00010,Citlalli,32,man,mac,ios

S3の準備

今回のハンズオン用の S3 を作成して、data.csv をアップロードします。

S3 のデータを QuickSight で読み取るには、マニフェストファイルが必要になります。
公式がマニフェストファイルのフォーマットを公開しており、こちらをコピーして適切に加工すれば、そのまま利用できます。

マニュフェストファイルのフォーマット
{
    "fileLocations": [
        {
            "URIs": [
                "uri1",
                "uri2",
                "uri3"
            ]
        },
        {
            "URIPrefixes": [
                "prefix1",
                "prefix2",
                "prefix3"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV",
        "delimiter": ",",
        "textqualifier": "'",
        "containsHeader": "true"
    }
}

各項目の意味は
- fileLocations: QuickSight が取得するファイルの場所
- globalUploadSettings: ファイルの設定(ファイル形式、区切り文字、ヘッダーの有無)

なので、ハンズオンのファイル data.csv に沿って記述すると以下になります。

manifest.json
{
    "fileLocations": [
        {
            "URIs": [
                "https://<S3のバケット名>.s3.amazonaws.com/data.csv"
            ]
        }
    ],
    "globalUploadSettings": {
        "format": "CSV",
        "delimiter": ",",
        "containsHeader": "true"
    }
}

サンプルデータをマニフェストファイルを、どちらもS3にアップロードしてしましょう。

以上で、S3の準備は完了です。

QuickSightの準備

まずは、QuickSight から指定の S3 に接続できるよう設定します。
AWS マネジメントコンソールから QuickSight に移動して、アカウント名から「QuickSight の管理」を選択します。

「セキュリティとアクセス権限」から QuickSight の AWS サービスへのアクセスを変更できます。
管理画面へ移動し、今回のハンズオン用に作成した S3 バケットを選択して、「保存」ボタンを選択します。

これで、QuickSight から S3 内バケットのデータにアクセスする準備が整いました。

QuickSight に S3 からデータインポート

QuickSight のホーム画面化で「新しい分析」→「新しいデータセット」を選択すると、インポート元として利用可能なサービス一覧が表示されます。

S3 を選択すると
- データソース名
- マニフェストファイルのアップロード

の入力が求められるので、それぞれ適切に入力します。

マニフェストファイルは S3 にアップロード済みなので、S3 オブジェクトに移動して、画面の「オブジェクトURL」をそのままコピー&ペーストするだけです。

データソース名、マニュフェストファイルの URL を入力後、「接続」をクリックするとデータインポート始まります。
インポートが成功すれば、以下のようのメッセージが表示されるので「視覚化する」をクリックすれば、QuickSight のダッシュボード画面に移動できます。

QuickSight で可視化

BI 画面に移動すると、以下のような画面が表示されます。

画面左側に
- age
- gender
- id
- mobile-os
- name
- pc-os

と項目が並んでおり、インポートした data.csv に対応していることが分かります。

QuickSight は可視化・集計したい内容を利用者側で設定する必要があります。
「フィールドリスト」と「ビジュアルタイプ」を選択すると、QuickSight 側が自動で可視化してくれるので、いろいろ試してみましょう。

例1

フィールドリスト
- gender

ビジュアルタイプ
- ドーナッツグラフ

例2

フィールドリスト
- gender
- mobile-os
- pc-os

ビジュアルタイプ
- ピボットテーブル

データセットのインポートにさえ成功できれば、「項目選択 × 可視化方法の選択」だけで、QuickSight 側がいい感じのグラフを作成してくれます。

今回のハンズオンでは data.csv を利用しましたが、インポートするデータを変えた上で可視化してみるのも面白いでしょう。

次の学びに向けて

本記事では
- 「QuickSight × S3」によるデータ可視化

のハンズオンを説明しました。

データセットがあれば QuickSight で簡単にデータ可視化が可能なことを知っていただき「QuickSight に触れてみる」機会に繋がればと思います。

今回の可視化程度では Excel で十分に代替可能なため、QuickSight を使う旨味が伝わっていないかもしれません。
次の学習ステップとして、以下がオススメです。

AWS に溜まったデータを QuickSight でサッと集計・可視化できれば、「データ活用」の幅が大きく広がると思います。

ここまでお付き合いいただき、ありがとうございました。