MS MDS系列之初识MS Master Data Service(微软主数据服务)
背景介绍:
主数据服务(Master Data Services)是微软平台支持的主数据管理(MDM)平台。类似MDS这样的系统,如果后续维护得当,会给企业提供一个强大的中心数据库系统,来防止企业数据变得不同步或不一致;同时也是企业内部管理数据流的可靠方式。
目前一个企业很多时候通过良性循环或者收购来实现业务增长。无论哪种方式,都将增加企业应用程序的数据流的数量和复杂度。如果断开和分离这些系统,将带来的各种问题,如数据不一致、数据数据碎片、数据不准确等等,并且对IT部门来讲,也会面对越来越多的困难和付出越来越多的工作来应对不断变化的业务需求。同时,为了理顺复杂数据的问题,就促使一个可以定义、集成、清理、管理并最终能把数据分发给的多个系统的系统变得很重要。
主数据管理(MDM)是一个处理过程,用来从多种数据源收集企业数据,然后应用标准的规则和业务流程,并建立独立的订阅视图,最终把这些“高质量”版本的数据分发给企业各系统,从而使所有的用户可以访问。
本文参考文档:https://www.red-gate.com/simple-talk/sql/data-platform/master-data-services-basics/
1. 主数据服务
主数据服务是微软提供的一款MDM解决方案的产品,它是建立在以SQL Server数据库技术作为后端处理之上的。它使用Windows通信基础(WCF)技术,提供了面向服务架构终端的方案。你可以用MDS来创建一个集中的、同步的数据源集成架构来减少减少数据的冗余。
微软的第一版主数据服务是在SQL Server 2008里面发布的,里面只有有限的一些功能,也有一些缺陷。此外,由于当时很少有企业重视主数据管理,所以它的介绍大多被忽视了。在SQL Server 2012、2014和2016的后续版本中,给主数据服务带来了一些新的功能,同时产品也越来越稳定。在最新的SQL Server 2016版本中,主数据管理的功能与其它的企业级MDM解决方案基本差不多了。
主数据服务是一个三层体系的结构,包含数据库层、服务层和交互/插件层。下面的架构图展示了主数据服务(MDS)与数据质量服务(DQS)和SQL Server集成服务(SSIS)的集成解决方案。
2. MDS数据库中模型与实体相关的表
由于MDS是基于SQL Server的,所以很多核心的逻辑是用存储过程来处理的。在数据库创建之后,有大约三百个存储过程、五十个表以及一些数据库视图和函数。下面是一些主要使用的表的简介:
- tblmodel–包含MDM模型信息,同时也可以作为业务的主题域,比如客户、产品等。
- tblentity–包含MDM实体信息。存储了所有模型的所有实体的信息。
- tblattribute–包含每个实体的属性的详细信息。是一个属性列的结构。
- tblattributegroup–是特定实体属性的逻辑分组。
- tblmodelversion–模型的版本信息。
下面可以通过一个Query来查询Model下面的Table的结构信息:
SELECT MDL.ID AS 'Model ID' ,MDL.Name AS 'Model Name' ,'' AS 'Model Description' ,ENT.Name AS 'Entity Name' ,ENT.EntityTable AS 'Entity TableName' ,VI.Name AS 'View Name' ,'' AS 'Entity Description' ,ATTR.DisplayName AS 'Column Name' ,ATTR.TableColumn AS 'Table Column Name' ,CASE ATTR.DataType_ID WHEN 0 THEN 'LINK' WHEN 1 THEN 'TEXT' WHEN 2 THEN 'DECIMAL' WHEN 3 THEN 'DATETIME' ELSE '' END AS 'Column Type' ,ATTR.IsCode ,ATTR.IsName ,ATTR.IsSystem FROM mdm.tblModel AS MDL INNER JOIN mdm.tblEntity AS ENT ON MDL.ID = ENT.Model_ID INNER JOIN mdm.tblSubscriptionView AS VI ON MDL.ID = VI.Model_ID AND ENT.ID = VI.Entity_ID INNER JOIN mdm.tblAttribute AS ATTR ON ENT.ID = ATTR.Entity_ID WHERE MDL.IsSystem = 0 --AND ATTR.AttributeType_ID = 1 --AND MDL.ID=17 --AND VI.Name LIKE 'V_%' AND ENT.EntityTable = 'tbl_17_241_EN'--'tbl_17_279_EN' ORDER BY MDL.ID ,ENT.ID ,ATTR.SortOrder
3. Master Data Service组件
3.1 MDS Web服务
MDS管理是通过用户界面来处理主数据服务任务。包含两种类型的任务,数据任务和管理任务。
1)数据任务
用户可以在基于模型查看实体、实体依赖关系、层次结构、集合等。可以创建、查看、更新或删除成员数据。您也可以应用业务规则,查看历史的任何成员。当使用数据任务时,可以通过web界面录入数据,进行数据的修改、增加、删除。
2)管理任务
管理任务包含下面四个功能:系统管理、集成管理、版本管理、用户/组权限管理
a. 系统管理
可以在模型中,创建和维护实体、属性、属性组、层次结构、指标和业务规则。还可以创建模型包,也可以部署以前创建的模型包。
b. 集成管理
可以批量数据导入MDS。也可以创建订阅视图数据导出MDS数据和提供下游系统订阅这些SQL视图。
c. 版本管理
可以锁定解锁版本、查看历史和清除成员的版本。还可以管理版本标志。默认情况下创建四个版本标志:存档、当前、计划和历史。还可以添加或删除版本标志。当只使用数据部署模型包时,创建的版本既不验证也不提交。可以验证和提交版本。还可以访问该模型的特定版本的事务等功能。
d. 用户/组权限管理
在安装MDS时,只创建了管理员账户;在这个界面可以创建更多的用户或用户组,并且分配特定的MDS功能或访问权限。主数据服务安全基于Windows或Active Directory域用户和组。具体模型内部的权限设置,主要基于创建的派生层次结构进行配置,此功能会在另外一篇文章中详细介绍。
3.2 MDS Excel Add-in组件
背景:在很多产品都支持MDM功能时,唯一的区别是在使用MDM系统用户体验。而Office办公工具是用户广泛应用的,也是最接地气的一款软件。
主数据服务可以再Excel中以插件的形式存在,提供给用户Excel表格的输入界面,允许业务用户直接管理数据,同时也允许管理员轻松创建新的实体和属性。
Add-in组件:要下载Excel中的外接程序,请登录主数据管理器Web端,点击“安装Excel中的主数据服务”,基于计算机系统来选择是安装32位还是64位的版本。在成功安装之后,在Excel中就可以看到主数据菜单了。(如果没有在主菜单中看到主数据,请从打开“文件” -> ”选项” -> “加载项” ->选择“COM加载项” -> 点击“转到” -> 选择“主数据服务加载项”。相关问题:如果找不到主数据(Master Data)插件怎么办?)
连接MDS服务器:在主数据菜单卡中,创建MDS服务器的连接,直接输入服务器地址:HTTP://主机名:端口/MDS(在Master Data Manager里面配置的地址)。
此时,可能会遇到主数据服务登录失败的提示、解决办法:用打开web浏览,访问MDS服务器,然后选择保存账户名和密码。保存的账户信息就会用于Excel中的身份验证。如果是企业级应用的话,MDS服务器就会与企业的LDAP/AD服务器集成,Excel就可以使用Windows身份集成验证进行登录。
连接完成之后,就会在右边显示出NDS的界面,显示Model和各个版本的列表,选择不同的Model和版本进行数据的维护。
在Excel里面包含的功能主要有:
1)连接和加载(Connect and Load)
可以管理一个或多个MDS服务器,如开发,QA或生产。
“刷新”用来从服务器提取数据到Excel表格。前提是已经连接上了相应的Entity。“筛选”可以以筛选器的功能在数据表中,下载需要的部分数据。筛选器提供了获取选择列、选择属性组、层次结构等的功能。
2)保存并发送查询
在建立连接之后,可以将该检索信息保存为快捷方式查询。快捷方式查询包含有关连接、模型、版本、实体以及应用的筛选器的信息。也可以通过单击“发送查询”选项,把查询以附件的方式,通过电子邮件发送出去。
3)发布和验证
这是使用最频繁的功能。将数据发布到MDS数据库,删除选择的行,应用最新的业务规则,查看数据行的验证状态和历史信息。
4)DQS
用于连接DQS,进行预定义的数据质量规则验证。关于DQS内容,会在接下来的文章中介绍。
5)建立模型
如果是管理员,那么可以通过在Excel里面的表格,创建一个新的实体,并保存到MDS数据库中。
结论:
综合以上所提供的功能简介,可以尝试开始创建自己的第一个模型(Model)和实体(Entity)了。放开手开始干吧,有任何问题,欢迎留言讨论。