ExcelからAmazon QuickSightの移行案件からわかった可視化までの流れと注意点

AWS

2022.8.25

Topics

概要

お久しぶりです。データサイエンスチームのreonoです。
今回、社内案件として社内データをExcelでダッシュボード化していたものをAmazon QuickSightに移行するということをしたので、
QuickSightで可視化を行うまで流れと注意点をまとめてみようと思います!
QuickSightは非常に機能が豊富で用途が多いサービスなのですが、
今回は少人数で共有を行うBIツールとしての用途を目的に使用しました。

想定している読者

  • QuickSightを使ってみようと考えている方

QuickSightの概要はAWSのこちらをご覧ください。

QuickSightの料金体系

料金体系

エンタープライズ版とStandard Edtionの2種類が存在します。
エンタープライズ版の方が料金は高いものの豊富な拡張機能が用意されています。
※Standard Editionからエンタープライズ版へのアップデートは可能ですが、エンタープライズ版からのダウングレードはできません。

今回は、エンタープライズ版に絞って説明をさせて頂きます。
以下エンタープライズ版の料金表となります。

1ヶ月 年間契約で
作成者(1ユーザーにつき10GBのSPICE容量も含む) $24/月 $18/月
閲覧者 0.30USD/セッション~月額上限5USD/月 0.30USD/セッション~月額上限5USD/月

作成者アカウントにはユーザー管理やSPICE容量の追加を行える管理者とそれ以外の操作が可能な作成者があります。
※Qを使用する場合、Q基本料金の250USD/月に加えユーザーの料金も少々上がるようです。

注意点

QuickSightにはAWSマネジメントコンソールと別の専用のコンソールを利用する必要があるためユーザー管理をQuickSight側独自で行う必要があります。
IAMポリシーを設定することでIAMユーザーによって作成できるQuickSightアカウントの権限を指定することができます。
管理者ユーザーのポリシー

{
    "Version" : "2012-10-17",
    "Statement" : [
        {
            "Effect" : "Allow",
            "Action" : "quicksight:CreateAdmin",
            "Resource" : "*"
        }
    ]
}

作成者ユーザーのポリシー

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "quicksight:CreateUser",
            "Resource": "*"
        }
    ]
}

閲覧者ユーザーのポリシー

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "quicksight:CreateReader",
            "Resource": "*"
        }
    ]
}

登録方法の手順は今回割愛させて頂きますが、AWSコンソールからQuickSightを検索して頂いた後は指示に従うことで簡単に利用開始をすることができます。
登録時の注意点としてはエンタープライズ版かStandard Editionの選択を間違えないようにしてください。
また、1人目のユーザーは管理者として作成することになりますが2人目のユーザーからどの権限でアカウントの作成を行うか慎重に作成を行ってください。
作成者アカウントは一度作成すると月末までの日割り料金が発生してしまいます。
参考:https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/setting-up.html

データセットの作成の仕方

参照元のデータソース

様々なファイルやアプリケーションをデータソースにすることができます。
今までの運用ではアプリケーションから出力したcsvデータをエクセルでダッシュボード化していたので、csvデータを読み込ませるためS3からの方法とAthenaからの方法の2種類を検証しました。
(最終的に、データを整形する必要があったため、S3にcsvファイルを格納して、Athenaで整形しデータソースとしました。)

事前準備

右上の人マークからQuickSightの管理を選択し、セキュリティとアクセス権限でS3とAthenaのアクセス権限を許可してください。

S3からデータセットを作成する方法

1.S3にデータソースにしたいファイルまたはフォルダとマニフェストファイルをアップロードします

アップロードするマニフェストファイルは以下のように記述してjson形式としてください。

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

2.マニフェストファイルのオブジェクトURLをコピーします

3.QuickSightでデータセットのインポートを行います
データセットから新しいデータセットを選択し、S3を押下します。
その後任意のデータソース名を入れマニフェストファイルのアップロードを行い、接続を押下することでデータセットの作成をすることができます。

4.完了

Athenaからデータセットを作成する方法

1.AWS Glueにアクセスします。
(AthenaでS3にあるファイルを分析するには、AWS Glue Data Catalogに対してクエリを実行するためはじめにGlueでデータベースの準備を行います。)

