Применение MS Master Data Services

MDM, НСИ, DQ  Применение Категория:  MDM, НСИ, DQ
Опубликовал:         28.09.2014        К списку статей        print

Довольно часто Бизнесу требуется быстро, за 1-2 дня организовать многопользовательский учет каких-либо списков: например, реестр аккредитованных риск-менеджментом компаний, список клиентов для рассылки предложений и фиксации обратной связи и т.д. Что же можно предложить Бизнесу в качестве Rapid Application Development?

  1. Самостоятельно выполнить собственную (in house) разработку. В таком случае придется обращаться, становиться в очередь к IT, у которых заданий и заказов, как правило, на год вперед. Постановка требований к функциональности, к интерфейсу пользователей (GUI), разделению доступа; тестирование, приемка, развитие, обеспечение минимально необходимой инфраструктуры, обоснование бюджета ...
  2. Воспользоваться возможностями существующей в компании ERP-системой (например, вездесущей 1C) или CRM-системой (например, Oracle Siebel CRM). Снова нужно обращаться к IT. Вряд ли Бизнес-владелец системы будет рад / повышать приоритет требованиям навесить на систему дополнительные учетные подзадачи. Доработки, дополнительные лицензии, ...
  3. Прибегнуть к функциональности корпоративного web-портала на основе промышленного решения (например, MS SharePoint). Развернута ли подобная платформа в вашей компании? Разрешено ли Бизнесу, умеет ли Бизнес самостоятельно администрировать собственные разделы сайта? Опять же могут оказаться критичными требования к функциональности интерфейса пользователя ...

Безусловно, наиболее системным решением является вариант №2. Однако на практике выходит, что при всем богатстве возможностей выбор останавливается на ... MS Excel. Сколько этих Excel-файлов в компаниях! Какого качества учетные данные в них, насколько они систематизированы и взаимоувязаны между собой, масштабируемость, безопасность, издержки сопровождения и интеграции - все это "прелести" наколенного учета.


Приступая к очередному проекту по реинжинирингу управленческой отчетности, мне хотелось перевести учет планов продаж, справочных данных, вспомогательных коэффициентов и т.п. на промышленную платформу. В декабре 2013г. на рабочей встрече в Microsoft Rus Иван Косяков порекомендовал посмотреть в сторону Master Data Services - серверная служба из состава Microsoft SQL Server 2012 Enterprise / BI Edition. Предыдущую версию MDS в составе MS SQL Server 2008R2 я исследовал двумя годами ранее, и, надо сказать, осталось слабое впечатление. В версии 2012 появилось несколько существенных улучшений. Сразу после Новогодних праздников, за несколько дней мною было разработано и внедрено решение по учету и расчету вознаграждений компаниям-контрагентам с применением службы Master Data Services 2012.




В данной задаче пользователи вводят параметры договоров, используя web-клиент или бесплатный Excel AddIn для Master Data Services. Данные сохраняются в базе данных, в подготовленной модели, проходят проверку на соответствие определенным бизнес-правилам (checks).




Валидированные данные тотчас же доступны для использования в расчетных процедурах. Уполномоченные пользователи имеют право запускать на выполнение серверную хранимую процедуру T-SQL (для этого используется небольшой макрос в Excel-файле). Хранимая процедура выбирает необходимые факты из витрины данных, подхватывает данные из Master Data Services, расчитывает суммы вознаграждений по договорам и результаты возвращает в тот же Excel-файл, который является также и готовым отчетом.




Возможные бизнес кейсы по использованию Master Data Services

  1. Собственно ведение мастер данных корпоративных справочников в заранее подготовленной, согласованной модели. Заинтересованные Бизнес-пользователи, обладающие компетенцией в своей предметной области, готовы выполнять функции Data Officer в привычной для себя экосистеме - MS Excel. И такие примеры есть;
  2. В продолжение п.1 - сопровождение перекодировочных таблиц, таблиц сопоставления данных, например, сопоставление произвольных / сокращенных / ошибочных наименований должностей клиентов из CRM-систем к унифицированным названиям должностей;
  3. Ввод, учет плановых показателей с целью последующего осуществления план-фактного анализа;
  4. Ведение метаданных, настроечных таблиц информационных систем;
  5. Использование бизнес-сущностей MDS в качестве буферных серверных таблиц, в которые пользователи могут легко загружать свои данные для последующей обработки, расчетов службой IT;
  6. Быстрое масштабирование Excel-файлов задач класса первичного учета: хранение данных на промышленном сервере MS SQL, совместная многопользовательская работа с данными.




