2020/01/14

Coding は一切なし、爆速かつ簡単な KPI Dashboard の作り方 ~Treasure Data と Google Spreadsheet の活用~

WRITER: h.bang

目次

  • はじめに
    • 筆者について
    • KPI Dashboard とは?
    • なぜ  KPI Dashboard が必要なのか。
    • KPI Dashboardを作るには(一般的な作り方)
  • Codingなし、爆速かつ簡単な KPI Dashboardの作り方
    • 簡易版 KPI Dashboard の使い道
    • Treasure Data で Scheduled Query を作成する方法
    • Scheduled Query から Google Sheet に export する方法
    • Google Sheet の VLOOKUP を活用し、1つのタブに必要な数字をまとめる
    • Google Sheet の Graph 機能を活用し、Dashboardを作る
  • まとめ

はじめに

筆者について

みなさま、はじめまして。

10ANTZブログへの投稿は今回が初めてです。10ANTZで分析グループのマネージャーをやっております。房(バン)と申します。よろしくお願いします。

KPI Dashboardとは?

特定の組織のビジネスに置いてもっとも重要な数字をKPI (Key Performance Indicator) といい、それらの KPI を一箇所にまとめて一目で把握できるようにしたものを KPI Dashboard と言います。

なぜ KPI Dashboard が必要なのか。

KPI と定めた数字は各自が独立して動くものではなく、お互いが連動して動いたり、影響し合うものです。なのでビジネス目標を達成する為に KPI を追っていくには、各々の KPI を追うだけじゃ足りなくてなるべく多くの KPI を同時に把握するのが大事です。

KPI Dashboard を作るには(一般的な作り方)

  • ここでは集計対象のデーター(Raw Dataまたはログ)が存在するところを [データーウェアハウス] と言います。集計対象のデーターはログとか Raw Data が実際発生する「アプリ」とか「Webサービス」とか「ゲーム」とかその他、何かしらのビジネスプロダクトから流れてきます。このデーターの元となるプロダクトを [データーソース]
    • この [データーウェアハウス] には Hadoop や Spark と言った自前で管理する製品から Treasure Data や Google Big Query などのいわゆる Full Managed なサービスなどいろんな種類があります。
  • まずは、その [データーソース] から KPI データーを集計する [集計バッチ] を作成する必要があります。
    • 集計は主に Hive / Presto などのSQL文で作成されますが、データーソースの API にアクアスし、実行する SQL文を渡したり、その結果を求めて [ストレージ] に保存したりするには汎用なプログラミング言語を用いる必要があります。主に、Python, Perl, PHP と言ったスクリプト言語が使われると思います。さらに、定期的に集計を行うには、cron や jenkins と言った [スケジューラー] も必要になります。
  • [ストレージ] とは一度集計が終わった KPI に対して再度集計を行わなくても済むように、結果を保存する場所のことです。
    • この [ストレージ] には一般的に RDBMS が使われるのでデーターベースの構造などを設計する必要があったり、運用の手間がかかったりします。
  • 必要な集計結果のデーターをストレージから取り出したり、加工したりするKPI Dashboard の [バックエンド] を作成する
    • ここでは KPI Dashboard を Web 基盤で作ることを前提にしているので [バックエンド] もWEB の API を作成できる言語で作成することを想定しています。
  • KPI Dashboard の [フロントエンド] の「グラフ」・「表」などの要素やユーザーが操作するUIを作成する。
    • 同じく Web 基盤で作られる前提なので、最近だと React や Vue.js などを使うのが主流だと言えるでしょう。
  • 一般的には [集計バッチ], [スケジューラー], [ストレージ], [バックエンド], [フロントエンド] からなるシステム全体を「KPI Dashborad」と称することが多いと思います。

ここで説明した内容を図で表現するとこんな形になります。

このようなシステムを作成するにはどうしても時間とコストがかかってしまいますが、ビジネスを進めるに当たって欠かせないものでもあるのでじっくり時間とコストをかけて作ることになると思います。

