0 просмотров

Практическое применение Master Data Services в MS SQL Server 2012

Практическое применение Master Data Services в MS SQL Server 2012

В этой статье я хотел бы поделиться своим первым профессиональным опытом применения Master Data Services (MDS) в MS SQL Server 2012. До недавнего времени я был знаком с этим продуктом, входящим в состав MS SQL Server 2012 (Business Intelligence and Enterprise editions), только в теории и ждал удачного случая, чтобы проверить его на практике, и вот такой случай представился.

Вводные данные

Мой клиент использует BI-решение на базе Microsoft SQL Server 2012 Business Intelligence Edition. Центром этой BI-системы является хранилище данных (Data Warehouse), которое наполняется с помощью SSIS-пакетов из транзакционных систем (OLTP). Хранилище данных, в свою очередь, служит источником для многомерной модели данных (Multidimensional Data Model). На основе многомерной модели данных аналитики заказчика формируют отчетность в Excel, используя сводные таблицы (Pivot Tables). Поскольку источников данных много, и пользователи транзакционных систем управляют справочниками хаотично, заказчик обозначил потребность в решении, которое позволяло бы создать в хранилище данных иерархии для некоторых измерений, которые были бы удобны для целей аналитического анализа. Так, например, информация об организационной структуре компании, хранящаяся в измерении «Подразделения» (таблица dbo.dimDivisions), импортируемая из OLTP-систем, удобна для оперативных отчетов, формируемых в OLTP-системах, но не подходит для целей анализа в BI-системе.

Статья в тему:  Какой радиус колес на газели. О всесезонных шинах на газель

Требования бизнеса

Формальные требования бизнес-заказчика можно кратко описать следующим образом:

  • Разработать инструмент, позволяющий управлять данными о подразделениях компании для целей аналитической отчетности.
  • Использовать новые данные о подразделения в существующем BI-решений.
  • Изменения не должны повлиять на работу OLTP-систем.

Предварительная оценка и выбор решения

На основании имеющихся вводных данных и бизнес-требований заказчику было предложено следующее решение:

  • Добавить в хранилище данных дополнительное измерение для хранения данных об орг. структуре для целей аналитической отчетности.
  • Обеспечить связь между записями нового измерения и измерения «Сотрудники».
  • Изменить многомерную модель данных с учетом изменения структуры хранилища данных.
  • Выполнить настройку Master Data Services. Под настройкой понимается создание возможности ввода и редактирования данных о сотрудниках и подразделениях вручную, а так же настройка, необходимая для импорта/экспорта данных в/из MSD.
  • Обеспечить автоматический импорт данных о новых сотрудниках из хранилища данных в Master Data Services.
  • Обеспечить автоматический экспорт данных о подразделениях и принадлежности сотрудников к подразделениям сотрудниках из Master Data Services в хранилище данных.

Реализация решения

Доработка хранилища данных

Итак, поехали по-порядку. Сначала создадим в хранилище данных новое измерение «Произвольные подразделения» (dbo.dimDerivedDivisions) и свяжем его с измерением «Сотрудники» (dbo.dimEmploees). SQL-скрипт для этой задачи выглядит следующим образом:

Доработка многомерной модели данных

Теперь добавим новое измерение в многомерную модель данных. Для этого откроем проект многомерной модели данных в SQL Server Data Tools и добавим новую таблицу dbo.dimDerivedDivisions в Data Source View. Результат выглядит следующим образом:

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

Чтобы не уходить далеко от темы, кратко опишу процесс доработки многомерной модели. В многомерной модели данных создаем новое измерение «Произвольные подразделения», настраиваем связь нового измерения с существующими таблицами фактов через измерение «Сотрудники», деплоим и процессим куб:

Настройка Master Data Services

Теперь все структуры данных для подготовки аналитической отчетности в разрезе нового измерения «Произвольные измерения» готовы, приступаем к самому главному — к настройке Master Data Services. Для этого в браузере переходим по ссылке, которую дал нам SQL Server Administrator, и попадаем в web-интерфейс MDS, который выглядит следующим образом:

Я не буду описывать здесь установку Master Data Services, так как это рутинная задача подробно описана на msdn.microsoft.com. Сосредоточимся лучше на реальной практике использования MDS.

Итак, первое, что нам необходимо сделать — это создать модель. Моделью в MDS называется логический контейнер, который содержит в себе сущности определенной бизнес-области. В нашем случае уместно создать модель «Сотрудники», содержащую сущности «Сотрудники» и «Подразделения». Для создания модели перейдем в web-интерфейсе Master Data Services в Administrative Tasks по ссылке System Administration. В открывшемся окне введем название модели Employees и нажмем кнопку Save model:

При установленном флажке Create entity with same name as model автоматически вместе с моделью будет создана одноименная сущность Employees. Далее создадим еще одну сущность «Подразделения» (Divisions), для этого выберем модель Employees и перейдем в меню Manage — Entities:

Статья в тему:  Так почему же погибла принцесса Диана? (16 фото). Новые хозяева для платьев принцессы Смерть леди дианы

Нажмем на кнопку Add entity:

В открывшемся диалоге заполним параметры новой сущности и нажмем кнопку Save entity. Обратите внимание, что при создании сущности «Подразделения» был установлен флажок Enable explicit hierarchies and collections (это означает, что для сущности появится возможность создания иерархии), и ниже укажем название иерархии Divisions. Явная иерархия (Explicit Hierarchy) — это иерархия, члены которой могут быть организованы любым образом, т.е. на каждом уровне иерархии может быть любое любое количество членов и следующих уровней вложенности:

После того, как сущности созданы, необходимо настроить атрибуты сущностей. Для сущности «Сотрудники» (Employees) добавим атрибут «Подразделение» (Division). Выберем сущность Employees и нажмем кнопку Edit selected entity:

В открывшейся форме редактирования сущности нажмем на кнопку Add leaf attribute для того, чтобы добавить атрибут «Подразделение» конечного элемента сущности «Сотрудники»:

В открывшейся форме добавления атрибута, заполним наименование атрибута и установим переключатель типа атрибута в положение Domain-based. Это означает, что значения данного атрибута будут принадлежать определенной сущности, и ниже укажем какой именно, в нашем случае это сущность «Подразделения» (Divisions). В конце нажимаем кнопку Save attribute:

Ручной ввод данных в Master Data Services

Итак, модель «Сотрудники» (Employees) и сущности «Сотрудники» (Employees) и «Подразделения» (Divisions) готовы, теперь необходимо наполнить их данными. Сущность «Подразделения» (Divisions) пользователи будут заполнять вручную. Для демонстрации этого процесса перейдем на главную страницу web-интерфейса Master Data Services, в подразделе Information Worker Tasks выберем модель Employees и перейдем по ссылке Explorer:

Статья в тему:  Крыло урал м62. Мотоциклы Урал М62: технические характеристики, фото

Выберем иерархию «Подразделения» (Divisions):

Выберем тип элементов, которыми мы хотим управлять. Сначала создадим несколько групповых элементов (Consolidated Member):

Нажмем кнопку Add, введем наименование подразделения-группы «Отдел продаж» и нажмем кнопку OK:

Аналогично добавим другие подразделения и, таким образом, создадим структуру подразделений, изображенную на следующем рисунке:

Обратите внимание, жирным шрифтом выделены подразделения-группы, а нежирным — конечные элементы. На одном уровне иерархии могут быть как те, так и другие типы элементов.

Импорт данных в Master Data Services

Теперь необходимо импортировать данные о сотрудниках в Master Data Servises из существующего хранилища данных ( для дальнейшего сопоставления сотрудников и подразделений, и экспорта этих данных обратно в хранилище). Для загрузки данных в MDS в SQL базе данных, обеспечивающей работу Master Data Servises, существуют специальные промежуточные таблицы (Staging Tables), в которые мы можем вставить данные SQL-запросом или создать специальный SSIS-пакет, который будет импортировать новые записи о сотрудниках из хранилища данных во временные таблицы для их дальнейшей обработки в Master Data Servises. Откроем SSMS и найдем временные таблицы в базе данных Master Data Servises. Вот они:

