Введение в OLAP и хранилища данных

OLAP-куб. Первичное разворачивание куба

Рассматривается развёртывание OLAP-куба (online analytical processing — интерактивная аналитическая обработка) на сервере Analysis Services. Логика такая: сначала сборка проекта, затем попытка развёртывания, диагностика ошибки подключения, настройка олицетворения через сервисную учётную запись, проверка служб и учётных записей, успешный деплой, подключение к базе Analysis Services и проверка куба, измерений и источников данных. В финале показано, как BI-системы используют куб.

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Объяснять назначение развёртывания OLAP-куба на сервере Analysis Services.
2. Различать этапы сборки и развёртывания проекта.
3. Диагностировать ошибку подключения при развёртывании.
4. Настраивать олицетворение с использованием сервисной учётной записи.
5. Проверять состояние служб SQL Server и Analysis Services.
6. Определять, какие встроенные учётные записи запускают службы.
7. Подключаться к базе Analysis Services и проверять объекты куба.
8. Объяснять роль источника данных, представления источника данных, куба и измерений.
9. Оценивать, как BI-системы подключаются к OLAP-кубу.
10. Анализировать схему передачи данных от закрытого хранилища до конечных пользователей.
Показывать лекцию целиком
Краткое изложение


Обратите внимание, если при разворачивании куба возникли ошибки, то сначала убедитесь, что установлена версия SQL Server Developer или выше (Express версия для OLAP не подходит).

Затем в проекте справа два раза кликнуть по Источнику данных и указать верный Impersonation Information. Если установлен SQL Server от администратора, то он должен быть владельцем сервиса аналитики и от него же запускается Visual Studio, то можно использовать данные текущего пользователя. Но лучше попробовать использовать учетную запись службы (вторая опция).

 

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

  1. Панель управления -  Система и безопасность - Административные инструменты - Службы. Откроется окно аналогичное на картинке 1:39 в этой лекция (31. OLAP-куб. Первичное разворачивание куба).
  2. В списке найдите службу SQL Server Analysis Services и запустите ее, если она не запущена (правая кнопка мыши и пуск). Если запущена, то перезапустите.
  3. Проделать действия с 1:12 по 1:18, которые показаны в этой лекция (31. OLAP-куб. Первичное разворачивание куба). В окне Имперсонализации есть четыре опции, попробуйте первые три. После каждой смены варианта попробуйте развернуть куб.

Развёртывание OLAP-куба на сервере Analysis Services

Подготовка и сборка проекта

Сначала закрываем лишние вкладки и сохраняем проект. Выбираем проект правой кнопкой мыши и выполняем сборку (build). Если сборка проходит без ошибок, значит, на уровне программирования и разработки проблем нет.

Первая попытка развёртывания и диагностика

Нажимаем развернуть (deploy). Подготовительный процесс начинается, но сам деплой не завершается. Проверяем подключение (connection) к серверу. Причина — сложности с подключением. Это исправляется настройкой соединения с сервером.

Олицетворение и сервисная учётная запись

В качестве олицетворения (impersonation) выбираем сервисную учётную запись (service account). Затем повторяем развёртывание. Оказалось, что не был запущен соответствующий сервис — Analysis Services. После запуска службы всё должно работать.

Проверка служб и учётных записей

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

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

В разделе Users (пользователи) можно увидеть разных пользователей, соответствующих разным подходам и технологиям. В Control Panel → System and Security → Administrative Tools → Services видно службу SQL Server, её базу данных и NT Service-пользователей. Например, службу SQL Server запускает пользователь MSSQLSERVER. Его работа фоновая и скрыта от нас. В Agent виден пользователь SQL Server Agent. В Analysis Services есть пользователь, отвечающий за запуск служб аналитики.

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

Подключение к Analysis Services и проверка куба

Проект развёрнут. Заходим на сервер: выполняем connect к Analysis Services. Подключаемся. Теперь виден не уровень базы данных, а уровень служб анализа данных. Здесь видим базу Alap-test. Если развернуть её, то в Data Sources (источники данных) виден наш коннект, в Data Source View (представление источника данных) — вьюшка, в Cubes (кубы) — куб Alaptest, в Dimensions (измерения) — CustomerDate и Product.

Передача данных в BI-системы

Этот куб — точка подключения. Из любой BI-системы (business intelligence, бизнес-аналитика) и систем отчётности можно подключаться к базе данных, а далее — только к этому кубу. Например, Power BI может подключаться напрямую к OLAP-кубу. Так пакет данных из закрытого хранилища передаётся в интеллектуальной оболочке OLAP-куба на сервер, а затем распространяется по конечным пользователям для отчётов и аналитики. Далее можно вносить изменения в меры (measures) и измерения (dimensions), чтобы постепенно насыщать куб более интеллектуальной начинкой.