Чего не хватает в MS Master Data Services 2012 / 2014

Административная часть, ядро системы

  • - Создание описаний (длиной 500 - 1000 символов) не только к сущностям, но и атрибутам, бизнес-правилам; отображение описаний в клиентских приложениях: web-интерфейсе и Excel AddIn for MDS;

  • - Возможность создания логических папок для разнесения сущностей по категориям. В модели, насчитывающей несколько сотен сущностей, трудно ориентироваться;

  • - Необходима визуализация взаимосвязей сущностей между собой (особенно полезно для больших моделей), например, в виде ER-диаграммы, желательно интерактивной - по щелчку в контекстном меню переход к просмотру, редактированию данных или редактированию структуры;

  • - Возможность создания доменных атрибутов, ссылающихся на сущности из другой модели;

  • - Для доменных атрибутов - возможность указания совокупности атрибутов из родительских сущностей, значения которых должны отображаться в качестве заголовка. В версии MDS 2012 для доменного атрибута в фигурных скобках отображается только наименование {Name} ключевого атрибута непосредственно "старшей" сущности. (например, в сущности "Контрагент" для доменного атрибута "География" нужно видеть и название населенного пункта, и название региона и название страны. Вариант сбора в символьном коде конкатенации вида "Ханты-Мансийск_Тюменская_Россия" - накладно, да и названия могут изменяться, что чревато для ключей;

  • - Возможность создания штатными средствами представлений (viewes) с включением дополнительных атрибутов из других связанных сущностей. Этого можно достичь, создав в SQL Management Studio свое view поверх базового view, но в этом случае контроль за валидным состоянием представления придется осуществлять самостоятельно;

  • - Конструктор бизнес-правил должен быть более дружественным, например, как конструктор MDX-выражений в SQL Server Analysis Services, с возможностью написания выражения полностью вручную с последующей проверкой синтаксиса;

  • - Необходимо дополнить встроенные функции - строковые, числовые, дата, преобразования (T-SQL functions in the business rules), например, REPLACE(), UPPER(), LOWER(), LTRIM(), RTRIM(), SUBSTR() - через правила-хранимые процедуры - это долгое решение; также не помешало бы наличие готовых шаблонов регулярных выражений - например, допускается ввод только цифр, проверка email;

  • - Для бизнес-правил возможность задания уровня (число) серьезности ошибки, эти числа дожны быть видны в представлении-подписке; тогда подписчикам можно было бы более гибко обрабатывать записи, принимать решения о том, как использовать записи;

  • - Возможность маскировать, скрывать содержание текстовых/доменных полей, например, для атрибутов персональных данных, атрибута "Password" вместо паролей в таблице Excel и web GUI показывать *******;

  • - Возможность уведомления по Email при добавлении, изменении, удалении записей ответственных пользователей, список должен быть настраиваемым - не только отдельному доменному пользователю, локальной или доменной группе, но и нескольким доменным пользователям (мультиселект);

  • - Возможность в бизнес-правилах оперирования данными из разных записей сущности, для реализации более сложных правил проверки (наподобие триггеров), например, сумма значений элементов атрибута "Убыток по региону" не более 10 млн. рублей;

  • - Возможность создания правил для цветовой раскраски ячеек таблиц в зависимости от значений атрибутов (наподобие свойств BackColor, ForeColor в SQL Server Analysis Services);

  • - Возможность задания для атрибутов не только системных наименований, но и бизнес-наименований = translation (длиной <=255 символов) и их отображение в заголовках столбцов в клиентских приложениях;

  • - Необходима возможность более тонкой настройки прав доступа: раздельные права только на добавление, только на редактирование, только на удаление записей;

  • - Возможность просмотра прав доступа как со стороны пользователей (кому что разрешно / запрещено), так и со стороны сущностей (что кому разрешно / запрещено);

  • - В списке пользователей необхоимо отслеживать (можно по нажатию специальной кнопки) доменные логины, удаленные из Active Directory;

  • - Возможность создания нескольких учетных записей с полномочиями администратора системы;

  • - Возможность физического удаления записей (hard delete) из конкретной сущности (таблицы базы данных) через интерфейсы web и Excel, при наличии у пользователя соответствующих полномочий;

  • - В целях быстрого создания сущности: создание сущности на основе существующей сущности (клонирование) вместе с бизнес-правилами, чтобы в клонированной сущности уже добавлять/изменять атрибуты;

  • - Возможность создания в интерактивном режиме пакетов распространения моделей вместе с данными. В версии MDS 2012 с помощью Wizard можно создавать только пакеты распространения, содержащие только структуры моделей, без данных. Создание пакетов распространения с включением данных модели возможно только через утилиту командной строки:
    C:\Program Files\Microsoft SQL Server\120\Master Data Services\Configuration\MDSModelDeploy.exe;

  • - Создание пакетов распространения почему-то не подразумевает копирование-перенос описаний (Descriptions) сущностей, атрибутов;

  • - Необходим функционал по сопоставлению структур моделей, возможность быстрого копирования сущностей, атрибутов, бизнес-правил, представлений подписки из одной модели в другую;

  • Необходим функционал по сопоставлению, выявлению различий в данных, хранящихся в сущностях разных моделей;

  • - Как показала практика, с точки зрения обеспечения производительности представления подписки необходимо материализовывать - данные нормативно-справочных сущностей приземлять в обычные таблицы, к которым предоставлять доступ подписчикам для использования данных в прикладных задачах.



Web-клиент

Необходима большая функциональность элемента управления табличной части (как в интерфейсе пользователей, так и разделе администрирования):

  • - управление видимостью, размерами отдельных столбцов;

  • - "заморозка" отдельных строк (как предусмотрели возможность заморозки столбцов!); при вводе данных в другие записи иногда полезно смотреть, опираться на зафиксированные записи;

  • - сохранение на сервере всех персональных настроек табличной части (ширина, порядок колонок, сортировка, количества строк на странице). Функциональность современных web-интерфейсов (GUI) обеспечивает пользователям комфортную работу, например, см. Infragistics Web Grid;

  • - необходимы текстовые поля для быстрых фильтров (сверху над заголовками полей), должна быть фильтрация записей в одно касание);

  • - возможность прямого ввода значений для доменных атрибутов (direct code entry for the domain attribute), например, проще, быстрее ввести ИНН, чем выбор юридического лица из модального окна;

  • - создание новой строки на основе имеющейся: дублирование текущей строки для последующего редактирования значений отдельных полей. Это позволяет ускорить ввод данных;