2.AWS Glueでデータベースの作成を行います。
データベースを選択し、データベースの追加を押下します。
任意のデータベース名を入力し作成を行ってください。
(ハイフンを使う場合はアンダースコアに変えて登録してください。Athena側で読み込みが行えなくなります。)

3.Amazon Athenaにアクセスします。

4.AthenaのクエリエディタでS3からファイルを読み込みテーブルを作成します。
クエリエディタにアクセスしたあとデータソースとデータベースを先ほどGlueで作成したものに合わせます。

その後、以下のようなクエリを実行し、必要なようでしたらSQLで整形を行ってください。
(QuickSightではテーブルでもビューでもどちらでも読み込むことができます。
SPICEを使う際はどちらでも良いと思いますが、直クエリの場合はテーブルにしてしまうかデータセットを分割してビューで参照するなどするとお財布に優しくなるかと思います。)

CREATE EXTERNAL TABLE IF NOT EXISTS hogehoge(
    {カラム名} [varchar(256),int(),date,etc…]
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES (
    'separatorChar' = ',',
    'quoteChar' = '"',
    'escapeChar' = '""'
) STORED AS TEXTFILE
LOCATION 's3://quicksight-blog-bucket/'
;

5.QuickSightでデータセットのインポートを行います
S3での手順とほぼ同じです。
データセットから新しいデータセットを選択し、Athenaを押下します。
その後任意のデータソース名を接続を押下します。
任意のデータベースとテーブルを選択し、選択を押下します。

6.完了

可視化の実施

今回使用するデータの説明

今回案件で使用したデータは機密性の高いデータだったので、インターネット上に落ちている統計データをサンプルとして利用しました。
(引用元:e-start 家計調査 家計収支編 二人以上の世帯 月当たりのアイスクリーム・シャーベットに消費する金額の平均値
今回は説明のためのデータセットが必要だったのでcsvファイルをそのままQuickSightに読み込ませる方法を取っています。
読み込ませた後のデータセットがこちらとなります。

赤枠で囲った場所からデータの型の変更をすることができます。
日付が何かおかしなことになっているので日付形式の編集を押して適切な表示形式を提示してあげましょう。
選択できる型の一覧としては以下のようになります。

整数、10進数、文字列、日付形式の編集
地理 国、州/地域、群、市、郵便番号、緯度、経度

可視化の方法

次に可視化の実施に入ります。可視化したいデータセットの画面をデータセットの編集から開き、右上に公開して視覚化を押下してください。
すると次の画面が開きます。

基本的な操作方法

今回はハンズオンを目的としていないので最小限の説明に留めさせていただきます。
(今後、簡単なcsvデータからの抽出から整形までを行うハンズオン記事を執筆予定です。乞うご期待ください。)

折れ線グラフ
まず、ビジュアルタイプより折れ線グラフを選択してください。
その後X軸に時間、値に金額を入れます。
すると以下のようなグラフが生成されます。

良い感じに修正すると以下ようなグラフになります。

フィルターを追加すると何年の何月~何年の何月までと表示を指定することができます。
また、3点リーダーより予測の追加や右にあるインサイトから予測値に関するQuickSightの意見などを教えてくれます。

私が有用に感じた機能

  • 条件付き書式設定
    -なら赤+なら緑など設定したように色付けがされます。
    ピポッドテーブルやKPIを作成した際に使いました。

  • フィルター機能
    期間を選択することやこのフィールドなかでの比較などをすることができます。

  • ソート機能
    昇順、降順に並び替えることがサラッとできます。

  • 小計・合計機能
    フィルターをした値の計算がすぐに終わるため便利です。

まとめ

今回はQuickSightの概要と、S3とAthenaをデータソースとしたQuickSightの可視化までの流れを簡単に解説させて頂きました。

感想

初めてQuickSightを使いましたが一番苦労したのはエクセルのデータをデータセットにアップロードできる綺麗な形に整形する部分でした。
QuickSightをフルに活用するには簡易なデータをすぐに可視化・分析する用途に限定するかデータの整形を上手に素早くできるようになる必要があると感じました。
また、今回は紹介をすることはできませんでしたが大人数でデータを分析・可視化できる状態で共有するには、セキュリティ管理も簡単に細かく行うことができ優れたサービスであるので今後も記事として紹介していこうと思います。

reono

2022年4月、NHNテコラスに新卒入社。大学時代は山に登ったり、インドに行ったりしてました。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら