Сравнение многомерной и табличной модели SSAS

блог о bi, №1 в рунете

Jonathan Barnbrook

С момента появления табличной модели появился вопрос: какая технология лучше подходит для разработки проекта. Необходимо ли переходить на табличную модель, либо оставаться на старой проверенной многомерной модели. В своей практике мы сталкивались и проработали обе технологии. В данной статье хотим поделиться с вами результатами наших исследований.

Многомерные модели – это решение, которое анализирует информацию с помощью OLAP-кубов. Для запроса к данным используются группы мер и измерения в качестве координат. Многомерный режим – режим сервера по умолчанию для служб Analysis Services.
Табличные модели — это технология обработки данных, которая организует данные в виде связанных таблиц. В модели нет строгого распределения между «мерами» и «измерениями», так как объекты могут выступать в обеих ролях. Для развертывания проекта необходимо настроить сервер в режиме «Tabular».

Сравнение технических характеристик моделей

Многомерная модель
Табличная модель

Первые совместимые версии SQL Server

SQL Server 2000
SQL Server 2012
SQL Server 2012
SQL Server 2014

Уровень совместимости

1050 – 1100
1100 – 1600

Языки запросов и сценариев

MDX[1]
ASSL[2]
DAX[3]
MDX
ASSL (уровень совместимости 1050–1103)
TMSL[4] (уровень совместимости 1200 и выше)

Источники данных

При проектировании табличной модели возможно использовать больше различных каналов данных. Однако, исходя из нашего опыта, дополнительные источники используются довольно редко.
Ссылка на источник
При проектировании табличной модели возможно использовать больше различных каналов данных. Однако, исходя из нашего опыта, дополнительные источники используются довольно редко.
Ссылка на источник
MDX (Multidimensional Expressions) —язык запросов, ориентированный на доступ к многомерным структурам данных.
ASSL – язык сценариев служб Analysis Services.
DAX – (Data Analysis eXpressions) — формульный функциональный язык запросов для построения выражений и извлечения данных в табулярной модели.
TMSL – язык скриптов табличных моделей

Сравнение технических характеристик моделей

Итог

Многомерные и табличные модели отличаются способом обработки данных. Многомерные не импортируют данные до обработки куба, в то время как табличные модели импортируют данные в модель для целей разработки. Получается, что при разработке табличной модели возможно просматривать изменения без необходимости развертывания проекта.

Производительность табличной модели выше, чем у многомерной. Проведённые тестирования выделили увеличения показателя примерно на 40%. Это связано с необходимостью большого объема операций ввода-вывода на диск для различных расчетов в многомерной модели.
Многомерная модель лучше подходит для создания крупных проектов. Сравнение количества объектов в технологиях представлена в таблице:
Многомерная модель
Табличная модель

Баз данных в экземпляре

2 147 483 647
16 000

Количество объектов

  • Измерений в базе данных – 2 147 483 647
  • Кубов в базе данных – 2 147 483 647
  • Групп мер в кубе – 2 147 483 647
Совокупное число таблиц и столбцов в базе данных – 16 000

Пользовательских иерархий

2 147 483 647
15 999

Уровни в иерархии

2 147 483 647
15 999
Также стоит отметить, что многомерные кубы и табличные модели имеют свои собственные уникальные функции и техники.
Многомерная модель
Табличная модель

Компонент

  • Действия
  • Агрегации
  • Пользовательские сборки
  • Пользовательские свертки
  • Связи "много ко многим"
  • Именованные наборы
  • Обратная запись
  • Вычисляемый столбец
  • Вычисляемые таблицы
  • Чередование запросов
Важно тщательно проанализировать оба варианта перед принятием решения о внедрении.