[各論]BIツール導入のための比較軸をまとめてみた。

# 前提
- 本記事では、BIツール導入の際に考慮した方が良いポイント（比較軸）を紹介します。<br/>
- **投稿者が業務で実際に使っており、お手頃価格で導入可能という観点**で、以下３つのBIツールに比較軸を当てはめてみて、各々のユースケースを考えます。
  - Tableau
  - GoogleDataPortal
  - Redash

(※比較軸とBIツールの対応表は細かいので最後の章にしました。)
(※他のBIツールも、使用次第追加していきたいと思います。個人的にLookerは試してみたいものの。。。)


# モチベーション
- BIツール導入に良く関わるので、**BIツールを完全に理解した！**時点での知見を整理しておきたい。
- BIツール導入に関する議論に向けて、自分の考えをまとめておきたい。
  - 特に、直近の「2020/2/20に#1 BIツール徹底討論」など。

# 内容
## 用語集（一部のみ）
#### 登場人物
- 一般ユーザ
  - 一般ユーザは、作成されたダッシュボードに対してフィルタ条件を変える程度の操作を前提。
- パワーユーザ
  - パワーユーザは、自分でデータマートとBIツールを接続して、ダッシュボードを作成することを前提。

#### BIツール用語
- データソース
  - データの参照先（例：BigQueryやRedshiftのサーバ上だけでなく、CSVファイルなどのローカルファイルを指す場合もある。） 。
- LOD関数(※Tableauで登場する用語)
  - SQLでいうところのWindow関数。詳細は「Tableau LOD」の公式を参照してください。<br/>
  例えば、”販売額”・”商品名”・”商品カテゴリ”というデータがあった時に、単純に”商品名”で集計した場合は”商品名毎の総販売額”しか出せないが、LOD関数を使うことで”商品名毎の総販売額”と”商品カテゴリ毎の総販売額”を同時に出力することも可能です。同時に出力することで、商品と商品カテゴリを比較したグラフが作成可能です。

#### データ分析基盤用語
- データウェアハウス（DWH）
  - 未加工のデータを非正規化したり、複数のデータを統合したテーブル群。ここからデータマートを作成する流れになります。
- データマート（DM）
  - データを分析用途に合わせて集約したテーブル群。（例：カテゴリ別DAU、課金額別DAUテーブルなど） 
  - **分析用途のデータマートを用意しない場合は、BIツールの発行するSQLにより、データソース側に想定外の負荷やデータ操作を行う場合がある。そのため、BIツールが接続前提のデータマートを構築しておくことは必要です。**

## BIツール選定で考慮すべき比較軸
- 料金
  - 無料 or 有料
- 基本機能
  - グラフ描画機能
  - 計算式によるデータ作成
- 利用ユーザの学習コスト
  - フィルタ操作でパラメータ変える位の一般ユーザ or 自分でカスタムレポートを作るパワーユーザ
- 利用可能なデータソース 
  - CSVファイルなどのローカルファイル or BigQueryなどのサーバー接続
- インフラの構築
  - PCインストール or 独自サーバー構築 or SaaS
- セキュリティ・運用
  - データアクセス制御
  - ユーザ操作制御

## BIツール毎のユースケース
- 概要
  - Tableau/GoogleDataPortalとRedashは、想定利用者が異なり、分析者とエンジニアと分かれる。
  - GoogleDataPortalを試しに使って、BIツールの有効性が見えたら、Tableauも検討する。

#### Tableau（Desktop, Server/Online）
- 想定利用者：
  - **Tableau Desktopについては、ゴリゴリと探索的な分析を行うデータ分析者向け。**
  - Tableau Server/Onlineについては、ダッシュボードを見る一般ユーザ向け。
- 想定ユースケース：
  - 「LOD関数（SQLにおけるWindow関数）」など豊富な関数が存在しており、ゴリゴリと探索的な分析が出来ます。そのため、**扱うデータの軸も増えて、データ分析の粒度が深くなってきた段階では利用したいです。**
  - Tableau Server/Onlineについては、「ユーザの操作権限の制御」や「利用ユーザのなりすましによる条件確認」の機能もあるため、**ホワイトレーベルとして自社ブランドのサービスとして第三者に提供も可能です。**
- 前提：
  - 年払いのライセンス料金がかかります。１人あたり約１０万/年です。 また、ダッシュボードを他人と共同編集する場合、他人もライセンスが必要です。
  - ローカルPCでも利用できますが、**数百万レコードを超えるデータを分析する場合には何かしらのデータベースに接続して使うことがほぼ前提です。**そのため、分析用データマート構築とエンジニアが必要になります。

#### GoogleDataPortal
- 想定利用者： 
  - ダッシュボードを見る一般ユーザ向け。
  - データ分析者向け。**ただし、簡単なデータの傾向を見る程度の用途を想定。**
- 想定ユースケース：
  - 計算フィールド作成時の関数がTableauと比較して少ない（特にLOD関数がない）。そのため、BIツール側で詳細なデータ加工はしない前提が良いです。
  - 利用者数に関係なく無料です。Tableauなど有料BIツール導入の前に、BIツールで組織の業務効率が改善されそうか？などの効果検証を行うために、**BIツールをまずは試してみるという段階で利用できます。**その上で使えそうな場合は、Tableauも併せて検討すると良いです。