Краткие итоги

Развёртывание аналитического куба — это не только перенос проекта на сервер, но и проверка согласованности нескольких слоёв: модели данных, прав доступа, служб и инфраструктуры. Практическая ценность такого сценария в том, что локально успешная сборка ещё не гарантирует работоспособность на сервере. Ошибка подключения выявляет разрыв между средой разработки и серверной конфигурацией. Поэтому диагностика начинается не с переписывания модели, а с проверки соединения, учётных данных и состояния служб.

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

После успешного развёртывания куб становится семантическим слоем, который предоставляет бизнес-логику и агрегаты для отчётности. Источники данных, представления источников, кубы и измерения образуют управляемую структуру, через которую BI-системы получают согласованные данные. Прямое подключение Power BI к кубу показывает практическую ценность: пользователи работают не с сырыми таблицами, а с подготовленной аналитической моделью. В итоге цепочка от закрытого хранилища до конечных пользователей становится контролируемой.

Аналитик или администратор должен уметь проверить сборку, развёртывание, подключение, службы, права и объекты куба. Такой порядок действий формирует воспроизводимый подход к публикации аналитики. Дальнейшее развитие куба через меры и измерения превращает его из технического артефакта в рабочий инструмент поддержки решений.

Сначала проект сохраняется и собирается. Сборка (build) показывает, есть ли ошибки на уровне разработки. Затем выполняется развёртывание (deploy). Если деплой не проходит, проверяется подключение к серверу. Частая причина — неверное соединение или остановленная служба.

В настройках соединения выбирается олицетворение (impersonation) и сервисная учётная запись (service account). После запуска службы Analysis Services развёртывание повторяется. Успешный деплой подтверждается зелёной галочкой.

Важно: по умолчанию сервер создаёт встроенных пользователей для служб. Они не являются обычными пользователями ОС. В службах Windows видно, что SQL Server, Agent и Analysis Services могут запускаться разными сервисными учётными записями. Администратор работает с сервером не напрямую через админскую учётную запись, а через такую службу, имея на это права.

После развёртывания выполняется подключение к Analysis Services. В базе Alap-test видны Data Sources (источники данных), Data Source View (представление источника данных), куб Alaptest, измерения CustomerDate и Product.

Этот куб — точка подключения для BI-систем и отчётности. Например, Power BI может подключаться к нему напрямую. Так пакет данных из закрытого хранилища передаётся в аналитической оболочке куба на сервер и распространяется по конечным пользователям. Затем можно менять меры (measures) и измерения (dimensions), чтобы развивать куб.

Выводы

1. Успешная сборка проекта не гарантирует успешное развёртывание на сервере.
2. Ошибка развёртывания часто связана с подключением к серверу, а не с кодом.
3. Настройка соединения с сервером критична для деплоя.
4. Олицетворение позволяет использовать сервисную учётную запись.
5. Сервисная учётная запись снижает необходимость прямого использования админских прав.
6. Если служба Analysis Services не запущена, развёртывание не пройдёт.
7. Встроенные учётные записи служб отличаются от обычных пользователей ОС.
8. Службы SQL Server, Agent и Analysis Services могут запускаться разными учётными записями.
9. После развёртывания подключение идёт к уровню Analysis Services, а не только к базе данных.
10. В развёрнутой базе видны источники данных, представление источника, куб и измерения.
11. BI-системы, включая Power BI, могут подключаться к OLAP-кубу как к аналитическому слою.
12. Куб передаёт подготовленные данные из закрытого хранилища конечным пользователям.

Вопросы для самопроверки

1. Чем отличается сборка проекта от его развёртывания на сервере?
2. Почему успешная сборка не гарантирует успешный деплой?
3. Как диагностировать ошибку подключения при развёртывании?
4. Что такое олицетворение в контексте Analysis Services?
5. Зачем при развёртывании выбирать сервисную учётную запись?
6. Чем сервисная учётная запись отличается от административной?
7. Какие встроенные учётные записи могут запускать службы SQL Server и Analysis Services?
8. Почему остановленная служба Analysis Services блокирует развёртывание?
9. На какой уровень сервера выполняется подключение после успешного деплоя?
10. Какие объекты видны в развёрнутой базе Analysis Services?
11. Как BI-системы используют OLAP-куб для отчётности?
12. Как изменения в мерах и измерениях влияют на аналитическую ценность куба?
Вернуться к учебному плану