В качестве примера импортируем произвольные 10 записей о сотрудниках из хранилища данных в промежуточную таблицу базы данных Master Data Services. Для этого выполним следующий SQL-запрос:

Вернемся в web-интерфейс Master Data Services и на главной странице перейдем по ссылке Intergation Management:

Статья в тему:  Требования к установке фаркопа. Как законно установить фаркоп на легковой автомобиль - правила установки

В открывшемся окне видим пакет Employees_Leaf_Batch00001, который был только что создан SQL-запросом. Запустим его, нажав на кнопку Start Batches:

После отработки пакета увидим вот такую информацию о статусе, времени начала и окончания выполнения, ошибках:

Управление данными в Master Data Services

Теперь давайте перейдем в режим управления данными и посмотрим, как загрузились записи о сотрудниках из промежуточной таблицы. Для этого перейдем на главную страницу web-интерфейса Master Data Services, в подразделе Information Worker Tasks выберем модель Employees и перейдем по ссылке Explorer. В открывшемся окне видим, что новые данные о сотрудниках были добавлены в Master Data Services и находятся в состоянии Waiting to be validated:

Обратите внимание, что данные о подразделении (Division) у сотрудников не заполнены. Нам необходимо для каждого сотрудника выбрать подразделение, в котором он работает и нажать на кнопку ОК:

Экспорт данных из Master Data Services

После того как данные о подразделениях и принадлежности сотрудников к подразделениям введены, необходимо импортировать их обратно в хранилище данных. Для этого необходимо создать специальные представления (Subscription Views) в MDS. Перейдем на главную страницу web-интерфейса Master Data Services, в подразделе Administrative Tasks перейдем по ссылке Intergation Management:

В открывшемся окне перейдем в меню Create Views и нажмем кнопку Add subscription view:

Заполним параметры представления для сущности «Подразделения» (Divisions) и нажмем кнопку Save:

Статья в тему:  Кроссовер Hyundai Santa Fe II генерации. Hyundai Santa Fe — технические характеристики и фото кроссовера Комплектации и цены Hyundai Santa Fe II

Аналогичным образом создадим представление для сущности «Сотрудники» (Employees):

Теперь давайте разберемся, что же это за представления и как можно их использовать. На самом деле все довольно просто, представления в MDS есть ни что иное, как привычные нам представления (Views) в SQL базе данных. Откроем SSMS, и убедимся в этом:

И последнее, что остается сделать для решения поставленной задачи — это разработать SQL-скрипт или пакет SSIS, который экспортирует информацию из представлений MDS в хранилище данных.

Решение от assino

Команда assino имеет готовое решение для обеспечения единой системы управления мастер-данными в 1С для компаний разного уровня развития и сферы деятельности. Среди наших клиентов, для кого был реализован функционал MDM, такие лидеры своей отрасли, как BIOCAD, YIT, TMD Friction, Hygiene Kinetics Products, HAVI Logistics и др.

Для представительства финского холдинга Itella Logistics в рамках проекта внедрения 1С:ЗУП и интеграции с глобальной системой SAP HR необходимо было обеспечить качественный учет более 3 000 сотрудников и бесперебойную миграцию более 100 документов в день. Это потребовало в том числе установки системы управления мастер-данными.

По итогам работы специалистов assino были достигнуты следующие результаты:

  1. Внедрение системы MDM существенно сократило трудозатраты на создание и изменение мастер-данных.
  2. Настройки утверждения изменений позволили уменьшить число возможных ошибок, которые могли бы стать критичными для работы компании.
Статья в тему:  Программа учета использования бланков птс. Модуль «Техосмотр

Оставьте заявку на аудит ИТ-инфраструктуры вашей компании, и мы подберем для вас оптимальный вариант!

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector