Открыть сервис

SQL Server Analysis Services (SSAS)

SQL Server Analysis Services (SSAS) — это компонент Microsoft SQL Server, предназначенный для аналитической обработки данных, построения многомерных (OLAP) моделей и моделей на основе табличных данных (tabular). SSAS позволяет выполнять сложные запросы, агрегацию и анализ больших объёмов информации, предоставляя пользователям (через BI-инструменты, такие как Power BI, Excel или Reporting Services) быстрый доступ к предварительно обработанным данным.

История

Первая версия SSAS была выпущена вместе с SQL Server 2000 (тогда продукт назывался Microsoft Analysis Services). Изначально он поддерживал только многомерные (MOLAP) кубы, построенные на основе схем «звезда» или «снежинка». В SQL Server 2005 продукт был переименован в SQL Server Analysis Services и получил значительные улучшения: внедрение языка многомерных выражений (MDX), поддержка ключевых показателей эффективности (KPI) и унифицированная модель данных (UDM).

В SQL Server 2012 произошёл кардинальный сдвиг — была представлена табличная модель (Tabular), которая использует технологию in-memory (VertiPaq) и язык DAX (Data Analysis Expressions). Это позволило отказаться от сложных многомерных схем в пользу реляционных таблиц, что упростило разработку и повысило производительность для многих сценариев.

В последующих версиях (2016, 2017, 2019) SSAS развивался в двух направлениях: классический многомерный режим и современный табличный режим. Начиная с SQL Server 2016, табличная модель стала основной, а многомерная осталась для обратной совместимости. В SQL Server 2022 появилась поддержка Power Query для извлечения данных, а также улучшенная интеграция с Azure Analysis Services.

Архитектура и режимы работы

SSAS может работать в двух основных режимах, которые определяют способ хранения и обработки данных:

Многомерный режим (Multidimensional — MOLAP/ROLAP/HOLAP)

Этот режим использует классические OLAP-кубы, построенные на основе фактов и измерений. Данные хранятся в многомерной структуре (MOLAP — Multidimensional OLAP) или могут оставаться в реляционной базе (ROLAP — Relational OLAP), либо комбинироваться (HOLAP — Hybrid OLAP). Для запросов используется язык MDX (Multidimensional Expressions). Многомерный режим подходит для сложных иерархий, временных рядов и сценариев, где требуется высокая производительность при глубоких аналитических срезах.

Табличный режим (Tabular — In-Memory)

Данные хранятся в оперативной памяти в сжатом виде (движок VertiPaq). Модель представляет собой набор связанных таблиц, без явных многомерных кубов. Запросы выполняются на языке DAX (Data Analysis Expressions), который синтаксически похож на формулы Excel. Табличный режим проще в разработке, быстрее в развёртывании и лучше подходит для самообслуживания бизнес-аналитики (self-service BI). Он также поддерживает интеграцию с Power Query для загрузки данных из различных источников.

Режим Power Pivot (в составе Excel)

Это упрощённая версия табличного движка, встроенная в Microsoft Excel. Она позволяет создавать небольшие аналитические модели на рабочем столе, которые затем могут быть опубликованы в SSAS или Power BI.

Компоненты и термины

  • Куб (Cube) — многомерная структура данных, содержащая факты (меры) и измерения (атрибуты). В табличном режиме куб заменяется моделью (моделью данных).
  • Измерение (Dimension) — совокупность атрибутов, описывающих факты (например, время, продукт, клиент, география).
  • Мера (Measure) — агрегируемое значение (сумма, среднее, количество), вычисляемое по фактам.
  • MDXязык запросов для многомерных кубов.
  • DAXязык формул для табличных моделей.
  • VertiPaq — движок сжатия и хранения данных в памяти, используемый в табличном режиме.
  • ASSL (Analysis Services Scripting Language) — язык для автоматизации развёртывания и управления сервером.
  • AMO (Analysis Management Objects) — программный интерфейс для управления SSAS из .NET-приложений.

Установка и конфигурация

SSAS устанавливается как компонент SQL Server. В процессе установки выбирается режим (многомерный или табличный). После установки настраивается служба Windows (MSOLAP), которая может работать в экземпляре SQL Server или как автономный сервер. Управление осуществляется через SQL Server Management Studio (SSMS), Visual Studio (с проектами Analysis Services) или PowerShell.

