MS MDS系列之MDS层次结构(Hierarchy)

简介:

在Master Data Services中,Hierarchy的作用主要用于:

  • 对同属性成员进行分组

  • 聚合成员用于分析和报告输出

写在开始:显示层次结构(Explicit Hierarchy)即将在新版本中不再应用了。应该是2016。如果还在用之前的版本,并且有升级计划,最好提前准备替代方案。

在实际工作中,用于权限设置是基于第一种作用的一个重要体现。例如给不同部门同事分配不同的权限,那我们就需要在公司级别建立部门整体的业务结构,然后基于Hierarchy进行权限设置。这里有一点需要注意的是:一个层次结构必须是基于同一个模型(Model)的,不可夸模型创建层次结构。

基本介绍:

一个层次结构可以创建在一个或者多个实体(Entity)上,在MDS中有两种不同类别的层次结构:

  • 显示层次结构(Explicit Hierarchy):基于同一个实体(Entity)建立起来的层次结构。可以自由组织结构关系。每个叶子节点都可以作为当前层次的技术点,不限制结构的层次,不限制层次的成员数量。

在创建显示层次结构之前,必须在实体生启用显示结构,并命名。

         

  • 派生层次结构(Derived Hierarchy):基于同一个模型内部,不同实体之间的层次结构。用于描述实体与其属性之间的关系。这种关系是已经存在于实体之间的,用domain引用的方式进行关联的。

          

显示层次结构 vs. 派生层次结构:

显示层次结构

