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是不允许直接删除的。
MS MDS系列之MDS层次结构(Hierarchy)的更多相关文章
- MS MDS系列之初始MS Master Data Service(微软主数据服务)
背景介绍: 主数据服务(Master Data Services)是微软平台支持的主数据管理(MDM)平台.类似MDS这样的系统,如果后续维护得当,会给企业提供一个强大的中心数据库系统,来防止企业数据 ...
- 多MDS变成单MDS的方法
前言 之前有个cepher的环境上是双活MDS的,需要变成MDS,目前最新版本是支持这个操作的 方法 设置最大mds 多活的mds的max_mds会超过1,这里需要先将max_mds设置为1 ceph ...
- ms sqlserver 系列之如何查看数据链接数
[转]如何查看SQL SERVER数据库当前连接数 1.通过管理工具开始->管理工具->性能(或者是运行里面输入mmc)然后通过添加计数器添加 SQL 的常用统计然后在下面列出的项目里面选 ...
- Machine Learning for hackers读书笔记(九)MDS:可视化地研究参议员相似性
library('foreign') library('ggplot2') data.dir <- file.path('G:\\dataguru\\ML_for_Hackers\\ML_for ...
- hadoop-n.x.y-src.tar.gz 、hadoop-n.x.y-src.tar.gz.asc 、hadoop-n.x.y-src.tar.gz.md5 、hadoop-n.x.y-src.tar.gz.mds是什么?
不多说,直接上干货! 我这里,以hadoop-2.6.0为例. hadoop-n.x.y.tar.gz.mds,此mds文件是为了检验在下载和移动文件过程中文件的完整性. 通过验证文件的md5值去检验 ...
- hadoop-n.x.y.tar.gz、hadoop-n.x.y.tar.gz.asc 、hadoop-n.x.y.tar.gz.md5 、hadoop-n.x.y.tar.gz.mds分别是什么?
不多说,直接上干货! 我这里,以hadoop-2.6.0为例. hadoop-n.x.y.tar.gz.mds,此mds文件是为了检验在下载和移动文件过程中文件的完整性. 通过验证文件的md5值去检验 ...
- MDS 多活配置
CephFS 介绍及使用经验分享 阅读 1179 收藏 2 2019-01-14 原文链接:www.jianshu.com WebRTC SFU中发送数据包的丢失反馈juejin.im 目录 Ceph ...
- 吴裕雄 python 机器学习——多维缩放降维MDS模型
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from sklearn import datas ...
- 分布式存储系统之Ceph集群MDS扩展
前文我们了解了cephfs使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16758866.html:今天我们来聊一聊MDS组件扩展相关话题: 我们 ...
随机推荐
- javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- php面向对象3
类的定义 基本定义 class 类名{ 访问修饰符 成员属性; 访问修饰符 成员方法; } 说明: ①类一定要class关键词修饰 ②类名的规范说明,使用大驼峰法 ③php 中,类名不区分大小写.但是 ...
- 高性能迷你React框架anu在低版本IE的实践
理想是丰满的,现实是骨感的,react早期的版本虽然号称支持IE8,但是页面总会不自觉切换到奇异模式下,导致报错.因此必须让react连IE6,7都支持,这才是最安全.但React本身并不支持IE6, ...
- Layered Windows窗口的半透明效果
介绍: Layered Windows是windows窗口中的一类,提供类似半透明的效果(阿尔法混合).半透明效果是字面上有能看出来的,但实际上根据MSND,该类型的窗口还能更好的支持非矩形的窗口,使 ...
- 利用Border画三角形
边框 1.边框其实并不是矩形,而是梯形 2.利用边框画三角形: div.a{ width:0px; height:0px; border:10px white solid; border-top-co ...
- Python os模块--路径、文件、系统命令等操作
os模块包含普遍的操作系统功能. 注意:函数参数path是文件或目录的路径,filename是文件的路径,dirname是目录的路径,路径可以是相对路径,也可绝对路径 常见或重要的函数为加粗字体 os ...
- mybatis if test 解决页面 升序和降序的问题
<if test="status !=null and status !='' and status =='1'.toString()"> ORDER BY tag.c ...
- JavaScript练习笔记整理·2 - 6.24
Codewars地址:https://www.codewars.com/ 欢迎和大家一起来讨论~ 基础练习(1): 我的解答为: function isIsogram(str){ if(s ...
- [leetcode-565-Array Nesting]
A zero-indexed array A consisting of N different integers is given. The array contains all integers ...
- 【Android Developers Training】 90. 序言:解决云储存冲突
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...