利用 yEd 软件做元数据管理
利用 yEd 软件做元数据管理
yEd Diagram editor 是我常用的 flow chart 制图工具, 另外我也用它画 ER 和 use case 图. 总结一下我喜欢 yEd 的原因:
1. 出色的对齐功能
2. 可随意拖动Node, 永远不用担心相连的 Edge 会自动断开连接
3. 每个 Node 都自带一个Label, 加说明文字非常方便
4. 每个 Edge 都自带一个Label, 加说明文字非常方便
今天总结的是一个非常有价值的使用场景, 在数据仓库和大数据平台中, 数据表的关系很复杂,随着平台的不断建设, 到最后想要清楚知道表和表有何关系都非常困难了. 在商业社会中, 有困难是个好事情, 能解决困难就是一个商机, 所以市场上出现了不少元数据管理工具, 卖的都挺贵的, 环境搭建也复杂.
下面介绍一个免费的方案:
使用 yEd 做元数据管理. 元数据管理在理论层面上将, 就是要能分析出节点与节点的关系, 找到某个节点的上游节点/下游节点. yEd 就有这样的功能:
1. Successors 视图, 以层次关系展现选定节点的下游节点
2. Predecessors 视图, 以层次关系展现选定节点的上游节点
3. Neighborhood 视图,, 展现选定节点的相邻节点
4. Find 搜索功能, 比如我们要找某个table, 无疑搜索是最快的方式.
特别提一下yEd的搜索功能, 它提供两种搜索方式:
1. 可以打开 structure view, 在该视图中可以输入搜索文本, 限制条件是: 只提供完整匹配的搜索方式, 只能搜索node的label, 不能搜索edge和其他对象.
2. 使用 find 功能(ctrl+F), 弹出搜索对话框, 能搜索Node/Edge等, 能自定义匹配模式. 吐槽一下, 该对话框要搜索的内容放在了中间位置, 而不是在最上或最下的位置, 我研究了很久才找个如何输入搜索的内容.

