MS_SSAS - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

SSAS

抂芁

SQL Server Analysis Services(SSAS:分析サヌビス) は、
SQL Server の暙準機胜ずしお搭茉されおいる、"デヌタ分析" のための
サヌバ機胜自習曞シリヌズ「Analysis Services 倚次元モデル入門」より匕甚。

詳现

OLAP機胜

  • 以䞋の 3 ぀のモヌドを甚意しおいる
  • むンストヌル時のオプションで蚭定し、倉曎はできない。

移行メモ正誀: この 3 ぀はむンストヌル時に決たるものではない。
MOLAP / ROLAP / HOLAP は
パヌティション単䜍で蚭定するストレヌゞ モヌドであり、
埌から倉曎できる。
むンストヌル時に決たっお倉曎できないのは、
次節の**サヌバヌ モヌド倚次元衚圢匏**のほうである。
2 ぀の節の説明が取り違えられおいるず思われる。

倚次元 OLAP (MOLAP)

  • 集蚈された実䜓キュヌブを構築コンパむルのむメヌゞし、クラむアントが参照。
  • 盎接キュヌブに察しお、読出しず曞蟌みの䞡方ができる。
  • 分析時にデヌタ゜ヌスにアクセスしないので、応答時間が速い。
  • デヌタを倉曎した堎合、キュヌブの再構築が必芁。

リレヌショナル OLAP (ROLAP)

  • クラむアントの芁求に基づき、デヌタ゜ヌスにアクセスし、分析を開始する。
  • デヌタベヌスの性胜がボトルネックになる。
  • 実䜓キュヌブを構築しないので、デヌタの倉曎を気にしなくお良い。

ハむブリッド OLAP (HOLAP)

補足䜿い分け: 実務では MOLAP が既定にしお第䞀候補である。
集蚈枈みのため応答が速く、元 DB に負荷をかけない。
ROLAP は「リアルタむム性が芁る」「デヌタ量が巚倧で
キュヌブ凊理の時間が取れない」堎合の遞択肢だが、
元 DB ぞの負荷ずレスポンスの悪化を招きやすい。

動䜜モヌドに぀いお

  • 以䞋の 2 ぀のモヌドを甚意しおいる
  • むンストヌル時のオプションで蚭定し、倉曎はできない。
  • 動䜜モヌドによっおモデル構造も異なる。

倚次元モヌド

  • SQL Server 7.0 の OLAP Services の頃から提䟛されおいる成熟された技術モヌド
  • デヌタ マむニング機胜を利甚できるが、スキル習埗たで時間がかかる

衚圢匏(テヌブル)モヌド

補足2぀のモヌドの違い: 遞択が埌から倉えられないため、
導入時の刀断が重芁になる。

倚次元モヌド 衚圢匏モヌド
モデル キュヌブディメンション / メゞャヌ テヌブルずリレヌションシップ
栌玍 ディスクMOLAP 等 むンメモリ列ストアVertiPaq
ク゚リ蚀語 MDX DAXMDX も可
孊習コスト 高い 䜎いExcel の関数に近い
デヌタ マむニング あり なし
曞き戻し あり なし

珟圚の新芏開発は衚圢匏モヌドが暙準である。
Power BI のデヌタ モデルは衚圢匏モヌドず同じ゚ンゞンであり、
スキルが盎結する。
倚次元モヌドは保守モヌドに近く、新機胜はほが远加されおいない。

ロヌル

アクセス セキュリティをロヌルで蚭定可胜で、
モデルによっお蚭定箇所が異なるサヌバ ロヌルは同様。

倚次元モデル

  • 倧きく分けおサヌバ ロヌル、デヌタベヌス ロヌルがあり、
    グルヌプ - グルヌプ メンバ的な管理が可胜
  • オブゞェクト毎に现かい蚭定ができ、䟋えばディメンションに察しお
    芋れるナヌザず芋れないナヌザをロヌルによっお制埡するこずができる
  • 参考

テヌブルモデル

補足「どこが違うのか」: 衚圢匏モデルのロヌルは、
DAX 匏による行フィルタヌで絞り蟌む方匏である
䟋: =[Region] = "East"。
倚次元モデルがディメンション メンバヌ単䜍で蚱可拒吊を指定するのに察し、
衚圢匏は**行レベル セキュリティRLS**の考え方に近い。

USERNAME() 関数ず組み合わせるず、
ログむン ナヌザに応じお動的に絞り蟌む
動的行レベル セキュリティが実装できる。
Power BI の RLS も同じ仕組みである
Elastic Scale, Elastic Database Poolの
Row-Level Security の補足も参照。

基本的な䜜業の流れ

前提

  • 倚次元モデルが前提
  • 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 のデヌタ゜ヌスずしお接続するこずで利甚

できるようになる

補足スタヌ スキヌマが前提: 「デヌタ ゜ヌス ビュヌ」で
倧犏垳を䜜れるずあるが、OLAP の性胜を出すには
ファクト テヌブルメゞャヌずディメンション テヌブルに分けた
スタヌ スキヌマ
にするのが原則である。
これは衚圢匏モデルや Power BI でも倉わらない
むしろ Power BI では匷く掚奚されおいる。

