本文的示例将使用名为 Adventure Works 的一个 Master Data Services 模型,它有唯一一个实体 Employee。在这个实体中有三个属性,分别是LastName、FirstName 和 EmployeeId。我们将使用 AdventureWorks 2008 数据库所提供的示例数据,将这些数据加载到 Master Data Services 中。 加载数据是通过将数据表内容插入到 Master Data Services 知识库的一些数据表实现的。
这些数据表包括: · mdm.tblStgMember – 筹划叶成员,统一的成员和集合。 · mdm.……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
本文的示例将使用名为 Adventure Works 的一个 Master Data Services 模型,它有唯一一个实体 Employee。在这个实体中有三个属性,分别是LastName、FirstName 和 EmployeeId。我们将使用 AdventureWorks 2008 数据库所提供的示例数据,将这些数据加载到 Master Data Services 中。
加载数据是通过将数据表内容插入到 Master Data Services 知识库的一些数据表实现的。这些数据表包括:
· mdm.tblStgMember – 筹划叶成员,统一的成员和集合。
· mdm.tblStgMemberAttribute – 更新属性值。
· mdm.tblStgRelationship – 用以在显式层次中移动成员以及将成员添加到集合中。
我们将使用 T-SQL 来加载数据到这些表中。然而,在一个更大型的数据导入过程中,您可以使用 SQL Server Integration Services (SSIS) 或其它 ETL 工具 来导入数据。
加载数据
首先我们需要将记录插入到 mdm.tblStgMember 表中。这将告诉导入过程哪些实体是用来加载数据的。下面是示例代码:
INSERT INTO mdm.tblStgMember (ModelName, HierarchyName, EntityName, MemberType_ID, MemberName, MemberCode) VALUES ('Adventure Works', NULL, 'FirstName', 1, '', 1), ('Adventure Works', NULL, 'LastName', 1, '', 2), ('Adventure Works', NULL, 'EmployeeId', 1, '', 3) |
在这些 T-SQL 代码运行后,查询 mdm.tblStgMember 表,注意记录以 Status_ID 为 0 插入,如图 1。如果我们查看关于 mdm.tblStgMember 表的 MSDN 文档,我们可以看到 Status_ID 字段的各种值所表达的意思。
mdm.tblStgMemberAttribute 表是我们需要加载数据的第二个表。这能够告诉导入过程我们希望导入的数据的值。当查看这个表时,我们会注意到它看起来像一个名称-值配对的表。这样,我们可以导入两个员工的值到 mdm.tblStgMemberAttribute 表。当加载数据到 mdm.tblStgMemberAttribute 和 mdm.tblStgMember 表的查询时,我们会发现 MemberCode 的值似乎是随意赋值的,而且应该在加载批处理中是唯一的。
INSERT INTO mdm.tblStgMemberAttribute (ModelName, EntityName, MemberType_ID, MemberCode, AttributeName, AttributeValue) VALUES ('Adventure Works', 'Employee', 1, 1, 'FirstName', 'Bill'), ('Adventure Works', 'Employee', 1, 2, 'LastName', 'Gates'), ('Adventure Works', 'Employee', 1, 3, 'EmployeeId', '1') INSERT INTO mdm.tblStgMemberAttribute (ModelName, EntityName, MemberType_ID, MemberCode, AttributeName, AttributeValue) VALUES ('Adventure Works', 'Employee', 1, 1, 'FirstName', 'Steve'), ('Adventure Works', 'Employee', 1, 2, 'LastName', 'Balmer'), ('Adventure Works', 'Employee', 1, 3, 'EmployeeId', '2') |
如果我们查询 mdm.tblStgMemberAttribute,我们可以看到只包含在这个表中的数据,如图 2 所示。您可以在关于 mdm.tblStgMemberAttribute 的 MSDN 文档上查看不同的 Status_ID 值。
如果您在您的主数据中使用层次,您将需要加载数据到 mdm.tblStgRelationship 表中。因为本文使用的示例并没有使用层次,所以请参考 MDS Team 关于这个问题的 博客,以及关于 mdm.tblStgRelationship 表 的 MSDN 文档。
作者
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
Collaborate 2015:当BI遭遇物联网
作为GE全球研究院的首席架构师,Shyam Nath最近一直在关注物联网技术与传统商业智能(BI)如何结合。
-
SQL Server 2012的五个商业智能特性
SQL Server 2012交付了一些新特性,增强和扩展了的功能远胜于SQL Server 2008和2008 R2。
-
Teradata数据仓库加速荷兰Sligro食品集团的商业智能建设
Teradata数据仓库加速荷兰Sligro食品集团的商业智能建设。助力零售和批发领导企业提高数据分析能力,打造需求导向型企业流程
-
如何配置使用微软SQL Server 数据分析工具
本系列文章分两部分,本文是第二部分。我们将以测试体验的方式了解微软SQL Server提供的数据分析工具。