#はじめに
はじめまして、株式会社ジールの@ntakahashi425です。
BIツールであるMicroStrategy(以下MSTR)使ったデータ分析の構築を業務としております。
その中で得たノウハウをQiitaを通して発信していきます。
今回はMSTRの全体的なアーキテクチャの概要について説明させて頂きます。
#1.MSTRについての説明
そもそもBIとは蓄積している膨大なデータを収集・蓄積・分析・加工し、可視化する事によって、意思決定を支援するツールです。
その中でもMSTRは、オブジェクトがレポートから独立している事を特徴としています。
オブジェクトとは、データの定義情報を保持し、オブジェクトの定義により、生成されるSQLに影響を与えます。
多くのBIでは、レポートごとにデータを定義する必要がありますが、MSTRの場合、オブジェクトをレポートから独立して作成するため、オブジェクトの再利用/共有が可能です。
##簡単な処理の流れ
あるユーザーがオブジェクトを作成し、分析レポートを表示する際の処理の流れを説明します。
上図番号と処理の手順番号は一致しております。
①Warehouseのデータ定義を基に、Developerを使用してMSTRオブジェクトとして定義します。
定義したMSTRオブジェクトはMetadataに格納されます。
②Developerより、①で定義したMSTRオブジェクトを使って、レポートを定義します。
定義情報を基にIntelligence ServerはSQLを生成します。
③ブラウザより、作成したレポートを開くと、②で生成されたSQLが実行され、レポートが表示されます。
以下より、各用語の概要を解説します。
##Warehouseについて
Warehouseは、データベースの接続情報と、それに紐づいた各データベースのテーブル定義情報を保持しています。
##Metadataについて
オブジェクト定義が格納されるDBです。
標準ではMYSQLがバンドルされています。
##Intelligence Serverについて
Intelligence Serverとは、MSTRで行うほとんどの処理を管理するコアサーバーです。MSTRオブジェクトの定義に基づき、クエリ生成、レポート実行、ユーザーアクセス処理、OLAP分析を最適化します。
##Developerについて
MSTRオブジェクトを作成、編集、削除するための開発者用のツールです。
#2.オブジェクトとは
データベースのデータを定義したもので、定義情報はMetadataに格納されます。
オブジェクトでデータをどのように定義するかによって、生成されるSQLに影響を与えます。
下の図はオブジェクトの種類と階層を表したものです。
※一部、プロジェクトなど設定情報を保持するオブジェクトも存在します。
##スキーマオブジェクト
Warehouseから、テーブルの構造を論理的に定義したものです。
具体的には、売上や数量などの数値項目をファクトとして定義したり、
部署名や商品名などをアトリビュートとして定義します。
レポートを作成する上で、スキーマオブジェクトは最低限必要となるオブジェクトです。
##分析オブジェクト
スキーマオブジェクトを基に作成され、分析のニーズを満たすための処理を追加するオブジェクトです。
具体的には、売上にSUM関数を加えた売上合計メトリック、売上から費用を差し引いた利益メトリック、
営業部のみや、利益が〇〇円以下といった条件に一致するデータを表示するフィルター、
レポート表示時に部署の一覧が表示され、ユーザーが任意の部署を選択する事で、動的なフィルターを適用するプロンプトなどが該当します。
##分析レポートデータセット
上記で作成したスキーマオブジェクト、分析オブジェクトを配置し、グリッドやグラフとして表示するオブジェクトが分析レポートデータセットです。
##ドキュメント、ドシエ
一つ以上の分析レポートデータセットを基に作成され、様々なデータをグラフィカルにまとめ、一目で理解できるようにするデータ可視化オブジェクトです。
#まとめ
今回はMSTRにおけるアーキテクチャの概要と、オブジェクトについて、説明しました。
今後もMSTRにまつわるナレッジを記事に上げていこうと思います。