多次元分析の概要とデータ分析のポイント

仕事でSQLServerを使った多次元データ分析の案件を担当することになったので勉強中。

@ITの記事がわかりやすくまとまってたので、自分なりに要約してみた。

★第2回 多次元分析の概要とデータ分析のポイント

■定型、非定型検索およびレポート参照における主なデータ分析機能
http://www.atmarkit.co.jp/fdb/rensai/sqls_analysis02/sqls_analysis02_01.html

・検索機能

条件指定 定型検索であれば固定の項目に値を設定し、非定型検索であれば任意の項目に値を設定してデータを抽出する機能
集計 検索したデータを特定の項目でグルーピングして集計を行う機能
ソート 検索したデータを特定の項目で並べ替える機能
計算式 検索したデータに構成比や予実対比などの計算した値を付加できる機能

・出力機能

グラフ 検索したデータをグラフとして表示する機能
各種形式出力 検索したデータをPDF、Excel、XMLなどの形式で出力する機能

・管理機能

利用状況     レポート単位に利用者からのアクセス状況(回数、頻度)を把握する機能
アクセス制限 レポート単位にアクセス制限を設定する機能

→第4回 Reporting Servicesを使ったレポート作成の技
http://www.atmarkit.co.jp/fdb/rensai/sqls_analysis04/sqls_analysis04_01.html

SSRS(SQLServer Reporting Services)

・定型検索
・ブラウザから参照

■多次元データ分析の概要
http://www.atmarkit.co.jp/fdb/rensai/sqls_analysis02/sqls_analysis02_02.html

多次元データ分析は複数の次元(ディメンション)を切り替えて、さまざまな角度で分析できるのが特徴
「キューブ」という独自のデータベースを構築する必要がある

キューブの構成

・分析の視点となるディメンション
・金額や数量などの分析の対象となるメジャー(集計した値)

で構成されている。(図はリンク先参照)

キューブのデータモデル

MOLAP

多次元データベースは独自形式(MDB)
一般的にはリレーショナル・データベースを使用したROLAPよりレスポンスは良い
SQLのような標準のAPIはなく、ディメンションの数が増加するとデータ容量も増加する

ROLAP

多次元データベースにリレーショナル・データベースを使用する
ディメンションを柔軟に変更できるのが特徴
MOLAPに比べパフォーマンスが低い

HOLAP

多次元データベースにMDB(集計データ)とRDB(明細データ)を使用
MOLAPとROLAPの両方の特徴を備えている

ディメンションの階層構造とメンバ

ディメンションには階層構造を定義する
各階層に属するデータは「メンバ」と呼ぶ
多次元分析はディメンションと階層の定義で分析できる範囲が決定するため、階層の定義は重要
階層はどのレベルでデータを分析したいかで決定する

例)都道府県-地区-店舗 のような階層

多次元分析方法(リンク先の図がわかりやすい)

ドリルダウン

ディメンションの現在の階層よりも下位の階層のデータを分析する
例:関東地区から下位の都道府県を検索する

ドリルアップ

ディメンションの現在の階層よりも上位の階層のデータを分析する
例:都道府県から上位の関東地区を検索する

スライス

ディメンションの特定の値を選択して、データを絞り込んで分析する
例:特定の商品を指定して、その商品の月別、店舗別売り上げを見る

ダイス

ディメンションを入れ替えて、異なる角度で分析する
例:店別/期間別 ⇒ 商品別/店別 ⇒ 商品別/期間別

ドリルスルー

集計データの基になる明細データを分析する
例:11月にA店で売れたX商品の内訳(明細データ)検索

■多次元分析のポイント
http://www.atmarkit.co.jp/fdb/rensai/sqls_analysis02/sqls_analysis02_03.html

・複数の分析視点を組み合わせた集計値の分析(クロス集計)に向いている

キューブは集計値を効率良く検索することに特化したデータベースなので、明細データを検索するのは不得意
集計する数値項目がないデータはキューブを構築できないため分析できない

・分析視点に階層を設定できる分析に向いている

階層構造を設定しなければ、ドリルダウン/ドリルアップという多次元分析特有の分析機能が使えないため、キューブを構築する利点がない

・複雑なデータの絞り込みを行わず、一覧的にデータを見る分析に向いている

例:商品ディメンションと店舗ディメンションでの絞り込み
(商品=A or  商品=X) and (店舗=B or  店舗=Z) ⇒ 検索可
(商品=A and 店舗=B) or  (商品=X and 店舗=Z) ⇒ 検索不可

■キューブ設計におけるポイント

1. ディメンションとディメンション階層の決定

多次元分析ではディメンションの構成(種類と階層構造)で分析できる範囲が決定するため重要
ディメンションの構成は以下の両方の視点で決定する
・アウトプットから洗い出すボトムアップアプローチの視点
・データの構造から検討するトップダウンアプローチの視点
・ディメンションの構成が決定すれば、キューブ設計の半分は終了したといっても過言ではないくらい重要

2. ディメンションの数

一般的に1つのキューブに設定するディメンションの数が多くなると、キューブのデータ更新処理時間とサイズが増加する
増加傾向はディメンションのメンバ数やファクトデータの件数により異なる
キューブに設定するディメンションの数はキューブのデータ更新処理時間を目安に決定する