Codingなし、爆速かつ簡単な簡易版 KPI Dashboard の作り方

簡易版 KPI Dashboard の使い道

ここからが本ポストの本論ですが、ちゃんとした KPI Dashboard を作る前に臨時代用の簡易 KPI Dashboard を作る方法です。実際に KPI Dashboard を作成する前のプロトタイピングとしても使えるし、ビジネスの初期にある会社さんや試作品をリリースする際の簡易版 KPI Dashboard としても使えると思います。当社ではゲームの新機能や新イベントの細かい KPI を集計する必要があるときに、ひとまずこの方法を使って新機能や新イベントのリリースと同時に数字が取れるようにしてから、その機能やイベントが完全定着した時点で KPI Dashboard に載せ替えるやり方をしています。

作り方の概要

Treasure Data で Scheduled Query を作成する方法

  • DAU, 課金率, ARPPU を集計するクエリーを作成します。

こちらはDAU Queryの作成例です。ログのTableから、クエリーを実行する日 [TD_SCHEDULED_TIME()]を基準に user_idを数えるだけの簡単なクエリーです。課金率、ARPPUは課金Tableから集計することができるはずです。

  • Queryを保存しておくことで後から同じクエリーを再度作成することなく使いまわせるようになります。
  • クエリーの結果はシンプルに 「日付、集計結果」の組み合わせになるようにします。

Scheduled Query から Google Sheet に export する方法

Treasure Dataにはいろんな種類の export 機能が用意されています。

  • まずは Dashboard として使う Google Sheet を作成してそのシートの Key を確認します。Google Sheet の Key はURLから確認できます。

赤で囲った部分が Google Sheet の Key です。

  • 次は、 Treasure Data の UI から Integrations Hub(左メニューの一番上のアイコン)から Catalog メニューに進みます。
  • Catalog のリストから Google Sheet を探します。
  • Google Sheet を選択してご自身の Google アカウントで認証を行います。
  • Connectorの名前を入力して保存します。
  • 保存した Query に戻ります。
  • 右上の [Export Result] にチェックを入れることで Connector を選択する画面が現れます。ここで先保存した Connectorを選択します。
  • [Use Spreadsheet Key] 項目にチェックを入れて Google Sheet の Key を入力し、Data の出力先のタブ名を [Worksheet Title] 項目に指定します。毎日数字が集計されて追加されるので [Upload Mode] は Append を選択します。
  • これで Query を保存すると、このクエリーを実行する度にその結果を Google Sheet に export します。
  • なので、毎日実行されるようにクエリーのスケジュールを設定しておきます。

データータブは仮に1ヶ月分集計されたらこんなイメージになります。

Google Sheet の VLOOKUP を活用し、1つのタブに必要な数字をまとめる

ここから先は普通に Google Sheet の使い方の話になります。
  • 上で説明した方法で DAU、課金率、ARPPUなど Dashboard に表示したいデーターを各々のタブに集計されるようにします。
  • そのあとは、Dashboardとなるタブに VLOOKUP関数を使って全てのデーターをまとめます。
  • 今回のサンプルでは [ =VLOOKUP($A21, DAU_from_TD!$A2:$B, 2) ] みたいな感じで書きました。

Google Sheet の Graph 機能を活用し、Dashboardを作る

まとめたデーターを全て選択した状態でメニューの「挿入」→「グラフ」を選択することでグラフのを作成することができます。
グラフの種類・色・軸などをカスタマイズすることでお好みのDashboardを作成することができます。
Google Sheetの Sparkline関数を活用すると、各々の KPI 別のグラフも簡単に表示することができます。サンプルの画像では赤で囲った部分が sparkline関数を使った部分となります。

まとめ

  • Treasure Data の Scheduled Query と Google Sheet を活用して簡易的な Dashboard を作成することができます。export 先を Google Sheet にするだけでデーターを簡単に1カ所にまとめることができます。
  • あとはVLOOKUP関数とグラフを活用して自由に見やすいDashboardを作成するだけです。
  • 本格的な Dashboard システムを開発する前に、是非試してみてください!