マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

SQL Server Analysis Services(SSAS:分析サービス)は、
SQL Server の標準機能として搭載されている、"データ分析" のための
サーバ機能(自習書シリーズ「Analysis Services 多次元モデル入門」より引用)

  • AD(Active Directory)のユーザセキュリティを前提とするので、AD環境が必須
  • 下記ビジネス インテリジェンス(BI)アプリケーション用の機能が用意されている。
  • Excelのピボットテーブルのデータソースとして利用でき、
    • リボンの「ピボットテーブルツール」、「フィールドリスト」で
      ドラッグ&ドロップの操作だけで自由に分析軸を入れ替えたり、
    • ドリルダウン(詳細を表示)をしたり、指定した値でフィルターしたり、

などなど、高度なデータ分析を行うことができる

詳細

OLAP機能

  • 以下の3つのモード用意している
  • インストール時のオプションで設定し、変更はできない。

多次元 OLAP (MOLAP)

  • 集計された実体キューブを構築(コンパイルのイメージ)し、クライアントが参照。
  • 直接キューブに対して、読出しと書込みの両方ができる。
  • 分析時にデータソースにアクセスしないので、応答時間が速い。
  • データを変更した場合、キューブの再構築が必要。

リレーショナル OLAP (ROLAP)

  • クライアントの要求に基づき、データソースにアクセスし、分析を開始する。
  • データベースの性能がボトルネックになる。
  • 実体キューブを構築しないので、データの変更を気にしなくて良い。

ハイブリッド OLAP (HOLAP)

動作モードについて

  • 以下の2つのモード用意している
  • インストール時のオプションで設定し、変更はできない。
  • 動作モードによってモデル構造も異なる。

多次元モード

  • SQL Server 7.0 の OLAP Servicesの頃から提供されている成熟された技術(モード)
  • データマイニング機能を利用できるが、スキル習得まで時間がかかる

表形式(テーブル)モード

  • 2012から追加されたインメモリで動作する高速な処理エンジンモード
  • PowerPivot? の処理エンジンを改良したものがサーバ上で動作するイメージ
  • セルフBIを目指したコンセプトと言われている

ロール

アクセスセキュリティをロールで設定可能で、 モデルによって設定箇所が異なる(サーバロールは同様?)

多次元モデル

  • 大きく分けてサーバロール、データベースロールがあり、グループ - グループメンバ的な管理が可能
  • オブジェクト毎に細かい設定ができ、例えばディメンションに対して
    見れるユーザと見れないユーザをロールによって制御することができる
  • 参考

テーブルモデル

  • 多次元モデルと同じように設定可能。※ どこが違うのかは未調査

基本的な作業の流れ

前提

  • 多次元モデルが前提
  • SQL Server Data Toolsを使用
  • 分析に適した接続可能な対象データベースがある

流れ

参考:自習書:Analysis Services 多次元モデル入門・STEP 2. Analysis Services 多次元モデルの基本操作

多次元モデル プロジェクトの作成

  • SQL Server Data Tools (Visual Studio)を起動し、プロジェクトを作成
  • 「Analysis Services多次元およびデータマイニング プロジェクト」を選択、基本項目(プロジェクト名)などを入力

データ ソースの設定

  • キューブの元となるデータを格納しているデータベースサーバに対して接続の設定をする
  • プロバイダを指定することによってOracleに接続する事も可能
  • Windowsサーバにプロバイダをインストールする事によって
    他のデータベースの接続も理論的には可能 ※ 未検証

データ ソース ビューの設定

  • 基本的なビューのスキーマはウィザードで自動的に作成可能
    (キーがしっかり定義されていれば、インテリジェンスが自動でリレーションも作成する)
  • 「テーブルの置換 > 名前付きクエリ」を実行すると、SQLエディタが表示されSQLを書くことができる
    (where句やjoinも普通に使用できるので、ここで大福帳的なデータを作成することも可能)

名前付き計算の追加

  • 必要に応じて、テーブル内の項目同士を式を使って演算したカラムを作成
  • ※ 単価 * 数量 = [受注金額] など

OLAP キューブの作成

  • キューブ・ウィザードを使用して、ディメンションやメジャーを大まかに定義
  • ※ 詳細な設定は後で一つ一つ行う必要がある。

属性と階層の設定

  • 分析軸となるディメンションの「属性」、「階層」を設定(設計)
  • メジャーに対して、どの関連データの切り口で分析するか、どんな階層をもたせるかデザインする

OLAP キューブの参照(利用)

キューブの処理を実行すると、

  • 「MDX クエリ デザイナー」と呼ばれるツールでキューブを確認
  • ExcelのPivotTable?のデータソースとして接続することで利用

できるようになる

計算メジャー

名前付き計算 と 計算メジャーについて

  • 名前付き計算はテーブルに設定してメジャーとして使用するが(※)、テーブルには設定せずにキューブ内に計算メジャーを作成し、同様な事ができる ※使用しないこともある

書き戻し(WriteTable?)

  • 多次元モデルの場合、「書き戻し」と言って処理後のキューブのデータに対してメジャーの更新が可能
    • キューブ > パーティションの設定で有効にする必要がある
    • Excel(Pivot Table)から利用するする場合、あわせてPivot Tableオプションから「What-if分析」を有効にする必要がある
  • この機能をうまく利用すると、現在のデータを元に将来の予測増減データを更新保存し、予測シミュレーション的な事ができる
  • 書き戻しで保存したデータは、[メジャーの格納テーブル名]_WriteTable?と言う名前のテーブルに差分として格納される
    • 元々の値100101に変更保存した場合、_WriteTable?には1が格納される
    • 元々の値10099に変更保存した場合、_WriteTable?には-1が格納される
      • PivotTable?などで接続して確認すると、メジャーの格納テーブル(元テーブル)のデータとそのWriteTable?のデータが合算されて表示される
  • 差分のトランザクションが保存されるため、更新回数が多いとレコード数が嵩んでいきパフォーマンスに影響することがある(自動で集約される事は無い)
    • 1レコードはPivotTable?の1セルに相当する
      • 1000セル更新したら1000レコードのトランザクションが格納される
      • 毎日毎日更新したら、毎日毎日トランザクションデータが増えていく
    • 書き戻しのデータを集約する方法はいくつかあるが、例えばtmpテーブルにWriteTable?のデータをキーでGroupかつsumして格納しておき、さらにtmpと元テーブルとを合算したデータをあらたなtmpに作成後、元のテーブルデータを消去、合算したデータを元のテーブルに入れると言った操作が必要となる(tmpテーブルはビューで代替しても良い)
  • 参考: パーティションの書き戻しの設定
  • 参考: Excel 2010 Writeback to Analysis Services (youtube)

その他


Tags: :データアクセス, :SQL Server


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-05-12 (日) 19:28:12 (67d)