Основные настройки:

  • Память — ограничение объёма RAM, используемого для кэша и хранения моделей.
  • Аутентификация — поддержка Windows-аутентификации и (в новых версиях) Azure AD.
  • Резервное копирование — файлы .abf (для многомерных) и .abf (для табличных) или прямое копирование файлов данных.

Применение

SSAS используется в корпоративных BI-системах для:

  • Аналитической отчётности — быстрого выполнения сложных запросов над большими объёмами данных (миллионы и миллиарды строк).
  • Формирования ключевых показателей (KPI) — например, рентабельность, выполнение плана, динамика продаж.
  • Интеграции с Power BI и Excel — как серверный источник данных для панелей мониторинга.
  • Финансового анализа — построение бюджетов, прогнозов, сценариев «что-если».
  • Розничной торговли — анализ продаж по товарам, магазинам, времени.
  • Логистики — анализ цепочек поставок, запасов, сроков доставки.

Производительность и масштабирование

Производительность SSAS зависит от режима:

  • Многомерный — высокая скорость при агрегациях, но медленная загрузка данных (требуется перестроение куба). Хорошо масштабируется за счёт разделения на партиции.
  • Табличный — очень быстрые запросы благодаря in-memory, но ограничен объёмом доступной оперативной памяти. Для больших моделей (свыше 100–200 ГБ) требуются серверы с большим объёмом RAM.

Масштабирование достигается:

  • Вертикальным (увеличение RAM/CPU на одном сервере).
  • Горизонтальным (кластеризация с помощью Always On Availability Groups или Azure Analysis Services).

Интеграция с другими продуктами

SSAS тесно интегрирован с экосистемой Microsoft:

  • SQL Server Database Engine — как источник данных.
  • SQL Server Integration Services (SSIS) — для загрузки и трансформации данных.
  • Power BI — как серверный источник (в режиме Live Connection).
  • Excel — через Power Pivot или подключение к кубу.
  • Azure Analysis Services — облачная версия SSAS (с некоторыми отличиями).
  • Reporting Services (SSRS) — для создания отчётов на основе кубов.

Критика и ограничения

  • Сложность многомерного режима — требует глубоких знаний OLAP-моделирования и MDX.
  • Зависимость от платформы — SSAS работает только в среде Windows (за исключением Azure, где доступен как PaaS).
  • Ограничения табличного режима — не поддерживает сложные иерархии и некоторые функции MDX (например, родитель-потомок).
  • Стоимость лицензирования — SSAS входит в состав SQL Server Standard и Enterprise, что может быть дорого для малого бизнеса.
  • Память — табличные модели требуют значительных объёмов RAM, что увеличивает стоимость инфраструктуры.

Сравнение с аналогами

ПродуктТипПлатформаОсновные особенности
SSAS (Multidimensional)OLAP-серверWindowsКлассические кубы, MDX, сложные иерархии
SSAS (Tabular)In-memoryWindowsDAX, Power Query, простота
Power BI PremiumОблачный/гибридныйWindows/Linux/CloudСамообслуживание, встроенная аналитика
Oracle OLAPВстроенный в Oracle DBLinux/Unix/WindowsMDX, SQL-интерфейс
SAP BWКорпоративное хранилищеLinux/Unix/WindowsМногомерные модели, интеграция с SAP
ClickHouseКолоночная СУБДLinuxВысокая скорость, SQL-запросы, открытый код

Будущее и развитие

Microsoft активно продвигает Azure Analysis Services как облачную альтернативу SSAS, а также Power BI Premium как универсальный инструмент для аналитики. Локальный SSAS остаётся востребованным в организациях с требованиями к безопасности и локализации данных, но его развитие замедляется в пользу облачных решений. В SQL Server 2022 добавлены гибридные сценарии (синхронизация с Azure), но принципиально новых возможностей для SSAS не появилось.

Источники

  • Microsoft Docs: SQL Server Analysis Services (документация Microsoft)
  • «Microsoft SQL Server 2019 Analysis Services: Performance and Optimization» (книга, автор — Chris Webb)
  • «Tabular Modeling in Microsoft SQL Server Analysis Services» (книга, авторы — Marco Russo, Alberto Ferrari)
  • TechNet: «Analysis Services Architecture» (статья Microsoft)
  • Статьи на SQL.ru и Habr по теме SSAS (пользовательский опыт)
  • Официальные блоги команды Microsoft SQL Server (blogs.msdn.microsoft.com)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →