SQL Server MDS(主数据服务)介绍
Master Data Services(主数据服务)介绍
主数据是用来描述企业核心业务实体的数据,比如客户、合作伙伴、员工、产品、物料单、账户等;它是具有高业务价值的、可以在企业内跨越各个业务部门被重复使用的数据,并且存在于多个异构的应用系统中。
说起来好像很抽象,举个例子:简单的一条销售记录:
时间 | 地区 | 产品 | 价格 | 数量 | 记录人 |
---|---|---|---|---|---|
2018-3-31 | 四川 | 自行车-001 | 309.00 | 2 | user01 |
这条数据并不是特别完整, 是简化的记录,但是就这条数据中,就有如“记录人”、“地区”、“产品”这样的数据需要进行主数据管理,因为可能由于各系统的不同,记录人有的使用了“登录名”,有的系统可能是“显示名”,或者用户名发生了更改,那么前后记录就会发生变化,而这种变化很难追朔,就导致后期数据处理和统计时候出现很多错误。“地区”字段,有可能有的系统使用的“四川省”,有的地方使用了“四川”简称,有的可能使用了“中国-四川”这样就会导致后期处理出现很多错误信息。
因此如何将这些信息数据标准化,各子系统的数据统一。并且数据可以重复使用,当数据变化时候能够有所追朔,并且各子系统可以立刻拿到最新的数据,这就是主数据存在的价值。 当然还有更多复杂的需要,如:主数据的安全如何管理,谁可以读,谁可以改等。
SQL Server在2008提供了MDS功能。可以很方便容易的进行MDS的管理。
Master Data Services 的安装
使用 Master Data Services需要安装一些Windows的一些功能,可以使用下面的Power Shell 脚本进行安装。
Install-WindowsFeature Web-Mgmt-Console, AS-NET-Framework, Web-Asp-Net, Web-Asp-Net45, Web-Default-Doc, Web-Dir-Browsing, Web-Http-Errors, Web-Static-Content, Web-Http-Logging, Web-Request-Monitor, Web-Stat-Compression, Web-Filtering, Web-Windows-Auth, NET-Framework-Core, WAS-Process-Model, WAS-NET-Environment, WAS-Config-APIs Install-WindowsFeature Web-App-Dev, NET-Framework-45-Features -IncludeAllSubFeature –Restart
在SQL Server安装过程中安装此功能。
1、打开SQL Server的安装文件,双击 Setup.exe,然后按照安装向导中的步骤进行操作。
2、在“功能选择”页的“共享功能”下,选择 Master Data Services。 安装即可,
安装完成后,在开始菜单
Microsoft SQL Server 2017>Master Data Services>SQL Server 2017 Master Data Services 配置管理器
打开SQL Server 2017 Master Data Services 配置管理器 配置器就可以进行相应的配置,界面如下:
Master Data Services 的配置
首先需要创建数据库,因此点击创建数据库,按照下面向导即可创建
输入需要创建的数据库服务器名称和权限。
输入相应的数据库名称,和选择排序规则
管理员名称
创建完成后可以看到如下信息:包含数据库实例名字,数据库名,还有版本信息。当然还可以设置相应的连接数据库的参数,如超时等。
完成数据库配置后,需要进行web配置,点击web配置,创建应用程序池
输入相应的用户**,路径信息,即可进行配置。结果如下:
选择需要连接的mds数据库
应用后,完成提示可以浏览web应用程序,确定后打开如下界面,如果没有安装sliverlight,会提示安装。
概念介绍
使用MDS首先要理解几个概念,模型,实体,属性,业务规则几个概念
模型:模型是 Master Data Services中最高级别的数据组织。 模型定义了您的主数据管理解决方案中的数据结构。 模型包含以下对象: 实体 、属性和属性组 、显式层次结构和派生层次结构 、集合
模型组织您的主数据的结构。 你的 Master Data Services 实现可能有一个或多个模型,每个模型都会将相似类型的数据组合在一起。 通常,可通过以下四种方式之一划分主数据:人员、地点、事件或概念。 例如,可以创建 Product 模型来包含与产品有关的数据,或创建 Customer 模型来包含与客户有关的数据。
可以分配用户和组权限来查看和更新模型中的对象。 如果您不授予对模型的权限,则它不显示。
您随时都可以创建模型中主数据的副本。 这些副本称为版本。
在测试环境中定义一个模型后,可以带或不带相应数据将它从测试环境部署到生产环境。 这样就不必在生产环境中重新创建您的模型。
实体:实体是 Master Data Services 模型中包含的对象。 每个实体都包含成员,它们是您管理的主数据的行。 模型可以包含想要管理的任意多个实体。 每个实体应将相似类型的数据分组。 例如,您可能希望将一个实体用于您的所有公司帐户,或将一个实体用于雇员的主列表。
通常,有一个或多个中心实体对于您的业务非常重要,它们与模型中的其他对象关联。 例如,在 Product 模型中,可能有一个名为 Product 的中心实体和与 Product 实体关联的名为 Subcategory 和 Category 的实体。 但是,您不需要一定有中心实体。 根据您的需要,可能希望有几个同等重要的实体。
属性:属性是 Master Data Services 实体中包含的对象。 属性值描述实体的成员。 属性可用于描述叶成员、合并成员或集合。
下图视图以产品模型为例 ,表示了模型、实体、集合、属性的关系
下面的示例中,Product 模型中的对象以逻辑方式对与产品相关的数据进行分组
其他常见的模型有:
•科目,它可能包含资产负债表科目、损益表科目、统计信息和科目类型等实体。
•客户,它可能包含性别、教育、职业和婚姻状况等实体。
•地理信息,它可能包含邮政编码、城市、县、州、省、区域、国家/地区和洲等实体。
导入学习包
学习MDS可以导入相应的学习案例来进行学习。
以下三个示例模型包都包含在 Master Data Services中。 这些示例模型包括数据。 示例模型包的默认位置为 %programfiles%\Microsoft SQL Server\140\Master Data Services\Samples\Packages
•chartofaccounts_en.pkg
•customer_en.pkg
•product_en.pkg
1、将示例模型包复制到c:\Program Files\Microsoft SQL Server\140\Master Data Services\Configuration。
2、通过运行以下命令打开管理员命令提示符,然后导航到 MDSModelDeploy.exe。
部署 chartofaccounts_en.pkg 示例模型 cd c:\Program Files\Microsoft SQL Server\140\Master Data Services\Configuration 下面命令 返回的值列表中,第一个服务值为指定用于部署模型的值。 MDSModelDeploy listservices 部署 chartofaccounts_en.pkg 示例模型 MDSModelDeploy deploynew -package chartofaccounts_en.pkg -model ChartofAccounts -service MDS1 部署 customer_en.pkg 示例模型 MDSModelDeploy deploynew -package customer_en.pkg -model Customer -service MDS1 部署 product_en.pkg 示例模型 MDSModelDeploy deploynew -package product_en.pkg -model Product -service MDS1
部署完成后可以访问web站点,如
可出现如下界面:
浏览管理模型
使用资源管理器可以对模型进行添加,修改等操作,如图,模型选product,默认版本,点击资源管理器。
可以看到有实体、实体依赖关系、层次结构、集合、变更集的操作。
比如选择color实体,就可以看到如下的数据
在这个界面可以进行添加、删除成员,也可以使用应用规则,应用规则指模型实体的相关业务规则。
业务规则是您在 ssMDSmdm 中创建的 主数据管理器语句。 如果属性值符合指定条件,会执行操作,否则执行 Else 操作。 可能的操作包括设置默认值或更改值。 这些操作可与发送电子邮件通知这一操作结合使用。
业务规则可以基于特定属性值(例如,如果 Color=Blue,则执行操作),或在属性值发生更改时(例如,如果 Color 属性的值发生更改,则执行操作)应用。 有关跟踪非特定更改的详细信息,请参阅更改跟踪 (Master Data Services)。
若要使用业务规则,您必须首先创建和发布规则,然后将已发布的规则应用于数据。 您可以通过验证某一版本,将规则应用于该版本的数据的子级或全部数据。 在所有属性都通过业务规则验证前,不能提交版本。
如果用户尝试添加未通过业务规则验证的某一属性值,仍可以保存该值。 您可以查看并纠正在 主数据管理器中显示的验证问题。
在您创建模型部署包时,如果想要包括业务规则,则必须包括来自该包中版本的数据。
如果您创建使用 OR 运算符的业务规则,应为可以独立进行计算的每个条件语句创建单独的规则。 然后,您可以根据需要排除规则,提供更高的灵活性以及更便于排除故障。
也可以使用Excel 进行模型的管理,需要下载 用于 Excel 的 MDS 外接程序,如何使用,
可参考如下链接:
开始使用MDS
点击主页的 系统管理 可进行模型的创建
点击添加,即可添加模型
模型添加后,需要添加实体、属性等,总体来说需要很多事情需要完成,本文不能全部写完,可自行摸索完成以下
Master Data Services 功能和任务
主数据的功能和任务中,需要完成
1、创建模型,和数据结构等
2、有了数据后,需要进行数据维护工作
3、数据还需要提高数据质量
4、数据如何进行导入导出转移,移动的操作
5、如何开发自定义的应用程序
下面的连接包含了所有的任何和工作。请参考,如果不能点击,请浏览
https://docs.microsoft.com/zh-cn/sql/master-data-services/master-data-services-features-and-tasks
创建要包含数据的结构
基于域的属性 (Master Data Services)Domain-Based Attributes (Master Data Services)
属性组 (Master Data Services)Attribute Groups (Master Data Services)
维护主数据
用于 Microsoft Excel 的 Master Data Services 外接程序Master Data Services Add-in for Microsoft Excel
事务 (Master Data Services)Transactions (Master Data Services)
层次结构 (Master Data Services)Hierarchies (Master Data Services)
提高数据质量
业务规则 (Master Data Services)Business Rules (Master Data Services)
通知 (Master Data Services)Notifications (Master Data Services)
导入导出数据
概述:导入表中数据 (Master Data Services)Overview: Importing Data from Tables (Master Data Services)
概述:导出数据 (Master Data Services)Overview: Exporting Data (Master Data Services)
部署模型 (Master Data Services)Deploying Models (Master Data Services)
开发自定义应用程序
集成应用
主数据管理最终都会应用在各自的系统,MDS提供了service来进行调用和管理。
首先修改 C:\Program Files\Microsoft SQL Server\140\Master Data Services\WebApplication\web.config文件,找到 <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 将这两个参数改为 true
访问类似连接:
http://localhost/MDS/service/service.svc
可以做的操作有如下:
模型操作
这些操作用于创建、更新和删除模型,以及对所有模型内容(如实体、层次结构和版本)执行操作。 有关详细信息,请参阅模型 (Master Data Services)。
|||-||MetadataClone||MetadataCreate||MetadataDelete||MetadataGet||MetadataUpdate|
实体操作
这些操作用于创建、更新和删除单个实体的成员。 有关详细信息,请参阅实体 (Master Data Services) 和成员 (Master Data Services)。
|||-||EntityMemberKeyLookup||EntityMembersCopy||EntityMembersCreate||EntityMembersDelete||EntityMembersGet||EntityMembersMerge||EntityMembersUpdate|
成员操作
这些操作用于获取、更新和删除成员。 这组操作的成员可能包含多个实体中的成员。 有关详细信息,请参阅成员 (Master Data Services)。
|||-||ModelMembersBulkDelete||ModelMembersBulkMerge||ModelMembersBulkUpdate||ModelMembersGet|
属性和层次结构操作
这些操作用于获取属性和层次结构信息。 还可通过使用模型操作来修改属性和层次结构,如 MetadataUpdate。 有关详细信息,请参阅属性 (Master Data Services) 和层次结构 (Master Data Services)。
|||-||EntityMemberAttributesGet||HierarchyMembersGet|
业务规则操作
这些操作用于创建、更新、删除和发布业务规则。 有关详细信息,请参阅业务规则 (Master Data Services)。
|||-||BusinessRulesClone||BusinessRulesCreate||BusinessRulesDelete||BusinessRulesGet||BusinessRulesPaletteGet||BusinessRulesPublish||BusinessRulesUpdate|
批注操作
这些操作用于创建、更新和删除批注。 有关详细信息,请参阅批注 (Master Data Services)。
|||-||AnnotationsDelete||AnnotationsUpdate||EntityMemberAnnotationsCreate||EntityMemberAnnotationsGet||TransactionAnnotationsCreate||TransactionAnnotationsGet|
事务操作
这些操作用于获取和撤消事务。 有关详细信息,请参阅事务 (Master Data Services)。
|||-||TransactionsGet||TransactionsReverse|
版本和验证操作
这些操作用来复制和验证版本。 有关详细信息,请参阅版本 (Master Data Services) 和验证 (Master Data Services)。
|||-||VersionCopy||ValidationGet||ValidationProcess|
数据质量操作
这些操作用于执行数据质量任务并检查其结果。
|||-||DataQualityCleansingOperationCreate||DataQualityMatchingOperationCreate||DataQualityInstalledState||DataQualityKnowledgeBasesGet||DataQualityOperationStart||DataQualityOperationResultsGet||DataQualityOperationStatus|
数据导入操作
这些操作用于将数据导入到 Master Data Services 数据库。 有关详细信息,请参阅概述:导入表中数据 (Master Data Services)。
|||-||EntityStagingClear||EntityStagingGet||EntityStagingLoad||EntityStagingProcess|
以下操作用于通过使用 SQL Server 2008 R2 中所包含的临时过程导入数据。 这些操作应仅用于支持现有数据库。 对于新的开发工作,请使用前面列出的操作。
|||-||StagingClear||StagingGet||StagingNameCheck||StagingProcess|
数据导出操作
这些操作可用于通过使用订阅视图导出数据。 有关详细信息,请参阅概述:导出数据 (Master Data Services)。
|||-||ExportViewCreate||ExportViewDelete||ExportViewListGet||ExportViewUpdate|
安全操作
这些操作用于修改控制对 Master Data Services 数据库进行访问的安全设置。 有关详细信息,请参阅安全性 (Master Data Services)
|||-||SecurityPrincipalsClone||SecurityPrincipalsCreate||SecurityPrincipalsDelete||SecurityPrincipalsGet||SecurityPrincipalsUpdate||SecurityPrivilegesClone||SecurityPrivilegesCreate||SecurityPrivilegesDelete||SecurityPrivilegesGet||SecurityPrivilegesUpdate|
系统操作
这些操作用于获取和更新系统设置和用户首选项。
|||-||ServiceCheck||ServiceVersionGet||SystemDomainListGet||SystemPropertiesGet||SystemSettingsGet||SystemSettingsUpdate||UserPreferencesDelete||UserPreferencesGet||UserPreferencesUpdate|
以上方法足够满足应用的需求,详细的开发参考开发文档:https://docs.microsoft.com/zh-cn/sql/master-data-services/develop/categorized-web-service-operations-master-data-services
总结
SQL Server 提供的主数据管理,可以说是博大精深,简单方案, 企业发展到一定程度必然面临主数据管理的问题,很多厂商,数据库产品都提供主数据的功能,也有开源的产品。SQL Server提供的是一套成熟的企业级的主数据管理产品,并且包含在数据库中作为一个组件,不需要单独付费。
Max Shen,2018年4月