元数据质量梳理
2016-04-11 20:59
218 查看
任一特定领域开发,如果没有梳理好元数据,则随着一个个项目,会出现各种非标准的表达,最后导致开发成本越来越高,越容易出错,并且本身数据模型的沉淀也是一种技术资产。原来老东家有专门的元数据平台,可惜没有和开发过程联动导致实施效果很差,后面原来所在小部门的技术leader创建了辅助开发工具,实现一部分的元数据管理和联动,但是由于维护成本有点高,各产品线也没有完全投入。
从理性角度看 , 设计 ---》元数据定义---》积累 ----》联动辅助开发---》测试---》总结梳理再次落地元数据 ---》设计 ...是一个良性的循环。从实施步骤看,一般也会先从数据模型这一层开始梳理,然后后应用层等,涉及的思路基本是词频统计,语法分析等(后面可以通过antlr进行语法或者元数据分析检查 纠正不合理设计)
一、数据模型层
1) 根据使用频度等特点,确定技术层面基础数据类型,包括日期、序列号等;业务数据,包括业务类型,金额,价格,等;
2) 基于上述数据类型,确定基本常用的元数据定义,包括number,varchar,date等常用的定义
3) 确认基本的元数据选型和基本数据类型
4) 定义扩展和匹配方式(使用范围 和 归类范围)
下面记录了一开始从获取数据库相关模型数据的基本语句
oracle
---获取表和字段集合,后面进行统计分析词频
select a.table_name, c.comments,a.column_name,b.comments data_type,data_length,data_precision,data_scale
from user_tab_columns a,user_col_comments b, user_tab_comments c
where a.table_name = b.table_name
and a.column_name = b.column_name
and a.table_name = c.table_name
mysql
--获取表和字段信息
SELECT table_name ,table_comment,table_rows,data_length,create_time FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA= 'exchangerate' order by CREATE_time
从理性角度看 , 设计 ---》元数据定义---》积累 ----》联动辅助开发---》测试---》总结梳理再次落地元数据 ---》设计 ...是一个良性的循环。从实施步骤看,一般也会先从数据模型这一层开始梳理,然后后应用层等,涉及的思路基本是词频统计,语法分析等(后面可以通过antlr进行语法或者元数据分析检查 纠正不合理设计)
一、数据模型层
1) 根据使用频度等特点,确定技术层面基础数据类型,包括日期、序列号等;业务数据,包括业务类型,金额,价格,等;
2) 基于上述数据类型,确定基本常用的元数据定义,包括number,varchar,date等常用的定义
3) 确认基本的元数据选型和基本数据类型
4) 定义扩展和匹配方式(使用范围 和 归类范围)
下面记录了一开始从获取数据库相关模型数据的基本语句
oracle
---获取表和字段集合,后面进行统计分析词频
select a.table_name, c.comments,a.column_name,b.comments data_type,data_length,data_precision,data_scale
from user_tab_columns a,user_col_comments b, user_tab_comments c
where a.table_name = b.table_name
and a.column_name = b.column_name
and a.table_name = c.table_name
mysql
--获取表和字段信息
SELECT table_name ,table_comment,table_rows,data_length,create_time FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA= 'exchangerate' order by CREATE_time
相关文章推荐
- [转]-关于职业规划最好最全面的一篇文章
- C++作用域
- 关于定位的一些疑问
- hdu 3555 Bomb(数位dp初学)
- python浓缩(7)映射和集合类型
- 使用HttpClient连接池进行https单双向验证
- 放大器软件设计
- SQL注入式攻击
- SWUST OJ 1768 n皇后问题
- Bzoj3239:Discrete Logging:BSGS模板题
- 数学问题(1):杨辉三角、水仙花数、打印斐波那契数列
- 算法_动态规划_租用游艇问题
- windows多线程系列002_利用互斥对象实现线程同步
- bzoj3611: [Heoi2014]大工程
- 搭建轻量级git server和git web UI
- spring@value注入spel表达式
- 父类与子类的关系
- JAVA大作业 - 五道三星题
- python学习9-语句
- 模拟——Educational Codeforces Round 11——B