3. データの整備

1つのファクトデータを複数のディメンションで分析するため、データの整合性を確保することが重要(商品ディメンションを例にすると、新製品のファクトデータが発生したときには、商品ディメンションには新製品のレコードが存在していなければならない。存在していないと新製品のファクトデータはキューブに取り込まれないため、数値の信頼性がなくなる。)

4. 有効な集計値の保持

ファクトデータが大量になると分析のレスポンスを保証するのが難しくなる
レスポンスは、多くの集計を作成することで保証できるがキューブを更新する処理時間も増加する
レスポンスと運用(キューブの処理時間)を両立させるためには、無駄な集計値は作成せず、有効な集計値に限定して作成する必要がある

→第3回 Analysis Servicesを使って多次元分析に挑戦しよう
http://www.atmarkit.co.jp/fdb/rensai/sqls_analysis03/sqls_analysis03_01.html

手順はリンク先参照

SSAS(SQLServer Analysis Services)

・多次元分析
・エクセルのピボットテーブルで参照

BI(ビジネスインテリジェンス)とは何か

仕事でSQLServerを使った多次元分析の案件を担当することになったので勉強中。

@ITの記事がわかりやすくまとまってたので、自分なりに要約してみた。

★第1回 ビジネスインテリジェンスとは何か

「企業内外にある膨大なデータから有用な情報を引き出して企業の意思決定に活用する」
という考え方は、メインフレーム時代からの永遠のテーマとなっている。

■データ分析の変遷
http://www.atmarkit.co.jp/fdb/rensai/sqls_analysis01/sqls_analysis01_01.html

1970年代

MIS(Management Information System)

1980年代

DSS(Decision Support System)
→経営者の意思決定を支援することを目的にしていたが、実際は専任アナリストが利用するシステムだった。

・1990年代

DWH(Data Warehouse)膨大な企業データを蓄積するデータの格納庫
OLAP(Online Analytical Processing)蓄積されたデータを活用するための技術
DM(Data Mining) 統計学のアルゴリズムを用いて大量のデータを解析して、潜在的なパターンや相関関係を見つけ出す分析手法

→OLAPやデータマイニングも専門性が求められるため、データを活用する場合には、情報システム部門にデータの抽出や加工を依頼しなければならない状況だった。

・2000年代

BI(ビジネスインテリジェンス)
企画・経営層や一般ユーザーが、情報の専門家に頼ることなく、自らが売り上げや顧客などのデータ分析を行い、迅速に意思決定を行う

■データ分析の手法と利用者層
http://www.atmarkit.co.jp/fdb/rensai/sqls_analysis01/sqls_analysis01_02.html

↑利用者[少]&分析難易度[高]

★データマイニング(利用者:企画スタッフ)

統計学のアルゴリズムを用いてツールが情報の中に隠れている潜在的なパターンや相関関係を発見したり、将来起こり得る事象を予測する仮説発見型の分析

★多次元分析(利用者:企画スタッフ、管理スタッフ)

分析者があらかじめ仮説を立てて、それを検証する分析
複数の分析視点(次元)を組み合わせて分析できる
多次元分析では分析するために集計したデータを格納する「キューブ」という独自のデータベースを構築する

★非定型検索(利用者:管理スタッフ、パワーユーザー)

出力項目、出力形式、条件項目などを任意に設定してレポートを作成

★定型検索(利用者:パワーユーザー、一般ユーザー)

出力項目、出力形式、条件項目は固定で、条件の値を変えてレポートを作成

★レポート参照(利用者:一般ユーザー、マネジメント)

ほかのユーザーが作成したレポート(多次元分析やマイニングなど作成したレポート)を閲覧

↓利用者[多]&分析難易度[低]

このように1つの会社の中でも役割により、データの分析手法は異なる。
利用者層に合わせた分析手法と分析ツールを選択することが重要

■データ分析を行うための環境
http://www.atmarkit.co.jp/fdb/rensai/sqls_analysis01/sqls_analysis01_03.html

データウェアハウス(DWH)

・業務のデータベースは独立して構築されていることが多く、そのままでは統合して分析することができない
・業務データベースのデータは最新の状態を保持していることから、過去何年間の傾向を見るような時系列の分析ができない
・そのために、分析専用のデータベースであるDWHを構築する必要がある
・業務データベースの更新データは、日次または週次でDWHに取り込み蓄積する。
・その際には名寄せやフォーマット変更など、データを統合して分析できるための加工をETL(Extract, Transform and Loading)と呼ばれるツールで行う

データマート(DM)

・DWHは全社的なデータを時系列に一元的に蓄積するため、テラバイト級のサイズになることも珍しくない
・このサイズのDWHをユーザーに開放するとパフォーマンスを保証することが難しいので、実際には部門別や目的別にデータを切り出したDMを作成する
・DMを作成する理由は3つ
・1.DWHへのアクセス負荷を分散させる
・2.データを絞り込むことによりユーザーの検索効率を向上させる
・3.分析ツールに最適なデータを用意するため

データ分析の流れ

業務データベース群 → ETL(抽出・変換・ロード) → DWH → DMまたはキューブ(これをデータ分析)