Amazon QuickSightと仲良くなるためのTips

こんにちは。小笹です。
最近は、Amazon QuickSightを使って事業の分析を行って経営に活かそうと頑張っています。

QuickSightとはAmazon Web Servicesが提供しているビジネスインテリジェンスツールです。詳しくは公式サイトをご覧くださいませ。
https://aws.amazon.com/jp/quicksight/

結論

Amazon QuickSightと仲良くなるにはデータセットの「計算フィールド」を上手く使うのが大事。

やりたいこと

AWSエンジニア特化型のマッチングプラットフォーム「engineed」では弊社独自の実技試験を提供させていただいています。その実技試験結果をもとに利用企業はユーザーに対してスカウトを送ることができるので、よりその人に合った良い機会をエンジニアに届けられると思っています。

その中で受験済みのユーザーと未受験のユーザーで、どういう差異が生まれているのかを分析したい気持ちになりました。(ex.スカウトの受信率など。)

なのでAmazon QuickSightでも受験しているかどうかのフラグを見たい気持ちになりました。

が、ユーザーのテーブルにはそのフラグは持っていませんでした。実技試験の結果が格納されるテーブルが存在しており、そことユーザーのテーブルがIDをもとに、リレーションが設定されているような構造でした。

プログラムを描く脳みそでこれを書き下すと、  
「ユーザーのテーブルと実技試験結果のテーブルを結合して、一つでも試験結果があれば受験済み、なければ未受験。」  
となるかと思います。

では、Amazon QuickSightで同じことを実現しようとするとどうするのが良いか、その時に使うが「計算フィールド」です。

計算フィールドとは

これは、任意の値に対して任意の関数を実行し、その結果をあたかも一つのレコードとして扱うことができる機能です。

https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/working-with-calculated-fields.html

今回でいえば、「一つでも試験結果があれば受験済み、なければ未受験。」のところを「計算フィールド」で表現することができます。

管理画面からデータセットにアクセスし、 「計算フィールドを追加」ボタンで追加画面に遷移できます。

当然、データの持ち方にも依りますが、isExameeなどの名前で計算フィールドの名前を設定し、

isNotNull({試験結果})

のような内容で保存をします。

すると、ユーザーテーブルには実際には存在していないisExameeというカラムを扱うことができるようになります。

これにより分析が効率的に行えるようになります。

isNotNull以外にも多くの関数が用意されているので、データをどう持っているかを意識しながら、なるべくプロダクトのデータ構造をいじらないで分析ができると、軽量なソフトウェアを保てるのではないかなと思ってます。

こちらからは以上です。