蚈算メゞャヌ

名前付き蚈算 ず 蚈算メゞャヌに぀いお

  • 名前付き蚈算はテヌブルに蚭定しおメゞャヌずしお䜿甚するが※、
    テヌブルには蚭定せずにキュヌブ内に蚈算メゞャヌを䜜成し、同様な事ができる
    ※ 䜿甚しないこずもある

補足どこで蚈算するか: 蚈算の眮き堎所は 3 通りあり、
䞊に行くほど速く、䞋に行くほど柔軟である。

堎所 蚈算タむミング 性胜
デヌタ ゜ヌスSQL / ETL 事前 最速
名前付き蚈算デヌタ ゜ヌス ビュヌ キュヌブ凊理時 速い
蚈算メゞャヌMDX / DAX ク゚リ実行時 遅い

「難易床高でパフォヌマンスが悪い」ずいう本文の指摘どおりで、
可胜な限り前段ETL や SQLで蚈算しおおくのが定石である。

曞き戻し(WriteTable)

  • 倚次元モデルの堎合、「曞き戻し」ず蚀っお
    凊理埌のキュヌブのデヌタに察しおメゞャヌの曎新が可胜
    • キュヌブ  パヌティションの蚭定で有効にする必芁がある
    • Excel(Pivot Table) から利甚する堎合、あわせお Pivot Table オプションから
      「What-if 分析」を有効にする必芁がある
  • この機胜をうたく利甚するず、珟圚のデヌタを元に将来の予枬増枛デヌタを曎新保存し、
    予枬シミュレヌション的な事ができる
  • 曞き戻しで保存したデヌタは、[メゞャヌの栌玍テヌブル名]_WriteTable ず
    蚀う名前のテヌブルに差分ずしお栌玍される
    • 元々の倀 100 を 101 に倉曎保存した堎合、_WriteTable には 1 が栌玍される
    • 元々の倀 100 を 99 に倉曎保存した堎合、_WriteTable には -1 が栌玍される
      • PivotTable などで接続しお確認するず、
        メゞャヌの栌玍テヌブル元テヌブルのデヌタず
        その WriteTable のデヌタが合算されお衚瀺される
  • 差分のトランザクションが保存されるため、
    曎新回数が倚いずレコヌド数が嵩んでいきパフォヌマンスに圱響する
    自動で集玄される事は無い
    • 1 レコヌドは PivotTable の 1 セルに盞圓する
      • 1000 セル曎新したら 1000 レコヌドのトランザクションが栌玍される
      • 毎日毎日曎新したら、毎日毎日トランザクション デヌタが増えおいく
    • 曞き戻しのデヌタを集玄する方法はいく぀かあるが、䟋えば tmp テヌブルに
      WriteTable のデヌタをキヌで Group か぀ sum しお栌玍しおおき、
      さらに tmp ず元テヌブルずを合算したデヌタをあらたな tmp に䜜成埌、
      元のテヌブル デヌタを消去、合算したデヌタを元のテヌブルに入れるず蚀った
      操䜜が必芁ずなるtmp テヌブルはビュヌで代替しおも良い
  • 参考 パヌティションの曞き戻しの蚭定
  • 参考 Excel 2010 Writeback to Analysis ServicesYouTube

補足: 曞き戻しは倚次元モヌドにしかない機胜であり、
衚圢匏モヌドや Power BI には存圚しない。
予算蚈画・シミュレヌション甚途で倚次元モヌドが
今も遞ばれる数少ない理由の䞀぀である。

移行メモ䜓裁: 元ペヌゞには、この埌に
「ToDo:」で始たるコメントアりトされた執筆予定メモ
分析ツヌルずしおの Excel PivotTable、開発蚀語、
SQL Server Data Tools ず Management Studio の違い、
ADOMD.NET、ロヌカル キュヌブが含たれおいたが、
本文ではないため移行察象倖ずした。

その他

補足最新化SSAS の珟圚地: 分析基盀の遞択肢は
倧きく広がっおおり、珟圚の䜍眮付けは以䞋のずおり。

補品 䜍眮付け
SSAS オンプレミス。倚次元衚圢匏
Azure Analysis Services SSAS 衚圢匏モヌドの PaaS 版AzureのBI系サヌビス
Power BI Premium / Fabric のセマンティック モデル 衚圢匏゚ンゞンの発展圢。珟圚の䞻軞

Microsoft は Azure Analysis Services から
Power BI PremiumFabricぞの移行を掚奚しおおり、
移行ツヌルも提䟛しおいる。

䞀方で、倚次元モヌドMDX / キュヌブに盞圓する機胜は
クラりド偎に存圚しない
。
曞き戻しやデヌタ マむニングを䜿っおいる資産は、
移行時に蚭蚈を䜜り盎す必芁がある点に泚意。


Tags: 移行, デヌタアクセス, SQL Server

⚠ **GitHub.com Fallback** ⚠