「BIツール」活用 超入門 Google Data Portalではじめるデータ集計・分析・可視化　第3章　BIツールに関する知識をつける

## まとめ
この章はインプット中心なので、気になったところを簡単にまとめていきます。
情報系システムに関する知識を学んでいく。

#### 3-2 BIツールはいつ必要になるのか、定着フェイズ
組織の状況によりBIツールの用いられ方は変わってくる。

###### 1.立ち上がりフェイズ
BIが組織に根付いてない状況。データソースも点在しているので、統合した分析が行えない。

片手間のデータ分析になるので、なんでもできるようなBIツールを導入したら良い。

###### 2.成長中フェイズ
データの必要性は認知されいる。供給より需要が上まっている状態になりがち。

簡単な作業はBIツールで効率化されるが、高度なものは難しい。個別の専門ツールの導入の検討が起こる。

###### 3.成熟期フェイズ
データ業務が定着している。BIツール以外のツールも用いられ、BIを体現することになる。全体最適化が課題となってくる。

ツールや組織の変更が定期的に繰り返される。


#### 3-3　BIツールとデータ分析環境の立ち位置
##### BI環境で求められる8の機能
###### 1.データの収集
データを発生させ、蓄えているサービスからデータを抜き出すことを目的とする。

今はELTと呼ばれ、抽出(Extract)、保存(Load)、加工(Transfer)の頭文字を取っている。この本では収集(EL)と加工(T)に分けるて説明する。

これらを扱うツールは複数あることが普通。接続の仕方は収集源によって違うが、ツールによって接続できる先に差があるので、必要なものが揃っているかの意識も必要。

###### 2.データの加工
組織が発展すると、加工周りで共通化のニーズが発生する。こうなった時は、可視化の前に使いやすい形にして、そこをBIツールが見にいくようにする。

そうすると、それの作成のためのロジックの定義、実行の重要性が高まる。ロジックを解決する手段として、専門性によってのノーコードやプログラミング言語など、適宜選ばれる。

###### 3.データの蓄積
蓄積はただデータを貯めるだけでなく、使うことが目的なので、パフォーマンスが重要視される。保存量が増えると金額やパフォーマンスに影響が出てくるかなどを意識する必要がある。

最近ではDate Lakeと呼ばれるファイルを置く層と、利用者がアクセスするDWHという動きが見られる。

DWHでは一般的に表形式のデータにする必要があるが、収集してきたデータによってはそのままでは加工できないことがあるので、そうした場合は一度Data Lakeに置いて、加工してからDWHに投入する手順を踏む

ここらへんはインターンでの業務でも体験しましたね。

###### 4.データの可視化及び可視化の管理
BIツールのメイン機能。

この本でも何度も触れてきた、データにアクセスし、可視化する機能ですね。
メイン機能なので、集計・可視化の簡易さや、探しやすいプラットフォームも重要。

###### 5.データの配信・共有
作成した可視化を繰り返し利用することに備え、配信・共有する機能。
大量のレポート配信を人力でやるのは難しいが、自動化することでコストを抑えながら情報の流通の拡大が可能になる。

###### 6.メタデータの管理
データの収集・蓄積が進み、利用者が増えると背景を知らない人も増える。
そうした時に、メタデータといって、蓄えたデータそのものに関する情報を管理し、検索できる機能が必要になっている。

###### 7.ジョブ管理
他の機能の実行を制御する機能。実行の制御のため、ジョブやタスクといった処理を記述する。この定義されたジョブの実行を、時間や他のジョブの実行状態に基づいて制御する。

最も使われるのはETL周りで、発展的になるとレポートの配信制御などで用いられる。

###### 8.BI環境のパフォーマンス
BIの表示パフォーマンスや、ETLの実行状態などを計測、表示する機能。簡易なアクセスが求めらえる。

#### 3-4　ETL,DWHに関する基礎知識
##### ETLの、ExtractとLoadの対象
ETLでは簡易にデータを集めることが重要となる。システムやサービスごとに接続方法や取得できるデータの形式が異なるからである。

バージョンアップなどの変化などに対応してくのも大変になってくる。

そこで専門のETL機能やツールで上記の作業を行うことができる。

一般的にExtractとLoadの対象となるのは
###### 1.ローカルやBIツールにアップロードしたファイル
ファイルの形式としてはcsvやtsvが用いられる。Excelファイルも大抵は読み込めるが、適切な表構造でないと読み込めない。

###### 2.ファイルストレージ内のファイル
DropboxやGoogle Drive内のファイル。こうしたサービスのストレージにあげたcsvファイルなどを直接読み込める。ストレージを使うと複数人での共有時に便利。

