В SQL Server Analysis Services два движка, и первое решение в проекте — какой из них выбрать. Оба называют «кубами», но устроены они по-разному.
Многомерная модель (Multidimensional)
Классический OLAP-куб, который появился в SSAS ещё в начале 2000-х. Данные хранятся в многомерной структуре на диске, часть агрегатов считается заранее, расчёты пишутся на языке MDX.
Сильные стороны:
- зрелые средства для сложных иерархий: родитель–потомок, неоднородные иерархии;
- обратная запись (writeback) — пользователи могут вводить плановые значения прямо в куб;
- предсказуемая работа на очень больших объёмах, которые не помещаются в память.
Слабые стороны: модель сложнее проектировать и сопровождать, специалистов по MDX становится меньше, а Microsoft развивает в первую очередь табличный движок. В облачном Azure Analysis Services и в Power BI многомерной модели нет.
Табличная модель (Tabular)
Появилась в SQL Server 2012. Данные хранятся в памяти в сжатом колоночном формате (движок VertiPaq), расчёты пишутся на DAX — том же языке, что и в Power BI.
Сильные стороны:
- модель проще: таблицы и связи, привычные любому, кто работал с базами данных;
- высокая скорость на типичных отчётах благодаря сжатию и работе в памяти;
- общий язык и общие навыки с Power BI, модель можно перенести в облако;
- режим DirectQuery, когда данные не загружаются в модель, а запрашиваются из источника на лету.
Слабые стороны: нужна память. Сжатие обычно уменьшает данные в разы, но сервер всё равно подбирают под объём модели с запасом на обработку.
Как выбираем мы
| Ситуация | Что предлагаем |
|---|---|
| Новый проект, отчёты в Excel и Power BI | Tabular |
| Нужен ввод планов прямо в модель | Multidimensional или отдельный контур планирования |
| Уже есть многомерный куб, он работает и устраивает | Оставить и развивать, переход не самоцель |
| Объём данных в сотни гигабайт после сжатия | Tabular с секциями или DirectQuery; реже Multidimensional |
| В планах переезд в облако | Tabular |
Переписать многомерный куб на табличную модель — не механическая конвертация. MDX-расчёты переводятся на DAX вручную, а часть приёмов многомерной модели в табличной устроена иначе. Такой переход оправдан, если старый куб тормозит, его некому сопровождать или компания переходит на Power BI.
Версии и лицензии
Analysis Services входит в лицензию SQL Server и отдельно не продаётся. В редакции Standard есть ограничения, прежде всего по объёму памяти для модели, а часть возможностей для больших моделей доступна только в Enterprise. Ограничения отличаются от версии к версии, поэтому мы сверяем их на этапе обследования вместе с текущими лицензиями заказчика.