利用 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 软件做元数据管理的更多相关文章

  1. VPS服务器利用WINSCP软件进行SFTP管理服务器文件

    虽然我使用VPS时间也不是很久,但是我善于进行统计和分析,从我在的一些VPS交流QQ群中,可以看到基本上使用搬瓦工VPS的站长群中新手较多,甚至很多人都搞不明白VPS与V-P-N的区别都直接选择VPS ...

  2. 【收藏】关于元数据(Metadata)和元数据管理,这是我的见过最全的解读!

    本文主要从元数据的定义.作用.元数据管理现状.管理标准和元数据管理功能等方面讲述了我对元数据(Metadata)和元数据管理的认知及理解. 元数据管理 一.元数据的定义 按照传统的定义,元数据(Met ...

  3. 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(下篇)

    续篇—— 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(上篇) 上篇文章写了如何构建一个支持IKEv2的VPN,本篇记录的是如 ...

  4. 使用Atlas进行元数据管理之容错和高可用

    1. 介绍 Apache Atlas使用各种系统并与之交互,为数据管理员提供元数据管理和数据血缘信息.通过适当地选择和配置这些依赖关系,可以使用Atlas实现高度的服务可用性.本文档介绍了Atlas中 ...

  5. Surfer 软件做等值线图

    使用surfer软件做等值线图 Surfer软件美国Golden Software公司编制的一款以画三维图(等高线,image map,3d surface)的软件. Surfer具有的强大插值功能和 ...

  6. 规范化的软件项目演进管理--从 Github 使用说起

    规范化的软件项目演进管理 从 Github 使用说起 1   前言 首先,本文的层次定位是:很基本很基础的 Github 工具的入门级应用,写给入门级的用户看的. 基本上工作过几年的人,下面描述的这些 ...

  7. Laravel5做权限管理

    关于权限管理的思考 最近用laravel设计后台,后台需要有个权限管理.权限管理实质上分为两个部分,首先是认证,然后是权限.认证部分非常好做,就是管理员登录,记录session.这个laravel中也 ...

  8. Oracle Metadata Management (OMM)元数据管理 12.2.1发布

    元数据管理元数据管理是解决大量关键业务和技术挑战的基础,这些挑战包括元数据实体有多少,上游数据变化的影响,在浏览器中提供友好的分析展现界面,或提供企业范围内的元数据现状分析和改进视图.OMM是一款基于 ...

  9. 从 SDWebImage 谈如何为开源软件做贡献

    来源:伯乐在线 - 酷酷的哀殿 链接:http://ios.jobbole.com/89483/ 点击 → 申请加入伯乐在线专栏作者 从 SDWebImage 谈如何为开源软件做贡献 相识 – 知我者 ...

随机推荐

  1. Android如何着色字符串的特定部分

    文章选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术.本文探讨Android如何着色字符串的特定部分. ...

  2. Mac上连接nifi

      1.  open terminal 2.  ssh root@nifi.webus.cn 3. logs cd /var/lib/nifi/logs   4. view log tail -100 ...

  3. luogu3233 世界树 (虚树)

    反正肯定要建虚树,考虑建完之后怎么做 先随便dp一下算出来距离某点最近的询问点mi[x](因为有的虚树上的点它不是询问点嘛) 那我们对于某条链x到fa[x]上的非虚树上的点(包括他们的非虚树上的孩子) ...

  4. 【php】php分隔字符串为数组

    工作中会经常分隔字符串为数组,我们可以用php内置函数str_split(),可是有时候字符串中包含中文,切割后会乱码,比如 print_r(str_split('dw氛围fesf',3)); 输出 ...

  5. 洛谷P1020 导弹拦截

    n²谁都会打,不说了. 这里讨论一下nlogn算法(单调不减): 首先开始考虑单调性,我习惯性的以为是单调队列/栈优化的那个套路,想要找到一个跟下标有关的单调性却发现没有. 例如:我想过当下标增加时f ...

  6. 【CF1141F1】Same Sum Blocks

    题目大意:给定一个 N 个值组成的序列,求序列中区间和相同的不相交区间段数量的最大值. 题解:设 \(dp[i][j]\) 表示到区间 [i,j] 时,与区间 [i,j] 的区间和相同的不相交区间数量 ...

  7. 第二篇-Django建立数据库各表之间的联系(中)

    上篇中已经建立了两个table,Book和Publish.这篇介绍如何用python增删改查数据库中的数据. 在views.py中创建一个index函数 from django.shortcuts i ...

  8. PMP证书的获取,不知道10大注意事项会吃亏

    作为一个已经考过PMP的小项目经理我来说,近来接到不少咨询PMP的,有咨询考试事宜的,也有咨询后续的换审和PDU的,今天我这边就说说PMP项目管理证书要获取的一些注意事项,不注意的话可是会吃大亏的. ...

  9. C++基础知识-Day8

    2.类的作用域运算符 shadow 在我们之前讲的内容中,我们会发现一种情况,就是在我们在不同类中的打印函数我们都是尽量让其名字不同,那么为什么会有这种情况呢?首先我们来看一个函数 void func ...

  10. HDU3974 Assign the task

    Assign the task Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...