КубЛаб

Tabular или Multidimensional: какую модель выбрать

Два движка SSAS, их сильные стороны и ситуации, когда старая многомерная модель всё ещё уместна.

Статья 1 из 2 в рубрике, 2 мин чтения

В 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. Ограничения отличаются от версии к версии, поэтому мы сверяем их на этапе обследования вместе с текущими лицензиями заказчика.