LoginSignup
3
0

More than 1 year has passed since last update.

QuickSightを使ってみました

Last updated at Posted at 2022-12-14

Introduction

本記事は、ハンズラボ Advent Calendar 2022 15日目の記事です。

きっかけ

AWSのQuickSightでどのようにデータが可視化されるのかに興味を抱きました。しかしハンズオンやどこかのデータを元に可視化するのは、興味を覚えませんでした。
そこで、社内Slackにおいて、どんなスタンプが使われているのかを可視化してみようと感じました。

結論

早速ですが、可視化してみるとこのようになりました。
縦軸はスタンプの使用数、横軸は時間軸です。
なお、プライバシーの問題があるため、どんなスタンプがあるのかを見せられません。

slack_sticker.png

申し訳ないですが、可視化されたグラフのみを紹介いたします。

QuickSightを用いることで、上記のごちゃごちゃしたデータから見たい部分のみを抽出することが出来ます。
slack_nov.png

本日のお品書き

・Slack APIを用いてスタンプ情報を取得する。
・QuickSightでサクッと可視化

対象者

・Slack APIに興味がある人
・1を聞いて10を理解できるエンジニア
・QuickSightを使ってみたい方
Macユーザーの人
・データの前処理に苦しむ方

非対象者

・Slack APIが超お得意な人
・説明下手な筆者を攻撃しようとするエンジニア
・QuickSightの最高到達クエストをクリア済みの方
Windowsユーザーの人
・データの前処理エキスパートの方

自己紹介

smile.jpg

自己紹介ページ

環境情報

環境情報
macOS Monterey ver:12.6.1
Python 3.9.13

最近はPipenvを使っています。
Pipenvに関する詳細は、こちらの記事がわかりやすかったので、リンクを貼っておきます。(古い記事ですのでご注意ください)
要約すると仮想環境でいい感じにライブラリを管理してくれるバージョン管理システムです。

Python2系とかPython3系の意味が分からない人へ! Pythonには2系と3系があって、最近始めた人ならほとんどPython3系だと思います。一応バージョンを確認する方法を記載しておきます。 MacOSに入っているターミナル(Terminal)でPythonのインタラクティブ(対話)モードを起動すればバージョン情報が表示されます。
$ Python
> Python 3.9.13 (main, Aug 17 2022, 11:46:02) 
[Clang 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

インタラクティブモードを辞めるには*exit()*を入力しましょう!

Let's Start

Slack APIを用いてスタンプ情報を取得する。

Slack APIの導入に関しては、割愛しますので過去の記事を参照してください。

今回は、メッセージが投稿された時刻その投稿にひもづくスタンプスタンプを押したユーザーの情報を取得しています。
なお本来は、メッセージが投稿された時刻ではなく、スタンプが押された時刻を取得したかったのですが、そのデータはAPIに含まれていないため、メッセージが投稿された時刻を利用しています。

QuickSightには、CSVで取り込みますので、事前にCSV形式で出力しました。

なおSlackのtimestampをQuickSightが読み込んでくれなかったので、事前に日本の日付形式に修正しています。1

"ts":
メッセージが投稿されたタイムスタンプ。このタイムスタンプは、オンラインの UNIX 時間変換ツールを使って日付に変換できます。
https://slack.com/intl/ja-jp/help/articles/220556107-Slack-%E3%81%8B%E3%82%89%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%97%E3%81%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E8%AA%AD%E3%81%BF%E6%96%B9

作成したCSVは下記のような構造にしました。2

ts sticker user
2022-12-13 17:54:32 hoge user_id
2022-12-13 17:27:32 fuga user_id

QuickSightでサクッと可視化3

QuickSightを初めて使う場合は、AWSの登録とは別で利用登録が必要となるようです。
費用の詳細等はこちらを参考にしてください。自分はスタンダードプランで作成しました。

利用登録を済ませ、マネコンをぽちぽちした結果、CSVを読み込むことに成功しました。

そしてぽちぽちすること数分後、、、

slack_sticker.png

冒頭でも紹介した謎のグラフの完成です。
縦軸はスタンプの使用数、横軸は時間軸です。
CSVのレコード数がそのままスタンプの使用数として、縦軸へ出力されています。(同じ投稿に一人の人間が特定のスタンプを複数回押すことはできないため)

しかしこのままでは何が何だかわからないため、フィルターを用いて、時間軸で分割します。

やり方としては、フィルターを用いて、1ヶ月間のみを表示します。
importしたデータから時系列を意味するパラメータであるtsを選択します。
filter_1.png

このように、期間を選択できるようになるため、こちらで任意の日付に設定します。
自分は、11月1日 ~ 11月30日を選択しました。
filter_2.png

slack_nov.png

マネコンから操作できるので、コードを書き換える必要はありません。
便利ですね。

マッピングされる要素を自分で調整する必要がない点が楽だと思います。
ただ、上記の画像から分かる通り、有意な情報をグラフから読み取るためには、もう少しマネコンをいじる必要があります。
今後はそのあたりを進めていく予定です。

To be Continued

終わりに

今後もTwitterでこのようなデータの可視化を発信しています。興味があったらご覧ください。 大抵はくだらないことです。

Sempleのツイッター

Future Work

今回はQuickSightの検証ということで、データの可視化を簡単に試しました。
初めてQuickSightをさわってみましたが、データから有意な情報を取得する目的で使いやすいと感じました。
ソースコードを修正した方が早い場合もありますが、選択肢としてQuickSightを用いたデータの可視化もできるようにしておくと良いと思います。
今後は、曜日ごとの統計だったり、月ごとの統計、スレッド内のリアクションも取り込めたら面白いと感じています。

なお、Slack APIに関しては、こちらで試行錯誤してる方がいるので、事前に見ておくのも良いかもしれません。

参考記事

  1. QuickSightでそのまま読み込める可能性もあります。しかしPythonを書き換える方が容易だったので、大して調べきれていません。Future workですね。

  2. 今回の可視化では、user_idは使っておりません。

  3. QuickSightが既に、サクッと可視化って意味なので、頭痛が痛い状態ですね。

3
0
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
3
0