###### 3.提供されているAPI
BIツールやETLツールでは、APIと接続し、取得するための手続きを比較的簡易なプログラムできる機能で接続できる。

ただし一定の専門性が必要になってくるため、利用者の多いBIツールやETLツールでは接続機能が用意されていることが多い。

###### 4.データベースシステム
データベースシステムへの接続がBIツールのメイントレンド。データベースシステムとしては、RDBやNoSQLといったものや、大量のデータを捌くことに向いたDWH(Data Ware House)などを指すこともある。

##### Extract方式
一般的な連携方式は
###### ・バルク方式
多くのデータをまとめて抽出する方式
###### ・ストリーム方式
データの発生ごとに少数のデータを連携する方式
に分類される。この2つは抽出元の負荷やデータの必要性に応じて選択される。

##### Load方式
Loadする際にもいくつかの方式が存在する。格納の形式によって加工の仕方が異なるので注意。
###### ・洗い替え
既にあるデータを削除し、取得してきたデータで完全に置き換える。
更新前や削除前のデータをLoad側に残せないという問題がある。

###### ・差分
該当データのみ更新する。
更新されたものが何か、またそれが既にあるデータのどれと合致するかをわかった上で実行しなければならない。

###### ・つみ上げ
取得したデータをひたすら追加していく。
いつ取得したかなどの情報や、利用者側が最新のものだけを取得する必要が出てくる。


##### DWHのトレンド
DWHとしてクラウドサービスが最近ではよく利用される。
これにより、巨大なサーバーを用意しなくても大量のデータを扱えるようになってきている。

##### Transferとデータマート
上記のDWHは中にデータを格納し、活用する際にアクセスする。DWHではテーブルの形でデータが保存されているが、使いやすくするため複数のテーブルを組み合わせたり、分析に使いやすいように事前に加工しておくのが一般的。

##### 加工の基礎知識
データの加工でよく用いられるのは4つの概念。
###### ・テーブル間の結合
横に結合するパターンと、縦に結合するパターンがある。Webサービスなどで用いられるリレーショナルデータベースでは、ID(キー)でテーブルの結合をすることを前提としている。キーが存在しない場合は、IDを連結させる対照表を自分で作るなどが必要になる。

###### ・列方向の処理
分析や計算時に便利になるように処理を行う。大半のツールでは同じ列で同様の処理がかかる。

###### ・フィルター処理
残すレコードや除外するレコードの条件を決めて、それに基づいてレコードを増減させる処理。

###### ・集計
単位を決めて、集約処理をかけること。

簡単なSQLの表。

| 処理名 | SQLキーワード |
|:-:|:-:|
| テーブル間の結合  | (left outer)join,union all  |
| 列方向の処理  | select  |
| フィルター処理  | where  |
| 集計  | group by  |

3-5はBIツールの紹介だったので割愛。

#### 3-6　BIエンジニアの業務フローとケイパビリティに関して
##### BI開発の流れ
###### 1.依頼の詳細化
以下を依頼者にヒアリングし、書き残したら良い
・依頼者がどのような業務に使うのか
・どんなタイミングで使うのか

###### 2.アウトプットのすり合わせ
ヒアリングを基に、アウトプットの形をすり合わせていく。見る数値とその数値を見る際の単位と基準値をはっきりさせる。

ここではグラフの種類、配置、デザインはあまり気にしないようにする。

###### 3.基礎調査
アウトプットの必要性と方向性がヒアリングで明らかになったので、実現させるための調査を進めていく。必要な指標の集計、作成方法の考案、データが存在するかなどをちゃんとする。

また、必要なグラフや基準値の示し方などをすり合わせていく。

###### 4.実開発
ここまできてようやく開発に着手できる。依頼者とのコミュニケーションは基本必要ないが、進捗などを定期的に共有したらよい。

###### 5.ユーザーテスト
作成したものを依頼者に実際に触ってもらう。

##### BI開発の必要ケイパビリティ
BI開発チームを作っていく場合、上記のステップを行えるメンバーを集めていく。


必要な3つのケイパビリティ
例　プロダクト開発の場合
###### 1.利用するツールの知識
Matabase、SQLの基礎知識

###### 2.依頼者への業務への理解と、要求を整理する力
改修する機能を決定する業務、ユニットエコノミクスなどの指標運用に関する知識

###### 3.データを収集、加工するための技術に関する知識と実行力
プロダクトの利用ログの発生タイミングや形式に関する知識、ログに対しユーザー属性データを紐付け、日付単位で指標を集計できること

3-7も割愛、DMBOKみたいのは応用情報でも触れましたね。

## 感想
こういう知識系のは中々疲れますが、今までやった業務や、slackでの会話で出てきたことの復習になって面白かったです。