[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]

-[[戻る>SQL Server]]

* 目次 [#rba1dafb]
#contents

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

-Analysis ServicesはAD(Active Directory)のユーザセキュリティを前提とするので、AD環境が必須

-下記ビジネス インテリジェンス(BI)アプリケーション用の機能が用意されている。

--オンライン分析処理 (OLAP) 機能~
リレーショナル データベースなどの外部データ ソースから、~
集計したデータを含む多次元構造を設計、作成、および管理できる。

--データ マイニング機能~
データ マイニング アプリケーション用に、さまざまな業界標準のデータ マイニング アルゴリズムを使用して、~
外部データ ソースから構築するデータ マイニング モデルを設計、作成、およびビジュアル化できる。

-Excelのピボットテーブルのデータソースとして利用でき、リボンの「ピボットテーブルツール」、「フィールドリスト」でドラッグ&ドロップの操作だけで自由に分析軸を入れ替えたり、ドリルダウン(詳細を表示)をしたり、指定した値でフィルターしたり、などなど、高度なデータ分析を行うことができる

-Oracle や DB2 など、ほかのデータベース製品のデータをもとに OLAP キューブを作成することもできる
--Oracleに直接接続するのではなくSQL Serverでリンク サーバーにするケースもある
---参考:[[SQL Server で Oracle へのリンク サーバーのセットアップおよびトラブルシューティングを行う方法>https://support.microsoft.com/ja-jp/kb/280106]](2011年頃)

*オンライン分析処理 (OLAP) 機能 [#r13277c6]
-OLAP(Online Analytical Processing)について
--RDB(リレーショナル データベース)の生みの親でもある E.F.Codd 博士が生み出した言葉で、博士は「RDB は、基幹系処理を行うために理論化されたものであり、分析処理には向かない」と言って、分析処理に関する OLAP を提唱したのが語源 参考:[[wikiペディア>https://ja.wikipedia.org/wiki/OLAP#.E8.A3.BD.E5.93.81]]

-SSASではOLAPを実現する仕組みとして以下の3つのモード用意している ※インストール時のオプションで設定し、変更はできない
--多次元 OLAP (MOLAP)
---集計された実体キューブを構築(コンパイルのイメージ)し、クライアントが参照。
---直接キューブに対して、読出しと書込みの両方ができる。
---分析時にデータソースにアクセスしないので、応答時間が速い。
---データを変更した場合、キューブの再構築が必要。
--リレーショナル OLAP (ROLAP)
---クライアントの要求に基づき、データソースにアクセスし、分析を開始する。
---データベースの性能がボトルネックになる。
---実体キューブを構築しないので、データの変更を気にしなくて良い。
--ハイブリッド OLAP (HOLAP)
---MOLAP と ROLAP の属性を組み合わせたもの
---キューブは構築するが、構造だけでデータは格納しない(データのインデックスのみを保持)
--※参考[[パーティションのストレージ モードおよび処理>https://msdn.microsoft.com/ja-jp/library/ms174915(v=sql.120).aspx]]


* 動作モードについて [#o8baa15a]
-SSASの動作モードには以下の2つのモードがあり、「表形式(テーブル)モード」は2012で追加されたモード。インストール時にどちらかのモードを選択する必要があり、後から変えられない。動作モードによってモデル構造も異なる(「BI Semantic Model」
(BISM))。
--多次元モード
---SQL Server 7.0 の OLAP Servicesの頃から提供されている成熟された技術(モード)
---データマイニング機能を利用できる
---スキル習得まで時間がかかる
--「表形式(テーブル)モード:Tabular Mode」
---2012から追加されたインメモリで動作する高速な処理エンジンモード
---PowerPivot の処理エンジンを改良したものがサーバ上で動作するイメージ
---セルフBIを目指したコンセプトと言われている
--参考
---[[テーブル ソリューションと多次元ソリューション (SSAS) の比較>https://msdn.microsoft.com/ja-jp/library/hh212940(v=sql.120).aspx]]
---[[BI Semantic Model>https://msdn.microsoft.com/en-us/library/jj735264.aspx]] ※ 本文のwordドキュメント(英語)

* ロール [#x90131f8]

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

-多次元モデル
--大きく分けてサーバロール、データベースロールがあり、グループ - グループメンバ的な管理が可能
--オブジェクト毎に細かい設定ができ、例えばディメンションに対して見れるユーザと見れないユーザをロールによって制御することができる
--参考
---[[セキュリティ ロール (Analysis Services - 多次元データ)>https://msdn.microsoft.com/ja-jp/library/ms174840(v=sql.120).aspx]]
-テーブルモデル
--多次元モデルと同じように設定可能。※ どこが違うのかは未調査
--参考
---[[ロール (SSAS テーブル)>https://msdn.microsoft.com/ja-jp/library/hh213165(v=sql.120).aspx]]

* 多次元モデルでの基本的な作業のながれ [#a108a826]
 ・多次元モデルが前提
   ※ テーブルモデルは自習書:「Analysis Services によるインメモリ BI 入門」参照
 ・SQL Server Data Toolsを使用
 ・分析に適した接続可能な対象データベースがある
   ※ SSASのデータソースビューを使用して、ある程度SQL文で調整可能だが、ソースデータが整備されている方が望ましい

-ながれ
+Analysis Services 多次元モデル プロジェクトの作成
--SQL Server Data Tools(VisualStudio)を起動し、プロジェクトを作成
--「Analysis Services多次元およびデータマイニング プロジェクト」を選択、基本項目(プロジェクト名)などを入力
+データ ソースの設定
--キューブの元となるデータを格納しているデータベースサーバに対して接続の設定をする
--プロバイダを指定することによってOracleに接続する事も可能
--Windowsサーバにプロバイダを追加(インストール)する事によって他のデータベースの接続も理論的には可能 ※ 未検証
+データ ソース ビューの設定
--基本的なビューのスキーマはウィザードで自動的に作成可能(キーがしっかり定義されていれば、インテリジェンスが自動でリレーションも作成する)
--「テーブルの置換>名前付きクエリ」を実行すると、SQLエディタが表示されSQLを書くことができる(where句やjoinも普通に使用できるので、ここで大福帳的なデータを作成することも可能)
+名前付き計算の追加
--必要に応じて、テーブル内の項目同士を式を使って演算したカラムを作成
-- ※ 単価 * 数量 で [受注金額] など
+OLAP キューブの作成
--キューブウィザードを使用して、メジャーやディメンションを大まかに定義
-- ※ 「大まか」は語弊があるかもしれないが、詳細な設定は後で一つ一つ行う必要がある。
+属性と階層の設定
--分析軸となるディメンションの「属性」、「階層」を設定(設計)
--メジャーに対して、どの関連データの切り口で分析するか、どんな階層をもたせるかデザインする
+OLAP キューブの参照(利用)
--キューブの処理を実行すると、「MDX クエリ デザイナー」と呼ばれるツールでキューブを確認したり、ExcelのPivotTableのデータソースとして接続することで利用できるようになる

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

* 名前付き計算 と 計算メジャーについて [#ba21702f]
-名前付き計算はテーブルに設定してメジャーとして使用するが(※)、テーブルには設定せずにキューブ内に計算メジャーを作成し、同様な事ができる ※使用しないこともある
--難易度高でパフォーマンスが悪いが、組込みの集計関数を使用して特殊な計算ができる
---参考: [[メジャーおよびメジャー グループ>https://technet.microsoft.com/ja-jp/library/ms174792(v=sql.110).aspx]]
---参考: [[集計関数の使用>https://technet.microsoft.com/ja-jp/library/ms365396(v=sql.110).aspx]]


//
//*書き戻し(WriteTable) [#x38e57e3]
//-ToDo: 書き戻しについて書く
//
//*ToDo: 分析ツールとしてExcelのPivotTableを使う例を書く [#z8c12829]
//--ToDo: 他、SSRS、PowerViewのさわりだけ書く
//
//*ToDo: 開発の言語、アーキテクトが対象によって違う事を書く [#t643adc1]
//-開発者ガイド (Analysis Services)
//--https://msdn.microsoft.com/ja-JP/library/bb500153(v=sql.120).aspx
//--「テーブル モデルのプログラミング」から大雑把に説明し、特に「多次元モデルのプログラミング」について書く
//
//*ToDo: SQL Server Data ToolsとManagementStudioでできることの違いについて [#c18dfa3d]
//-書く
//
//*ToDo: ADOMD.NET での開発について記載する [#vae61a4c]
//-https://msdn.microsoft.com/ja-jp/library/ms123483(v=sql.120).aspx
//
//*ToDo: ローカルキューブについて書く [#mec90cb7]


*その他 [#y1c6fd5c]
-エディション毎の機能サポートについてはMicrosoftのページ
[[SQL Server の各エディションがサポートする機能>https://msdn.microsoft.com/ja-jp/library/cc645993(v=sql.120).aspx#SSAS]]を参照
-[[自習書シリーズ>https://www.microsoft.com/ja-jp/server-cloud/local/sqlserver/2012/technology/self-learning.aspx?WT.srch=1&WT.mc_ID=SEM_jHjUAPFU]]
--[[Analysis Services 多次元モデル入門>http://download.microsoft.com/download/5/A/2/5A29D047-2D83-4ACD-919F-4614847E8392/SQL11_SelfLearning10_SSAS.pdf]]
--[[Analysis Services 多次元モデル応用>http://download.microsoft.com/download/5/A/2/5A29D047-2D83-4ACD-919F-4614847E8392/SQL11_SelfLearning11_SSAS2.pdf]]
--[[Analysis Services によるインメモリ BI 入門>http://download.microsoft.com/download/5/A/2/5A29D047-2D83-4ACD-919F-4614847E8392/SQL11_SelfLearning12_InMemory.pdf]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS