岁末年终,恰逢西方情人节
唯品金融大数据团队,恭祝各位新春快乐&幸福满满~
言归正传,今天我们聊聊数据字典
一、数据字典的概念
数据字典(Data dictionary)是可以供用户访问、记录数据库和应用程序元数据的记录。一般可以分为主动数据字典和被动数据字典。主动数据字典,在对数据库或应用程序结构进行修改时,其内容可以自动更新。被动数据字典,修改时必须手工更新其内容。
二、数据字典的用户
数据字典是对数据的描述,描述数据模型中的数据对象、或项目描述的集合。数据字典有利于开发人员、分析师、算法工程师等其他需要参考的用户,以较快的速度了解数据。
当开发人员用到数据模型的程序时,数据字典可以帮助理解数据项适合结构中的哪个地方、可能包含什么数值、以及数据项表示现实中的什么意思。例如,看到学历代码时,我们看到的是01、02、03……,需要知道具体的意思时,可以从字典中得知,01表示小学,02表示初中,03表示高中……
三、唯品金融数据字典的演进
1.手工时代
手工时代的优点,是简单迅速,不需要系统支持就。问题是,文件的维护,都靠开发人员主动,且工作量较大,文件分散在各系统开发人员手中,查询效率低下,维护一旦不及时,字典的可用性就降低。很多时候要搞清楚真正的字段含义,需要翻看代码,给开发和分析工作的效率造成影响。这是很多早期字典的通病。
在大数据部门,需要整合这些数据,然后产出一份数据字典,往往需要很多的人工工作,按不同的业务主题手工整理,每次新加一张表、或更新表的时候,都需要进行相应维护,ETL工作人员有很多精力花在数据字典的整理上。
在中间层和应用层的建设上,又单独维护一份数据字典。这种数据字典格式,相较于底层数据字典有所进步,主要在之前的基础上,增加一些业务口径、变更记录、负责人等,方便大家进行沟通交流,并对业务口径留底。这版数据字典,大大方便了用户使用和查询。
但从维护上来说,开发人员的工作量依然很大,基本没有自动化,完全靠手工维护,质量高度依赖于维护人员的用心程度和对业务的理解。
2.在线时代
在线数据字典,更好地进行了体系化梳理,也对各业务系统的数据字典做了整合,将文件按格式整理好,一次性导入服务器,方便用户查询。
目前,数据字典已实现大部分工作自动化,增加了人性化的功能,如:表的责任人等。大数据部门汇总各业务部门的数据,责任人不限于大数据团队负责人,同时也增加了业务系统负责人,方便使用者与系统开发人员沟通交流。
对于贴源层的数据字典,直接通过后台ETL自动更新,减少ETL人员的工作量。
仓库层和应用层的数据字典,通过维护字段翻译库标准化建表过程,实现自动翻译,开发人员只需维护对应的业务逻辑和映射关系(后续也在考虑解析脚本进行自动化填充)。这样,从很大程度上减少了开发人员维护数据字典的工作量。
由于在线实时更新,使用者可以随时看到最新的数据字典。为避免部分开发人员忘记维护,我们还设置了相应监控,及时提醒。
对于仓库层的数据字典,我们梳理了重点业务表,进行详细的业务口径整理,并保持不断监控更新。
有了单表信息之后,如果能从字典中看到表的数据来源和血缘关系,对于使用人员也会有很大的帮助。所以我们开发了血缘关系图。
在这些功能的基础上,我们与数据质量平台(DQC)打通,将数据质量的监控结果也显示在字典信息中,如:预警次数、值域分布、均值稳定性等。
总之,数据字典的目标是更好地将公司的数据资产进行整合、融会贯通,也是对业务的全面梳理。数据字典的目标用户将越来越广,除了技术开发人员,还有分析师、算法工程师、风控策略工程师,将来包括业务运营人员,也可以根据业务发展,查询可以使用的数据资产、以帮助进行更好的拓展业务。从数据字典中看到的,不仅是数据字段的解释,更能够从中解读出业务含意。
让数据字典成为每个用户的日常查询的工具,是我们的目标。唯品金融大数据团队,期待您的优化改进建议,我们将继续努力,为业务的发展贡献力量。
领取专属 10元无门槛券
私享最新 技术干货