利用 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 谈如何为开源软件做贡献 相识 – 知我者 ...
随机推荐
- 【题解】 bzoj2982: combination (Lucas定理)
题面戳我 Solution 板子题 Code //It is coded by ning_mew on 7.25 #include<bits/stdc++.h> #define LL lo ...
- css border制作小三角形状及气泡框(兼容IE6)
先看下CSS盒模型 一个盒子包括: margin+border+padding+content 上下左右边框交界处出呈现平滑的斜线. 利用这个特点, 通过设置不同的上下左右边框宽度或者颜色可以得到小三 ...
- Tarjan求有向图强连通详解
Tarjan求有向图强连通详解 注*该文章为转发,原文出处已经不得而知 :first-child { margin-top: 0; } blockquote > :last-child { ma ...
- POJ - 3984迷宫问题(最短路径输出)
题目链接:http://poj.org/problem?id=3984 题目: 迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submiss ...
- CodeForces - 589A(字符串处理)
题目链接:http://codeforces.com/problemset/problem/589/A 题目大意:给定n个邮件地址,任何电子邮件地址都将显示为“login @ domain”,其中: ...
- 什么是Zookeeper?
https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665514106&idx=1&sn=e54aae8cf68f5a ...
- vetur插件提示 'v-for' directives require 'v-bind:key' directives.错误的解决办法
在用vscode编写vue代码时,因为安装的有vetur插件,所以当代码中有v-for语法时,会提示 [vue-language-server] 'v-for' directives require ...
- av_seek_frame() 定位为什么不准呢?
初次学习和使用ffmpeg,电脑系统有点老,没办法使用最新版的ffmpeg 3.3,只能从别处下载了一个2.8版的用用,官网提供的历史版本都没有我电脑可用的版本. 花了两天时间学习并写了一个简单的处理 ...
- django orm 重点大全
1.最简单的跨表,查询外键表中符合主表条件的记录列表 #用户类型表 class User_typ(models.Model): name=models.CharField(max_length=32) ...
- Java 数组+循环升级篇
数组是一个变量,存储相同数据类型的一组数据(就是能存储很多数值的数据类型) 如果说声明一个变量就是在内存空间划出一块合适的空间,那么声明一个数组就是在内存空间划出一串连续的空间. 数组的基本要求 标识 ...