基于数据血缘的数据治理方案探讨
### 数据治理背景
越来越多的企业建立起自己的数据仓库和分析平台。
随着数据的积累以及加工流程越来越复杂,企业对数据的管理变得越来越无力,容易出现数据孤岛、数据指标混乱等情况。对数据进行治理呼声越来越紧迫。
然而,数据治理是一个新课题,目前尚无明确的概念定义和方向。
这里,我们提出一套自己的数据治理方案,希望能引起一些共鸣和讨论。
### 数据治理步骤:先理后治
### 数据治理交付内容:
1、字段级数据血缘系统
2、表级数据资产地图
3、数据质量监控及预警
4、减少数据指标冗余度
5、代码质量检查改造机制
### 数据治理的第一个步骤:理
想要治理数据,我们首先得把数据的加工流程理清楚。
打个比方:
将数据的加工流程,比作一条条河流,数据就是河流中的水。
当“水”的质量变差时,我们需要找到污染源。
如何找到污染源?
就得梳理出河流的各个支流的分布图,才能沿着相关的支流查找出污染源。
目前,绝大部分企业的数据,都是以结构化的方式进行存储和加工。
用到的数据库产品,主要是关系型数据库(比如:MySQL、Oracle、Greenplum)和大数据平台的Hive等。
用到的ETL产品,有Datastage、Kettle等。
这些数据加工方式,都可以直接或间接的转化成SQL代码。
因此,要理清楚数据的加工流程,就必须对SQL代码进行梳理,
然后生成字段级别的数据血缘关系。
这就是我们要交付的第一个产品:基于SQL图形化数据血缘系统。
有了字段级别的数据血缘系统之后,我们可以进一步梳理出数据资产。
这里需要对数据资产下一个定义。
所谓数据资产,是那些需要长期保持和积累的数据。
对应的数据库中,数据资产对象,就是那些“正式”表。
因此,我们可以通过剔除数据血缘系统中的中间临时表,获得数据资产表。
经过上面的步骤,我们可以交付第二个产品:基于表的层级化数据资产地图。
有了数据资产地图,我们可以:
1、一目了然看清楚一家企业的数据资产数量;
2、直观的看清楚数据资产的层级和依赖关系;
3、轻松的对数据资产进行责任人或部门的划分。
小结:
当建立起“字段级的数据血缘系统”和“表级的数据资产地图”。我们基本上就实现了数据治理中“理”的部分。
### 数据治理的第二个步骤:治
在“理”清楚数据加工的流程之后,接下来便对数据进行“治”。
目前,在“治”的方面,业界并没有统一的方案。
应该根据各企业的实际情况进行。
这里,我们提出“治”的一些思路,可以分为“被动治理”和“主动治理”两部分。
# 被动治理
就是在用户端发现问题,然后通过血缘系统,快速的进行血缘追溯,定位问题,然后解决。
目前数据问题的排查,基本都需要IT人员以查看分析SQL代码的方式进行逻辑追溯,
这种方式十分耗时,而且容易遗漏,尤其是对代码不熟悉的新人。
有了数据血缘系统的辅助之后,任何用户都可以对任意字段的加工流程进行快速的追溯,
极大的提高了数据问题定位的效率。
# 主动治理
即便数据问题的定位和解决效率再高,也不如让问题不要发生。
为了预防问题的出现,就需要采取一些主动治理的手段。
主动治理的方式和目的,就相对多种多样了。
这里我们可以提几个思路:
1、数据质量监控及预警
提高数据质量应该是数据治理的最重要的目的。
数据质量的指标考量角度主要有两种:技术和业务。
从技术角度,可以分析数据的完整性、唯一性和格式等特征。
从业务角度,可以分析具体指标的合理性等特征。
若要对所有数据资产进行质量监控,无疑是极其消耗资源的,也没有必要。
为了有针对性,只需对那些较为重要的表进行监控即可。
什么表才更为重要?
应该是上游或下游依赖较多的“枢纽”表。
用河流来比喻的话,就是那些有着多条支流会合或发散交叉点。
在这些“交叉点”上进行数据监控,既可事半功倍。
利用数据资产地图,我们可以很容易的找到这些“枢纽表”,对其建立数据质量监控机制。
同时,还可以建立预警机制。
当某一节点的数据出现问题时,利用数据资产地图,
快速找到其下游依赖数据节点,通知其数据负责人或部门,
让其采取相应的措施,避免扩大影响。
通过预警机制,便可有效消除各数据负责人或部门的信息不对称性。
2、减少数据指标冗余度
那些拥有较大规模数据资产的企业,都会存在数据指标冗余的情况:
(1)同一个名称的指标会出现在不同的表中,且值不一样
(2)同一个指标含义和值相同,却有着不同的名称
似乎没有人能说清楚,所有这些相似指标的共性和区别。
数据指标冗余,就像人得了肥胖症一样,让数据显得笨重。
造成数据指标冗余的原因可能多种多样,
不过最大的原因,
应该是企业的各个数据开发小组各自为战,
开发前缺乏统一规划造成的。
建立了字段级的数据血缘系统之后,
专门人员即可分析出现有相似指标的共性和区别,
进而对数据加工流程进行优化设计,
指导各层级数据开发小组进行开发或改造,
逐步降低数据指标的冗余度。
3、代码质量检查改造机制
理论上,代码质量检查并不部署于数据治理的内容。
但它和数据治理有一定的关系,因为代码直接体现了数据的加工逻辑。
不同的数据开发人员,水平参差不齐,不能保证每一个开发人员,都能提供高质量的代码。
因此有检查代码质量的必要。
而且,由于历史原因,企业需要对原有的大量老代码进行改造重写。
如何高效的进行代码改造和质量检查?
这里需要建立起另外一套产品:SQL代码结构图。
它可以演变成另外一个版本的基于SQL图形化数据血缘系统。
不同的是,SQL代码结构图重点展示每一段独立SQL代码的结构图,比如子查询的层级关系,表与表之间的关联关系等。
通过直观的查看SQL代码结构图,更容易判断其是否简洁易懂,更容易确定代码改造的方案。
总结:
数据治理应该是一项复杂的、系统性的、长期的工程,没有一劳永逸的方法。
目前企业的数据治理,很多只是停留在各种数据治理标准的定义上,欠缺高效具体的落地方案。
这里,我们提出一套具体的数据治理方案。
虽可能有不完美之处,但贵在实用,可以落地。
此方案落地之后,可以根据具体的要求,逐步完善。
2021-03-30 23:50:34 | 张良 | 技术 & 提问 | 阅读281次