文系データサイエンティストのブログ

文系なのにサイエンティストってあれかなぁ。。。

どうやってBIまでデータを持ってくるのか。

BI(=Business Intelligence)を使って可視化するデータは、自社内で発生するデータ(=内部データ)と自社外で発生するデータ(=外部データ※1)に大別されるかと思います。
では、どのように内部データと外部データをBIまで持ってくるのか。以下はBI周りのアーキテクチャの一例です。


f:id:bunkei-datascientist:20170926181336j:plain

企業の内部データは、SAPに代表される基幹系システムから取得します※2。通常、基幹系システムからData Staging Area(DSA)を噛ませてData Warehouse(=DWH)にデータを持ってきます。
一方、外部データはOperational Data Store(=ODS)を噛ませてDWHにデータを持ってきます。
DSAやODSを噛ませてDWHにデータを持ってくる理由は、DWHが求める形にデータを変換するためです。変換といっても、データの正規化・非正規化やRDB形式への変換など様々ありますが、また別の記事で。
上記の処理でDWHに貯めた内部データと外部データをもとに、BIの要件に併せてDM(=Data Mart)を作成します。
BIから直接DWHを参照しない理由は、BIで画面を参照する時のパフォーマンスが非常に低下するためです。DWHには分析に必要な全データが格納されており、且つ正規化されている状態です。したがって、BIから直接DWHを参照しようとすると、参照時に大量のデータの結合などの処理に時間がかかり、画面表示のパフォーマンスが非常に悪くなるのです。
このような理由から、DMは画面要件に必要なデータのみに絞った上で非正規化した状態でデータを保持するのが一般的です。
最後に、BIからDMを参照することでデータを可視化することができます。
以上が、内部データ及び外部データをBIに持ってくるまでのフローでした。
上記以外にも、DWHの代わりにData Lakeを使うパターンなど様々あるので、また記事にできればと思います。


※1:最近だと、SNSのデータとか。
※2:基幹系システムがメインですが、流行りのIoTを推進している企業では、センサーデータ等もデータ分析対象となっています。その場合、非構造データを扱うことになるので、DWHではなくData Lake使うことになるんですかね。(センサーデータを扱ったことがないのでわかりませんが。。。)