Master Data Services进阶指导:加载数据

日期: 2010-04-20 作者:Denny Cherry翻译:曾少宁 来源:TechTarget中国 英文

本文的示例将使用名为 Adventure Works 的一个 Master Data Services 模型,它有唯一一个实体 Employee。在这个实体中有三个属性,分别是LastName、FirstName 和 EmployeeId。我们将使用 AdventureWorks 2008 数据库所提供的示例数据,将这些数据加载到 Master Data Services 中。   加载数据是通过将数据表内容插入到 Master Data Services 知识库的一些数据表实现的。

这些数据表包括:   · mdm.tblStgMember – 筹划叶成员,统一的成员和集合。   · mdm.……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

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的能源管理》等。

相关推荐