(Explicit   Hierarchy

派生层次结构

(Derived   Hierarchy

自定义结构

基于实体间domain引用的属性关系创建

基于一个实体内部成员创建

基于同一个模型内所有实体创建

在一个实体内部,使用合并成员来对内部其他成员进行分组

用一个实体的叶节点成员去归类另一个实体内的叶节点成员

允许任意层级数量

包含一致的层级数量

 

 

 

 

 

 

 

 

显示层次结构(Explicit Hierarchy):

所有层级结构的成员都是在同一个实体内部的。并且这里有两种类型的显示层次结构:

  • 强制显示层次结构(Mandatory Explicit Hierarchy)

所有的子节点成员都必须包含在层次结构中。默认的情况下是,所有成员都在根节点下。可以自己再重新组织结构。

  • 非强制显示层次结构(Non-Mandatory Explicit Hierarchy)

在此,就不过多介绍显示层次结构了,下面详细介绍派生层次结构。

派生层次结构(Derived Hierarchy):

首先需要介绍域引用(Domain-based),在创建实体的属性时,有三种类型可选:free-form, Domain-based, File。

 

  • Free-form:由于四种类型可以定义:文本,数字,日期时间,地址链接。都是属于基本的类型,根据实际情况选择。

如果选择Link方式,属性值必须以http:// 或者https://开头,否则的话,就会报错

例如,输入docs.microsoft.com/en-us/,然后发布;

 

系统在InputStatus这一列提示属性数据类型不正确。(光标放在相应的单元格上,就能看到错误提示的详细信息)

 

再把属性添加上https://之后,再次发布,成功提交。

  

  • Domain-based:引用模型内,其他实体的Code值。来达到主数据统一的目的;同时也能防止用户在录入的时候出现误差,可以通过这种方式进行规范化输入和验证。

例如在Subcategory实体中,建立Category属性,引用的是Category实体中的Code属性。

 

派生层次结构就是基于domain-based的属性创建的。例如我们闯将了Category,Subcategory,Product三个实体如下:

  • Category

   

  • Subcategory

其中Category属性,引用的是Category实体的Code属性,也是Category的主键。

   

  • Product

其中Subcategory属性,引用的是Subcategory实体的Code属性,也是Subcategory的主键。

   

派生层次结构(Derived Hierarchy)创建和示例:

1. MDS主页面,打开系统管理System Administration

   

2. 管理 - > 派生层次结构Derived Hierarchy

3. 点击 来创建一个新的派生层次结构。

  

命名成HRC_Product,然后保存。

 

4. 在编辑界面,需要先从最底层节点开始,也就是最细粒度的层次开始。

   

我们需要在可用层级(Available levels)下依次把Product, Subcategory, Category实体点住,然后依次拖动到Current levels: HRC_Product上。MDS的操作这里确实有个坑,开始的时候尝试了很多方法,原来直接拖动就可以的。

   

系统只支持Code属性的派生层次结构创建。

   

  

  

派生层次结构(Derived Hierarchy)修改和删除

1. 同样也是需要先打开派生层次结构界面

   

2. 点击需要修改的HRC_Product。

按钮的右边,就出现了编辑按钮和删除按钮

如果需要删除的话,直接点击删除就可以。

如果需要编辑的话,点击编辑按钮。

  

 

 3. 编辑页面与创建是同一个。可以重命名层级名字和设置层级是否显示。

   

例如设置Subcategory不显示,效果如图;只是不显示而已,在聚合的时候,还是会按照创建的层次结构进行聚合的。

 

这里有两点需要注意:

第一点是最顶层和最底层的结构是必须显示的,也就是Category和Product是不允许隐藏的。

  

 第二点是如果需要删除某一层级,必须先从最顶层的层级开始删除,不支持直接删除子层级。例如Subcateogy和Product是不允许直接删除的。

 






















本文转自xsster51CTO博客,原文链接:http://blog.51cto.com/12945177/1951676 ,如需转载请自行联系原作者

相关文章
|
存储 Kubernetes 容器
Kubernetes 存储选项:持久化卷与存储类
【8月更文第29天】随着容器化的普及,越来越多的应用程序需要持久化数据以保持状态信息。Kubernetes 提供了一套完整的解决方案来管理和配置持久化存储,包括持久卷 (Persistent Volume, PV)、持久卷声明 (Persistent Volume Claim, PVC) 和存储类 (StorageClass)。本文将详细介绍这些概念,并通过实际示例来演示如何在 Kubernetes 中配置存储。
935 3
|
缓存 easyexcel Java
Java EasyExcel 导出报内存溢出如何解决
大家好,我是V哥。使用EasyExcel进行大数据量导出时容易导致内存溢出,特别是在导出百万级别的数据时。以下是V哥整理的解决该问题的一些常见方法,包括分批写入、设置合适的JVM内存、减少数据对象的复杂性、关闭自动列宽设置、使用Stream导出以及选择合适的数据导出工具。此外,还介绍了使用Apache POI的SXSSFWorkbook实现百万级别数据量的导出案例,帮助大家更好地应对大数据导出的挑战。欢迎一起讨论!
1507 1
|
数据可视化 开发者 Python
使用Python进行数据可视化:从入门到精通
【10月更文挑战第7天】本文将引导您通过Python的可视化库,如Matplotlib和Seaborn,来探索和展示数据。我们将通过实际代码示例,学习如何创建各种图表,包括条形图、散点图和直方图等,并讨论如何优化这些图表以更好地传达信息。无论您是初学者还是有一定基础的开发者,这篇文章都能帮助您提高数据可视化技能。
|
人工智能 数据挖掘 数据库
客户在哪儿AI——做真正管用的大客户获客方案
我们的目标是打造高效的ToB大客户获客方案。客户在哪儿AI生成企业全历史行为数据并提供数据分析服务,帮助企业从上帝视角洞察营销。通过真实案例展示,AI能显著提升活动营销效果,例如仅通过10场活动即可触及贡献44.9%营收的客户,30场则可达73.3%,极大提高效率。此外,在决策层和销售工作中,AI发现了某一关键客户与其69.3%营收来源有深层联系,证实了聚焦此客户的战略价值。我们虽不能公开全部细节,但愿与有兴趣者分享真实分析流程。由于服务刚启动,目前尚未有足够反馈,未来将及时分享成果。
|
人工智能 Kubernetes Cloud Native
亚洲唯一,阿里云入选 Gartner® 容器管理领导者象限!
亚洲唯一,阿里云入选 Gartner® 容器管理领导者象限!
38006 8
MQTT的心跳保活机制是通过`setKeepAliveInterval()`方法设置的
MQTT的心跳保活机制是通过`setKeepAliveInterval()`方法设置的
1581 2
|
存储 人工智能 自然语言处理
云原生向量数据库Milvus(一)-简述、系统架构及应用场景(上)
Milvus 是一款云原生向量数据库,它具备高可用、高性能、易拓展的特点,用于海量向量数据的实时召回。
|
Linux
Linux下,用命令进行 日志分割、日志合并
指定文件大小分割: split -b 10m catalina.out imsoft 以每个文本文件10M方式分割日志 文件合并: cat small_file* > large_file
2399 0