技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

ビジネスダッシュボード 設計・実装ガイドブック(7)

データ準備の全体像と概要

要件の確認

要件/設計をまずは確認する。
ダッシュボードで集計・分析したい指標を精査して、その計算ロジックを決定する。
特注意するのが「データ粒度の検討」。どれくらいの細かさでデータを保持するか。粒度が細かいほど柔軟に処理できるけど、データサイズが大きく、速度も落ちる。

テーブルの設計

定義された指標・比較軸をBIツール上で作成できるテーブルを設計する。
気にするのはデータソース、テーブル、カラムの3つ。
MAツールや、CRMツールなどのデータを、一度データウェアハウスなどの分析用データベースに連携 → ダッシュボード用のデータマート構築が多い。
- データマートの作成方針(どのテーブルから何を抽出するかなどの方針)策定 - データマートの環境パターンを検討
下記どちらかを利用するが、 1. 複数データから作成した統合テーブルをBIツールに指定するパターン 2. 複数のデータテーブルやデータマートのテーブルをBIツールに適用するパターン - テーブルの項目の設計
チャートのデザインから逆算する。構成要素は「ディメンション*1」「メジャー*2」「フィルター条件」「計算条件」があるので、これを検討したうえでテーブル設計していきます。
テーブルの形状は
- Entry-Attribute-Value 型 : ディメンション、メジャー名、メジャー値 で構成されるテーブル - Tidy Data 型 : EAV型からメジャー名を除去したヤツ。テーブル毎に役割をきっちり切るならこれが最もシンプル。 - Wide Spread 型 : 集計済みのメジャー値を大量にカラム保持するテーブル。年月(ディメンション)-各店舗集計値(複数カラム)の様な構成。BIツールで扱いやすいけど、拡張性が全くない

テーブルの作成

テーブル設計書に従ってテーブルの作成。
大抵はSQLでデータの加工をする。
気を付ける箇所は - データサイズ:
大きいとダッシュボードでの読込や表示が遅延する - トランザクションデータは期間を絞る: 売上とかアクセスログは時間経過で増え続けるので、データマートを作る場合、全期間ではなくて過去Nか月等で絞らないと、レコード数が多すぎて遅延する - 小さくできるデータは小さくする: yyyy-MM-dd HH:mm:ss.sss とかは UnixTime 持っとけばどうにかなるし、極力小さいデータで保持する。 - 集計、集約する: 1 日単位で集約するなど、意味が一緒ならデータは小さく保つ - どこまで計算/加工するか DB で計算/加工する範囲と、BIツールで計算/加工する範囲を考える。
この策定にはいくつかある - わかりやすさ: データマートのテーブルを見たときに何が入っているか分かるレベルまでで DB 集計する。 - 動的性: 集計単位を動的に変更する場合、最初から集計してしまうと対応できないので、参照したい単位を基準にする。 - 汎用性: ダッシュボード以外でも利用する場合、加工しやすい単位にとどめておく。

データ更新のルール化

データの更新頻度、方法を決定する。

  • 更新方法
    ざっくり自動か手動かがある。自動更新なら「毎晩 0 時にデータベース更新、毎朝 4 字にBIツール側の更新をする…」等。
    手動更新なら、マニュアル化して運用する。
  • 更新頻度
    毎日、毎月、毎週、毎時等集計を実行する単位を決定する。
    重要なのは、更新頻度をユーザに周知しておくこと。
    時間がずれたまま認識されて、誤った解釈をされるのが一番問題。

データ準備にまつわる課題と解決策

よくある課題を列挙…

  • 手戻りが多くなってしまう
    ダッシュボードのデータ作成者と構築者が別の時に、実現できないチャートやフィルタの存在に気付く…
    フィードバックを受けてデータの作り直し…はよくある状態。
    解決策: 最終成果物のイメージをモックとかにして固めておく。
  • 分析するには粒度が細かすぎる
    見える指標が細かすぎると、「何が言えるのか」が分からなくなります。
    解決策: マスタデータを切り離して、パラメータ単位で集計するのではなくて、カテゴリや同一マスタ単位で集計するなどすることで、大まかな傾向が拾えます。
  • 生データが膨大すぎる
    説明不要…
    解決策:
    • データを期間で区切って集計する
    • 粗めの粒度で集約する

ダッシュボード構築

  • データ接続: 名前の通り
  • データ前処理: テーブル結合と加工のこと。
  • 関数作成・計算チェック: 集計や分類などの条件分岐関数など
  • チャート作成: 表題の通り、BIツールのドキュメントを読み込むべし。
  • ダッシュボードレイアウト作成・配置: 色、テキスト、余白などの調整や、フィルタ配置、注釈配置等。
  • フィルタ等の動的機能の設定・動作チェック: フィルタの組み込みと打鍵。
  • パフォーマンスチェック: 名前の通り。

*1:XX別に見る等、比較軸

*2:確認したい指標/数値