21
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-12-11

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などで別ユーザとも共有可能です。

quicksight-workflow-overview.png

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

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

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

ハンズオン

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

今回利用するリソースは

  • Amazon S3
  • Amazon QuickSight

の2つです。

Screen Shot 2021-12-11 at 21.31.05.png

可視化用のデータとして、以下を 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にアップロードしてしましょう。

Screen Shot 2021-12-11 at 21.51.35.png

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

QuickSightの準備

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

Screen Shot 2021-12-11 at 22.01.39.png

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

Screen Shot 2021-12-11 at 22.02.34.png

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

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

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

Screen Shot 2021-12-11 at 22.08.59.png

S3 を選択すると

  • データソース名
  • マニフェストファイルのアップロード

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

Screen Shot 2021-12-11 at 22.10.47.png

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

Screen Shot 2021-12-11 at 22.13.04.png

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

Screen Shot 2021-12-11 at 22.20.11.png

QuickSight で可視化

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

Screen Shot 2021-12-11 at 22.22.07.png

画面左側に

  • age
  • gender
  • id
  • mobile-os
  • name
  • pc-os

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

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

例1

フィールドリスト

  • gender

ビジュアルタイプ

  • ドーナッツグラフ

Screen Shot 2021-12-11 at 22.36.07.png

例2

フィールドリスト

  • gender
  • mobile-os
  • pc-os

ビジュアルタイプ

  • ピボットテーブル

Screen Shot 2021-12-11 at 22.34.35.png

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

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

次の学びに向けて

本記事では

  • 「QuickSight × S3」によるデータ可視化

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

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

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

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

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

21
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?