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)了。放开手开始干吧,有任何问题,欢迎留言讨论。
MS MDS系列之初始MS Master Data Service(微软主数据服务)的更多相关文章
- 使用WCF Data Service 创建OData服务
使用WCF Data Service 创建OData服务 在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主 ...
- MS MDS系列之MDS层次结构(Hierarchy)
在Master Data Services中,Hierarchy的作用主要用于: 对同属性成员进行分组 聚合成员用于分析和报告输出 写在开始:显示层次结构(Explicit Hierarchy)即将在 ...
- WCF Data Service 使用小结(二) —— 使用WCF Data Service 创建OData服务
在 上一章 中,介绍了如何通过 OData 协议来访问 OData 服务提供的资源.下面来介绍如何创建一个 OData 服务.在这篇文章中,主要说明在.NET的环境下,如何使用 WCF Data Se ...
- HR数据抽取:通过 Read Master Data 转换规则读取时间相关主属性数据
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- salesforce lightning零基础学习(六)Lightning Data Service(LDS)
本篇可参看:https://trailhead.salesforce.com/modules/lightning_data_service Lightning中针对object的detail页面,一个 ...
- Using ADO.NET Data Service
ADO.NET Data Service是随同Visual Studio 2008 SP1提供的用于构建在数据对象模型 (如EF-DEMX, LINQ-DBML) 之时来快速提供企业网内外的轻量级数据 ...
- QM模块包含主数据(Master data)和功能(functions)
QM模块包含主数据(Master data)和功能(functions) QM主数据 QM主数据 1 Material Master MM01/MM02/MM50待测 物料主数据 2 Sa ...
- 我的WCF Data Service 系列 (一、为什么要有WCF Data Service)
开篇先说两名题外话, 在博问上,经常看到有个问性能问题,比如Entity Framework的性能行不行啊之类的. 其实这个行不行,关键还是看对象,一夜家族的老七可能勉强吃点蓝片片,也就行了,可真要让 ...
- Article Master Data Deviation
Site data – Logistics DC / Logistics Store Where is the reference site decided when you maintain the ...
随机推荐
- Canvas学习系列二:Canvas的坐标系统
上一章内容中我们对canvas元素有了一个初步的认识,在接下来的章节中我们会慢慢学习canvas中图形的绘制:但是在绘制之前我们先来看看canvas中的坐标系统,因为这样我们才能知道绘制的图形放在什么 ...
- webpack实用配置
前面的话 上文介绍了webpack入门,本文将详细介绍webpack实用配置 版本号 以entry.js打包为bundle.js为例,出口的filename可以设置为[id].[name].[hash ...
- RMAN备份与恢复(一)--认识RMAN
RMAN(Recovery Manager)是Oracle恢复管理器的简称,是集数据库备份(backup).修复(restore)和恢复(recover)于一体的工具.接下来了解一下RMAN中的几个重 ...
- cp的用法
1.cp的功能 拷贝一个或多个文件(或目录)到目的地 2.例子 1)一次拷贝多个源文件到目的地#cp /mnt/hgfs/DOC/{1,2,3,4,5}.txt /root/ldj 2)只拷贝链接文件 ...
- 浅谈js中的正则表达式
很多时候多会被正则表达式搞的晕头转向,最近抽出时间对正则表达式进行了系统的学习,整理如下: 正则表达式的创建 两种方法,一种是直接写,由包含在斜杠之间的模式组成:另一种是调用RegExp对象的构造函数 ...
- 关于MATLAB处理大数据坐标文件2017528
第一次提交数据 增加了部分特征 3000数据测试中得分99 但是10万数据出现过拟化现象,正确率下降 总结:1.某些特征数据本身波动不大应该考虑放弃 2.一些特征虽然表面觉得差异显而易见,但是数据表达 ...
- Swift数组的迭代访问
你可以通过for-in循环来迭代访问整个数组的值. for item in shoppingList { println(item) } // Six eggs // Milk // Flour // ...
- Linux终端类型
unix是一个多用户多任务的操作系统.早期电脑昂贵,所以当时使用便宜的设备连接到电脑上(当时还没有键盘和显示器,使用纸带和卡片来输入输出)来使用操作系统,这个便宜的设备就是终端,也可以认为终端是一种控 ...
- JAVA基础——Arrays工具类十大常用方法
Arrays工具类十大常用方法 原文链接:http://blog.csdn.net/renfufei/article/details/16829457 0. 声明数组 String[] aArray ...
- UML 解析
UML 解析 泛化 表示类与类之间的继承关系.接口与接口之间的继承关系: 实现 表示类对接口的实现 依赖 当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有"拥有关系&quo ...