需要说明的是, 这个方案基本只能表级别依赖分析, 不能细化到column粒度.
元数据管理的步骤和技巧:
1. yEd 软件中打开 Successors/Predecessors/Neighborhood 视图
2. 增加Table节点, 需要选择 Entity with attribute 节点, 外边再套一个Grouping组件, 这样做的好处是, 可以折叠表节点 画布显示区就能显示更多的表, 如果将来 yEd 软件能将节点显示图标化, 就不需要这种曲线救国的方法了.
3. 增加 Edge(即表之间的关系), 注意箭头方向, 箭头方向按照上下游理解较容易, 但也可以做成双向箭头, yEd 都能正确分析出.
4. 当然 Node 也可以代表报表, 可以为数据表和报表设置不同风格的 Node 的外观来区分.
5. 巧用分组功能, 如果数据表或报表太多, 需要分组甚至需要多个子画布. yEd 有两个分组功能, 分别是: (a)使用 BPMN下的Group组件, (b)Group Nodes 选项卡下的Group组件. 这两个分组的效果是不同, BPMN下的Group组件会新建一个子画布; Group Nodes 选项卡下Group组件可以折叠成图标, 还可以加title. 需要增加子画布时我的做法是: 添加一个BPMN的Group组件, 然后外边再一个Grouping组件, 这样即可将子画布内容就可以图标化, 达到我们分而治之的意图.
ER图画布布局小技巧:
ER 图有时候关系很复杂, 要想布局好还不太容易, 这时候就可以借助 yEd 自动布局功能, 一般选择试试下面两种模式即能得到很好的布局效果:
1. Layout菜单/Hierarchical,
2. Layout菜单/Orthogonal/UML Style即可
利用 yEd 软件做元数据管理的更多相关文章
- VPS服务器利用WINSCP软件进行SFTP管理服务器文件
虽然我使用VPS时间也不是很久,但是我善于进行统计和分析,从我在的一些VPS交流QQ群中,可以看到基本上使用搬瓦工VPS的站长群中新手较多,甚至很多人都搞不明白VPS与V-P-N的区别都直接选择VPS ...
- 【收藏】关于元数据(Metadata)和元数据管理,这是我的见过最全的解读!
本文主要从元数据的定义.作用.元数据管理现状.管理标准和元数据管理功能等方面讲述了我对元数据(Metadata)和元数据管理的认知及理解. 元数据管理 一.元数据的定义 按照传统的定义,元数据(Met ...
- 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(下篇)
续篇—— 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(上篇) 上篇文章写了如何构建一个支持IKEv2的VPN,本篇记录的是如 ...
- 使用Atlas进行元数据管理之容错和高可用
1. 介绍 Apache Atlas使用各种系统并与之交互,为数据管理员提供元数据管理和数据血缘信息.通过适当地选择和配置这些依赖关系,可以使用Atlas实现高度的服务可用性.本文档介绍了Atlas中 ...
- Surfer 软件做等值线图
使用surfer软件做等值线图 Surfer软件美国Golden Software公司编制的一款以画三维图(等高线,image map,3d surface)的软件. Surfer具有的强大插值功能和 ...
- 规范化的软件项目演进管理--从 Github 使用说起
规范化的软件项目演进管理 从 Github 使用说起 1 前言 首先,本文的层次定位是:很基本很基础的 Github 工具的入门级应用,写给入门级的用户看的. 基本上工作过几年的人,下面描述的这些 ...
- Laravel5做权限管理
关于权限管理的思考 最近用laravel设计后台,后台需要有个权限管理.权限管理实质上分为两个部分,首先是认证,然后是权限.认证部分非常好做,就是管理员登录,记录session.这个laravel中也 ...
- Oracle Metadata Management (OMM)元数据管理 12.2.1发布
元数据管理元数据管理是解决大量关键业务和技术挑战的基础,这些挑战包括元数据实体有多少,上游数据变化的影响,在浏览器中提供友好的分析展现界面,或提供企业范围内的元数据现状分析和改进视图.OMM是一款基于 ...
- 从 SDWebImage 谈如何为开源软件做贡献
来源:伯乐在线 - 酷酷的哀殿 链接:http://ios.jobbole.com/89483/ 点击 → 申请加入伯乐在线专栏作者 从 SDWebImage 谈如何为开源软件做贡献 相识 – 知我者 ...
随机推荐
- 「2017 山东三轮集训 Day7 解题报告
「2017 山东三轮集训 Day7」Easy 练习一下动态点分 每个点开一个线段树维护子树到它的距离 然后随便查询一下就可以了 注意线段树开大点... Code: #include <cstdi ...
- Nginx+Tomcat-cluster构建
-----------ReProxy-------------------------Client-----------192.168.56.202 nginx 192.168.56.200 Tomc ...
- bzoj2288 生日礼物 (线段树)
我当然想选最大的子段和啦 但要选M次 那不一定就是最好的 所以提供一个反悔的选项,我选了一段以后,就把它们乘个-1,然后再选最好的(类似于网络流的思路) 这个可以用线段树来维护,记一个区间包含左端点/ ...
- 按奇偶排序数组 II
题目描述 给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数. 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数:当 A[i] 为偶数时, i 也是偶数. 你可以返回任何满足上述 ...
- JSON字符串 与 JSON对象 互转
一,JSON字符串与JSON对象的区别 JSON对象是符合JSON格式的对象,可以用"对象.属性"进行存取值; JSON字符串是符合JSON格式的字符串; 二,JSON字符串-&g ...
- bzoj3829 POI2014 FAR-FarmCraft
题目链接 思路 用\(f[i]\)表示完成第\(i\)棵子树所需要得时间. 考虑如果有两个子树\(a\)和\(b\),如果先去完成子树\(a\),那么对于花费得时间就是\(f[b] + siz[a] ...
- 第三十三篇-TabLayout的使用
效果图: 最上方是一个TabLayout,有三个部分,新闻.财经.娱乐,下方是一个ViewPaper,里面包含三个fragment,分别对应三个xml和java class. 第一个Fragment里 ...
- io系列之其他类
一.File类:将文件或者文件夹封装成对象. 方便对文件和文件夹的属性信息进行操作. File对象可以作为参数传递给流的构造函数. 注意: 文件夹名称也可带有扩展名. 构造函数: File(Strin ...
- POJ-1077 HDU 1043 HDU 3567 Eight (BFS预处理+康拓展开)
思路: 这三个题是一个比一个令人纠结呀. POJ-1077 爆搜可以过,94ms,注意不能用map就是了. #include<iostream> #include<stack> ...
- Go语言反射规则
Go语言反射规则 - The Laws of Reflection 转:http://my.oschina.net/qbit/blog/213720 原文地址:http://blog.golang.o ...