写点什么

数据治理平台化的通用框架设计

作者:Skipper
  • 2022 年 1 月 27 日
  • 本文字数:2443 字

    阅读完需:约 8 分钟

数据治理平台化的通用框架设计

前言

数据治理在不同的岗位,不同职业的人看来,是存在较大的差别的。从广义上来讲,数据治理包络万象,几乎是约等于整个数据中台,比如包含了数据治理流程,数据治理组织,数据治理文化等。狭义上讲,数据治理是关注一定程度上抽象于业务的数据层面的问题,比如数据业务库中的一条男性数据,其性别字段为女这类错误问题。


本文主要想从数据治理的狭义角度出发,对常见的数据问题类型进行探讨,并就如何针对这些问题进行产品化的方案设计思路。

数据的几类问题

数据完整性

完整性关注于数据信息缺失的程度。数据缺失的情况可以分为数据信息记录缺失和字段信息记录缺失。


数据信息记录缺失,这种主要通过相关参考记录进行比对得出,比如业务库同步到数仓当中,前后的数据条数不一致,就造成了数据记录的缺失问题,可能是由于同步过程中的网络问题,或者脚本问题。


字段信息记录缺失,比如构成一条漏斗链路的加购物车操作行为,如果用户触发的行为数据缺失,将无法对分析加购对最终下单影响的分析。字段缺失主要通过字段空值率来进行衡量。空值率越小说明字段信息越完善,空值率越大说明字段信息缺失的越多。一般作为主键,非空等字段的空值率应该为 0%。

数据准确性

准确性主要从数据,以及数据所描述的客观事物的真实情况之间的接近程度。一般主要分为两类问题:


一类是数据异常但不一定是错误的,比如统计某个地区人员收入,发现一些人的收入奇高,那可能是用于投资的钱收益大增。


一类是数据错误,比如业务员在上报系统上填写客户信息时,手一抖输错了信息,造成了数据库里存在的信息与客观事实不一样。


数据准确性的检测较为困难,一般情况下很难解决。在某些特定的情况下,例如性别,年龄,出生日期,籍贯等信息可以通过校验身份证号来检测,前提是确保身份证号码是正确的。


注:准确性问题往往是由业务决定的,也就是分析师或者数据产品说的口径,所以一般判定准确性的规则交由业务来进行自定义。

数据时效(及时)性

时效性是指信息仅在一定时间段内对决策具有价值的属性。数据从生成到录入数据库存在一定的时间间隔,若该间隔较久,就可能导致分析得出的结论失去了借鉴意义。例如当天的交易数据生成后没有及时的录入数据库或者源库与目的库之间的同步延迟,则会导致统计结果和真实结果存在一定误差。


对于一般的数据,可以通过比对期日期字段与当前时间的间隔,来评估该条记录是否还存在使用价值。

数据的及时性主要与数据的同步和处理过程的效率相关。

数据一致(唯一)性

一致性主要从同一个字段在不同的数据表之间,不同的数据库之间,其值所描述的是否一致。比如同样一学生的生日在不同的数据库中记录的值不一致,比如可能是学生录入错误导致一致性问题。

数据有效性

与准确性通过其他信息来判断数据不一样,有效性主要描述数据本身的问题。描述的是数据遵循预定的语法规则的程度,是否符合其定义,比如数据的类型、格式、取值范围等。


数据有效性问题的发现依赖于用户设定的有效性规则。有效性规则包括类型有效、格式有效和取值有效等。


类型有效检测字段数据的类型是否符合其定义,例如可以通过求和来判断是否是数值型,通过时间操作来判断是否是时间类型。


格式有效性检测可以通过正则表达式来判断数据是否与其定义相符。


取值有效检测则通过计算最大最小值来判断数据是否在有效的取值范围之内。

数据重复性

重复性主要就一定范围内(同一个库,同一个表),同一个对象实体存在多条记录的问题,产生问题的原因有多种,比如用户信息录入,前端未经过校验,存在了多次录入的情况。

如何抽象成通用的产品设计


以上讨论的主要是相对抽象于业务的数据问题,那么如何将这些对这些抽象问题的处理,以产品化的方式进行处理呢?


我们先来看下,一般情况下对数据的处理时怎么实现的。比如数据人员,从业务库中,或者从爬虫工程师那得到一批数据,然后对数据进行一波描述性分析,比如整形数据均值,数据分布情况等,字符串型数据如每个字符串出现的次数等。然后编写 SQL 来完成发现的数据类问题。


那 SQL 中针对不同类型,不同字段的数据,有没有相对通用的处理呢,以笔者以往做分析师的经理来看,分析师一般会把常见的 SQL 封装成函数,以供下次处理相似问题时的处理模板。


有了抽象的数据问题定义,有了相对通用的问题处理,那么就有了工具化或者产品化的可能。


业界通用的做法是分为以下几步:

  1. 将数据问题的发现进行封装成巡检规则(巡检规则可以由平台进行开发,或者交由用户进行定义)

  2. 将问题的治理关联到具体的巡检规则

  3. 将巡检规则与检查对象进行关联封装成任务(技术语言称作业)

  4. 配置任务的调度配置,如 corn 表达式

  5. 以项目的方式对任务进行自动或者手动化管理


以上也是数据清洗,数据质量管理平台等的核心设计逻辑。这个设计逻辑主要思路就是通过巡检规则发现数据存在的问题,可以以表为单位出具数据质量报告,如字段的空值率检查,也可以直接针对存在问题的数据对象进行响应的处理。


从产品模块上来讲,通过任务的运行,发现的问题支持告警,也即通知到相关的人员。还有一个是反馈,相关人员收到反馈之后,需要判断是不是问题。如果不是,则就忽略这个告警;如果是就处理这个告警。这样就形成问题发现,告警通知,响应处理的数据治理闭环。


此处还有一个关键问题,数据的治理可能没有像销售拿下一个大单那样,很明显的看出其对公司的价值。数据处理也需要一些数据来反映数据治理本身的内容,或者对于结果的数据化衡量。比如基于库维度或者基于时间维度来看,巡检了多少条数据,有治理了多少条数据。数据质量情况与之前提升了多少等等。这些数据也客观上反映了数据治理的成果,所以可量化,可衡量也是数据治理工作中的重要一项。


数据治理是治理并不是一蹴而就,也不是一劳永逸,也不是一个工具或者平台就能解决所有问题,这里相当多可能还需要不断的迭代和完善,甚至也有需要人工写脚本的方式处理。本文从狭义的数据治理,讨论了一版数据治理工具的设计思路和框架,欢迎大家一起讨论。


相关参考:

数据仓库系列之数据质量管理

数据质量评估体系主要参考以下5个指标

数据质量监控

腾讯云-数据质量监控


用户头像

Skipper

关注

还未添加个人签名 2018.10.20 加入

数字化与数字孪生领域资深数据产品经理 前千万级日活App运营增长团队负责人兼数据分析师 前4亿全球用户扫描类产品客户端架构师 专注于数字化 / 数据科学/NLP 方向

评论

发布
暂无评论
数据治理平台化的通用框架设计