- 前提：
  - **BigQueryに接続して使うことがほぼ前提です。**そのため、分析用データマート構築とエンジニアが必要になります。
  - BigQueryの強みは、未加工データを格納してTB級データを短時間で集計が可能なため、まず試しにBigQueryにデータを集約することはデフォルトの選択肢になります。

#### Redash
- 想定利用者：
  - **問い合わせなどデータ周りの挙動や不具合の調査をするサポートエンジニア/担当エンジニア。**
  - SQLが書けるデータ分析者。
  - ダッシュボードを見る一般ユーザ。ただし、パラメータを埋め込んだSQLの作成者が別で必要。
- 想定ユースケース：
  - 「Query result」というSQLの結果を保存して、新しいSQLに利用可能な機能があります。そのため、複数のデータソース（例：MysqlとBigQuery）を参照し、Redash上でDWHの作成が可能です。そのため、**複数のデータソースからデータを収集したデータ分析基盤の構築に時間が掛けられない段階からも利用可能です。**
  - SQLの作成と保存が可能なため、データソース側で分析用データマートを準備する必要がないです。そのため、**分析用データマートの構築に時間が掛けられない段階からも利用可能です。**
  - パラメータを埋め込み動的なSQLの発行が可能なため、定型化された集計・分析については、一般ユーザ単独で様々な条件での結果を出力できます。
  - グラフは表示できるものの調整機能がないです。そのため、テーブルデータをCSVダウンロードしてExcelなど別のBIツールで加工が必要です。
- 前提：
  - データソースからのデータの読み込みにはSQLを書くことが必要です。

# （参考）各比較軸とBIツールの対応表
## 料金

| 比較軸 | Tableau | GoogleDataPortal | Redash |
|:--|:--|:--|:--|
| 無料 | × | ○ | ○(OSS版) |
| 課金形態 | 1ライセンス・年間契約 | なし | 作成ダッシュボード数など<br/>(Redash as a Service) |

## 基本機能（計算式によるデータ作成、グラフ描画機能など）

| 比較軸 | Tableau | GoogleDataPortal | Redash |
|:--|:--|:--|:--|
| グラフの軸・ラベルの表示や調整が可能 | ○ | △ | × |
| ダッシュボード機能（複数のグラフを一括出力） | ○ | △ | △ |
| フィルタで選択可能な項目が自動表示 | ○ | ○ | × |
| 計算フィールドの作成が可能 | ○ | ○ | ×(ただし、SQL書ければ不要) |
| Window関数が利用可能 | ○(LOD関数) | × | × |
| 複数のデータソースを統合可能 | ○ | ○ | ○ |

## 利用ユーザの学習コスト
- BIツールを導入する上で、利用ユーザが使えるか？は最も重要な要素と言えます。

| 比較軸 | Tableau | GoogleDataPortal | Redash |
|:--|:--|:--|:--|
| フィルタ操作のみの一般ユーザ向けダッシュボードの場合、操作は簡単か？ | ○(項目一覧が自動表示) | ○(項目一覧が表示) | △(項目一覧は表示不可) |
| パワーユーザが自分でグラフを作成する場合、操作は簡単か？ | ○(ピボットテーブル作成の要領で作成は可能。) | ○(ピボットテーブル作成の要領で作成は可能。) | △(SQLからの出力前提、グラフの作成も分かりづらい。) |

## 利用可能なデータソース 

| 比較軸 | Tableau | GoogleDataPortal | Redash |
|:--|:--|:--|:--|
| PC上のローカルデータの直接参照 | ○(Tableau Desktopのみ) | × | × |
| サーバ上のデータウェアハウス参照 | ○ | △(ほぼBigQuery一択) | ○ |

## インフラの構築

| 比較軸 | Tableau | GoogleDataPortal | Redash |
|:--|:--|:--|:--|
| 独自のインフラ運用不要(SaaS) | ○(Tableau Online) | ○ | ○(Redash as a Service) |
| 独自サーバー上で構築 | ○(Tableau Server) | × | ○(OSS版) |
| スタンドアローンなローカルPCで利用 | ○(Tableau Desktop) | × | △(自分のPCにサーバーを立てれば、、、) |

## セキュリティ・運用

| 比較軸 | Tableau | GoogleDataPortal | Redash |
|:--|:--|:--|:--|
| 利用者のダッシュボード操作制御が可能 | ○ | ○ | × |
| 利用者のデータソースアクセス制御が可能 | △(プロジェクト単位) | ○(データソース毎) | ○(データソース毎) |
| URLパラメータ利用が可能<br/>（利用者の問い合わせ調査時に有用） | × | × | ○ |
| 管理者のユーザなりすましが可能<br/>（利用者の問い合わせ調査時に有用） | ○(Tableau Online) | × | × |
| 利用者のアクセス状況の可視化がBI単独で可能 | ○(Tableau Online) | ×(監査ログの参照が必要) | ×(監査ログの参照が必要) |
| ユーザ毎に固有のパラメータ設定が可能 | ○(Tableau Server/Online) | × | × |