2017-09-26 どうやってBIまでデータを持ってくるのか。 BI Data Pipeline BI(=Business Intelligence)を使って可視化するデータは、自社内で発生するデータ(=内部データ)と自社外で発生するデータ(=外部データ※1)に大別されるかと思います。 では、どのように内部データと外部データをBIまで持ってくるのか。以下はBI周りのアーキテクチャの一例です。 企業の内部データは、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使うことになるんですかね。(センサーデータを扱ったことがないのでわかりませんが。。。)