Отсутствует кнопка "Обновить" (Refresh), чтобы перезапросить данные с сервера;

Замена Silverlight на HTML5 и jQuery, т.к. в рамках корпоративной интрасети не всегда разрешена установка библиотеки Silverlight.



Excel AddIn for MDS

  • - В Excel AddIn for MDS версии 2012 для доменного атрибута возможен либо прямой ввод значения кода (code) либо выбор из выпадающего списка (combobox), что не комфортно при количестве элементов более 100 и возмутительно при количестве элементов свыше 500. Необходима возможность выбора значения из модального окна + быстрые фильтры. Например, быстрые фильтры - это TextBox-ы над заголовком каждого поля для поиска по вхождению;

  • - Скорость извлечения данных с сервера - 50+ тыс. записей, на мой взгляд, могла бы быть выше;

  • - Скорость публикации данных на сервере также могла бы быть выше;

  • - При публикации данных на MDS-сервер необходимо выключать обычные Excel-штатные фильтры столбцов, так как можно получить ошибку; ошибка плавающая, не всегда воспроизводимая;

  • - Были случаи, когда для доменного атрибута после успешного сохранения данных на сервере и выполнения команды "Обновить" (Refresh) либо совсем ничего не показывалось (скорее сбой, глюк внутри файла Excel), либо показываются только значения code без значений {name}. Ситуация проявлялась на разных машинах при количестве записей в "родительской" сущности ~ 24-30 тыс. записей. Случаи подтверждаются в версии 2012, 2014;

  • - Как в Excel AddIn, так и в web-клиенте фильтр запроса данных с сервера некорректно интерпретирует значение даты. Так, дата 30 мая 2014г. не воспринимается ни в виде 30.05.2014, ни в виде 05.30.2014;

  • - Данный плагин очищает буфер обмена данных (Clipboard), что не есть хорошо;

  • - Было бы удобнее, если бы в случае ошибок применения бизнес-правил, в отдельных столбцах показывался не только статус проверки, но собственно сообщение об ошибке (сейчас сообщение об ошибке показывается только как всплывающая подсказка, примечание (ToolTipText);

  • - После применения команды "Фильтр" для отбора записей с сервера таблица в листе Excel перемещается снова в первую строку так, что, если ранее выше строки заголовков были вставлены строки для бизнес-заголовков, шапки и т.п., эти строки будут потеряны (break the layout of the sheet);

  • - Возможность запоминания настроенного формата ячеек: в Excel AddIn for MDS версий 2012, 2014 при обновлении данных с сервера настройки Excel-форматирования ячеек слетают (игнорируются);

  • - Возможность просмотра, изменения иерархий;

  • - Возможность администрирования бизнес-правил;

  • - Возможность связывания в Excel двух таблиц, которые в MDS связаны по доменному атрибуту; например, на листе сущность "Регионы" и на этом же листе правее - подчиненная сущность "Города"; при перемещении по таблице "Регионы" в таблице "Города" показываются только города текущего региона;

  • - Как в Excel так и в Web-клиенте показывать прямо в таблице показывать поля:
    - кто создал запись (логин и ФИО пользователя);
    - когда была создана запись (дата время);
    - кто последним редактировал запись (логин и ФИО пользователя);
    - когда было последнее изменеие записи (дата время);

  • - Возможность отправки изменений на сервер в пакетном режиме по принципу всё или ничего: либо все модифицированные/ новые записи успешно сохраняются на сервере либо ни одно изменение не сохраняется (откат транзакции);

  • - Excel AddIn for MDS включить в базовую инсталляцию Excel (возможно, после установки плагин может быть выключен) - внутри большой компании это избавляет от необходимости каждому пользователю оформлять заявки на установку плагина



Ресурсы по MS Master Data Services

Официальные ресурсы:
Microsoft TechNet - Master Data Services 2016
MSDN - Master Data Services 2014
Блог Master Data Services
Ресурс Microsoft, посвященный Master Data Services"

Видео презентации Ивана Косякова, посвященные Microsoft Master Data Services:
MDS в Denali
Совместное использование SQL Server 2012 DQS, MDS и IS
Бизнес-правила, статусы, журнал в MDS SQL Server 2008R2

Еще несколько видео роликов по Microsoft Master Data Services:
Что нового в MDS 2016
Видео ролики от Microsoft по теме SQL Server 2012 Master Data Services
New Features in Microsoft SQL Server 2012 Master Data Services
SQL Server 2012 EIM Demo Part 3 - MDS Excel Add-In
SQL Server 2012 EIM Demo Part 4 - MDS and SSIS

Microsoft SQL Server 2014 Master Data Services для Microsoft Excel


Развитие

Ничто не стоит на месте, всё течёт и изменяется. С момента публикации данной статьи произошли некоторые изменения: 05 января 2015г. была выпущена версия 12.0.2468.0 плагина Microsoft SQL Server 2014 Master Data Services для Microsoft Excel, которая в 4 раза быстрее (4-x faster) извлекает данные с сервера MDS в таблицу Excel. Это достигается за счет:

  1. 4-х параллельных потоков загрузки данных (4 parallel threads of data load);
  2. поддержки сжатия данных;
  3. отказа от запросов лишних метаданных.


Также разработчики из Microsoft обещают дальнейшее развитие, улучшения Master Data Services. Уже заявлены полезные дорабтки в следующей версии MS SQL Server 2016, в частности:

  • + Возможность ссылаться на сущности другой модели;

  • + Возможность создания пользовательских бизнес-правил - программируемых SQL функций;

  • + Возможность создания для сущности некластерного индекса по одному атрибуту или списку атрибутов (составной индекс) с целью повышения производительности запросов;

  • + Возможность разделение прав доступа пользователей на добавление, редактирование, удаление записей;

  • + Возможность просматривать и управлять историей изменений как по сущности, так и по элементам; если пользователь имеет право на редактирование, то сможет выполнить откат к предыдущей версии элемента;

  • + Возможность использования наборов изменений: если для измененных данных сущности требуется одобрение, их можно будет сохранить как ожидающие изменения в наборе изменений и отправить на утверждение администратору;

  • + Возможность получения уведомлений по электронной почте при каждом изменении состояния набора изменений сущности, который требует утверждения;

    + Возможность полного удаления (purge) записей в указнной сущности, помеченных как удаленные (soft-deleted) и потому не видимых в Web-интерфейсе / Excel AddIn;

  • + В Web-интерфейсе появится возможность создания новой строки на основе имеющейся;

  • + В Excel AddIn for MDS будет доступно администрирование бизнес-правил.


Похоже, в Microsoft команда разработки Master Data Services набрала существенные обороты по доработке продукта. Так, 27.01.2016г. через Microsoft Connect я дал обратную связь о необходимости реализации партиционирования таблиц, а 11.03.2016г. получил ответ: "Table partitioning has been implemented in SQL Server 2016 release for MDS to improve performance. You can download the latest public release and try it out.". Такой вектор и темп развития MDS очень кстати, посколько согласно Приложению 3 к Положению №483-П от 06.08.2015 Банк России выставляет серьезные требования к качеству данных, используемых банками.




Пример внедрения MS Master Data Services

Крупнейший частный универсальный Банк, ТОП-7. В Розничном Блоке введен в промышленную эксплуатацию справочник торговых точек (POS) потребительского кредитования на базе серверной службы Microsoft Master Data Services 2012. Справочник является неотъемлемой частью системы аналитической отчетности и источником данных для базовых систем Банка.


Ниже перечислены основные профиты от внедрения Microsoft MDS

  1. Обеспечение качества данных за счет настраиваемых бизнес-правил проверки, ссылочной целостности данных на уровне серверной службы (доменных атрибутов), а, следовательно, повышение и обеспечение качества операционной деятельности и аналитической отчетности;
  2. Многопользовательский режим работы как в привычной среде через бесплатную Excel-надстройку, так и через web-интерфейс;
  3. Легкая интеграция для потребителей данных из других подразделений (в том числе региональных), доступность данных: подписчики могут получать почти on-line (данные актуализируются в интерфейсной таблице каждый час в рабочее время);
  4. Масштабируемость решения: обеспечение работоспособности по мере роста объема данных;
  5. Надежность хранения данных: в частности, штатными средствами MSSQL выполняется автоматическое создание резервных копий базы данных MDS;
  6. Обеспечение безопасности данных: разграничение доступа к сущностям и атрибутам осуществляется по доменным учетным записям на уровне сервера;


Какие работы были проведены:

  1. Проанализированы данные бывшего Excel-справочника POS, поля формализованы в логическую 3NF структуру нового справочника, в результате чего из плоской структуры были выделены не менее 7 базовых сущностей;
  2. Разработана физическая структура: созданы сущности в MDS;
  3. Сформулирована логика проверки данных и реализована в виде правил-ограничений штатными средствами MDS;
  4. Парсинг, довосполнение, устранение критичных ошибок в данных, которые накопились за 7 лет эксплуатации имевшегося справочника;
  5. Разработаны отчеты, в том числе для обратной совместимости, для поддержки существующих технологических процессов;
  6. Созданы интерфейсы (views) для потребителей данных других подразделений;
  7. Проведено обучение сотрудников;
  8. Осуществлена полная миграция данных, которая выполнялась в несколько итераций; приостановка деятельности отдела по вводу новых данных была только на 1 день;
  9. Дана обратная связь в Microsoft: пожелания по доработке/ развитию MDS, некоторые из которых взяты в работу.


Стоимость лицензий = 0 рублей, поскольку MDS является одной из служб MS SQL Server 2012 EE, который используется в Банке. Все работы были выполнены внутренними силами бизнес-подразделения, без отрыва от основной деятельности.


Эксплуатация осуществляется на ежедневной основе, количество операторов - 11 человек (в 2017г. - уже свыше 100 человек). Общее количество нормативно-справочных таблиц для аналитической OLAP и мотивационной отчетности потребительского кредитования свыше 100, зарегистрированных активных бизнес-пользователей (data officer) ~ 60 сотрудников (в 2017г. - уже свыше 130 сотрудников), в том числе из региональных подразделений.


Энергия идеи   dvbi.ru                    Последнее изменение: 2021-12-12 22:55:54Z         Возрастная аудитория: 14-70         Комментариев:  0
Прикрепленные файлы:
 

Использование серверных фильтров MDS

              Размер: 288.98 Кб            Скачали раз: 65

Теги:   Примеры
Связанные статьи:

Пожалуйста, проголосуйте и ниже поставьте лайк:   rating


  Комментарии



Следующая статья:    SSAS - права доступа и MDS
Предыдущая статья:  Redmine - система управления проектами
К списку статей