SSASとは
SSASはSQL Serverの標準機能として提供される分析専用のサービスです。連載第3回の冒頭でデータ活用のステップを3つのレベルにわけて説明しましたが、SSASはレベル2の「現状分析」に最適な機能を提供しており、弊社が提供するExcel や Power BI、SQL Server Reporting Services (SSRS)はもちろん、3rd PartyのBI製品等からも接続が可能なオープンな分析基盤です。
SQLを扱えないビジネスユーザでも「彼らの用語で」「自由に」データを取得するために必要なレイヤーをセマンティックモデルと総称します。セマンティックモデルにはいくつかの方式があり、一般的なWebベースのエンタープライズBI製品に多いのが、物理的にデータを持たずに、ユーザからのリクエストをSQLに変換してRDBMSに問い合わせをするものになります。
ほかにも、多次元データベースとして事前集計をしたり、インメモリ型の高速な集計エンジンで都度計算をしたりすることで、RDBMSに問い合わせをする場合に比べてレスポンスを向上させるような仕組みもあります。これらすべての方式を同一パッケージ内で自由に使い分けていただくことができるのがSSASの強みになっています。
また、一般的な情報系のシステムにおいてほぼ必ず要件として取り上げられるもののひとつとして 「部や課といった単位で見られるデータの範囲を制御したい」といったデータのアクセス制御が挙げられますが、SSASはActive Directory と連携して、ユーザの職責に応じて柔軟にデータアクセス制御をかけることができます。
通常複数のBIツールを使う場合、ツールごとにセキュリティ制御をかける必要があり二度手間・三度手間になるケースも多いかと思いますが、SSASをデータソースとしてお使いいただければ、様々なクライアントツールから接続しても、アクセス制御をソース側で一元管理することができます。
本記事では以降、SQL Server 2012から提供しているSSAS表形式モードについて主に触れていきます。インメモリ技術を使って大量データを高速に集計できるモードになっています。
SSASデータモデルの開発
一般的に情報系プロジェクトはウォーターフォール方式で開発が進むことが多く、長期プロジェクトになると当初に合意したはずのユーザ要件がシステムリリースの時点では変わってしまい、結果としてあまりユーザに使われないシステムになってしまうといったケースがあります。
一方で、SSAS 表形式モードは従来型の多次元データベース(いわゆるキューブ)と異なり、アジャイル方式を適用しやすい分析データベースです。そのため、ユーザ要件をヒアリングしながらデータモデルを開発し、開発したモデルに対してさらにユーザからの要望を反映していく、といった形で開発が可能です。
SSASのデータモデルを開発する際は SQL Server Data Tools (SSDT)と呼ばれるSQL Server共通の無償開発ツールを使用します。また、Excel 2010 から提供しているPowerPivotはSSAS表形式モードと同一の技術を使っているため、PowerPivotで作成されたデータモデルをSSAS上にデプロイすることも可能です。これにより、従来IT部門に依存していたデータモデルの開発を一部ユーザ側でも行うことができます。これが開発期間の短縮化を実現し、その結果としてビジネスのスピードアップに貢献することができます。