1. 首页
  2. 科技部落

元数据管理系统设计漫谈

前言

随着技术的发展和时间的推移,企业数据将会越来越多。怎么整理这些数据,如何让这些数据流起来,实现数据的价值,将会是未来困扰企业最大的问题。

一、大数据,微接口,轻应用

对于未来的数据处理和企业应用,我认为可以简单的概括为”大数据,微接口,轻应用”。图示如下:

元数据管理系统设计漫谈

这里的所说大数据不再是当下意义上狭义的大数据,而是指包含了全部企业数据的大数据,无论是传统的关系型数据库,key-value缓存数据库,还是NoSQL和NewSQL数据库。通过企业的元数据系统分层分类整合所有的数据,实现真正意义上的大数据。

微接口主要是提供各种数据服务,计算和应用的接口,以微服务为方向,保证接口的高聚合和低耦合。企业的数据来源,比如爬虫,第三方数据,App应用,网站,都通过各种接口进行数据的存储和访问。

轻应用则是为了应对用户和业务复杂多变的需求,这一层的目标是快速迭代,快速部署,快速响应用户需求。

有了这三点,开发一个应用就非常简单了。基本的流程就是,数据在哪里?通过哪个接口?UI怎么实现?看到这里,大家是不是想起什么来了?“数据中台”应该是我们头脑里面闪出的第一个念头,目前数据中台并没有一个统一标准,在这里,我以自己的方式来理解数据中台并对数据中台实际的落地方案进行一些思考。

二、元数据管理

对于接口和应用,这里我不做过多的阐述,重点从数据的角度来谈谈对元数据管理系统和数据中台建设的一些思考。

为什么把元数据管理放在第一位?我认为元数据管理是数据中台的第一步,首先我们必须要知道有哪些数据,存放在哪里,怎么去访问。目前很多企业由于陈年旧账和人员变动,各种数据乱存乱放,很多数据库都成了僵尸库,但是没有人敢动这些库,不敢下线更不敢删除。《孙子·谋攻篇》曰过的:“知彼知己者,百战不殆;不知彼而知己,一胜一负;不知彼,不知己,每战必殆。”

怎么去设计一个元数据管理系统对企业数据资产进行盘点并为数据中台提供基础的资料?个人以为,元数据管理系统应该包括元数据和数据之间的血缘关系,我认为有三点很重要。第一:数据库分层分类;第二:KISS,即保持简单的原则;第三:病毒式传播原则。

数据库分层分类

首先实现数据库分层分类,整合和完善公司现有的存储架构。目前典型的企业数据库一般包括传统的关系型数据库,如Oracle,SQLServer,MySQL;Key-value缓存型数据库如Redis;列族数据库如HBase,Cassandra;全文检索库如ElasticSearch等。先了解有哪些库,然后归类,最后形成企业数据整体的存储模型如下,也就是图一大数据的一部分。

元数据管理系统设计漫谈

这一步主要是针对公司目前的数据库和现存的技术栈进行盘点,要考虑的是是否有必要简化目前的技术栈,比如用MySQL替代SQLServer和Oracle,简化技术栈带来的好处就是减少开发和运维的学习压力,同时也能减少企业的成本,毕竟Oracle的license不便宜。还要考虑的是这些技术栈是否可以满足未来的需要,是否需要扩展当前技术栈,并不能一味的做减法。当然,除了数据库还有图片,视频,声音的文件,这些可以统一存放路径,登记录入数据库来进行归档整理。

元数据管理系统设计:KISS

保持简单的原则,实现公司现有数据资产的盘点。任何一个企业现有的数据都是非常复杂的,不是一朝一夕可以整理完毕的。而且,元数据系统的上线并不能很快带来业务价值,如果要求员工一下子整理出全部的数据和数据之间的血缘关系是不现实的。最初,只是要盘点有多少服务器,每个服务器有多少库,每个库有多少表,到这一步就足够了。这一步其实也可以通过部署Agent程序,自动获取相关的元数据信息,并推送到元数据库,统一存储,减少手工作业量和后期的维护量,毕竟数据库元数据变动也是常有的事情。要充分考虑到维护成本和人的惰性,如果一开始就涉及到字段级别的依赖,工作量之大无法评估,最终可能带来的就是项目的无法正常推进。

病毒式传播

用病毒式传播的方式,完成数据血缘关系的整理。这一步,是在DBA盘点出所有数据资产(服务器,库,表)的情况下,由业务和开发人员实现基本的数据血缘整理。以应用为源头,一步步完善整个数据依赖,一直到原始数据。如下图所示:

元数据管理系统设计漫谈

三、从元数据管理到数据中台

关于元数据系统的设计先谈到这里,有了这些之后,优化就有了依据和方向。下面我举例说明一下。

同样以图三为例,先看红线这条依赖链,用户注册的数据落入MySQL,并同步到缓存数据库Redis,供应用A直接调用,这是一个典型的很健康的依赖关系。

再看蓝色这条依赖链,第三方数据落入HBase01,经过处理后落入SqlServer01, 之后又经过一次处理数据最终落入MySql01。这时候我们就要考虑,是否可以合并Mysql01和SqlServer01, 从原始数据经过唯一一次处理之后,直接供应用A调用,毕竟数据库的读写操作耗时而且耗费资源。

再有一个优化的方向就是对数据库进行高聚合,低耦合的操作,比如把企业的用户数据,业务数据,用户数据都放在独立的库里面。

通过元数据系统能完整盘点现有的数据资产,也能直观的看到数据流向是否健康等关键问题。快速试错,不断优化,最终满足数据中台对数据的存储和访问要求。

本文来自拍码场,经授权后发布,本文观点不代表信也智慧金融研究院立场,转载请联系原作者。