大道至简的数据治理方法论

大道至简的数据治理方法论——如何处理你手中的各种“脏数据”?

如果你是一位大厨,刚刚眉飞色舞地给客人描绘了如何搭配一道色香味俱佳的大菜,甚至连炒菜的手法都一一交代了,当你备好了各种为这道菜增鲜增色的调料后准备烹饪时,才发现所需的主要原料有问题。

数据分析师的角色犹如一位大厨,原料有问题,大厨肯定烹饪不出色香味俱佳的大菜,数据有问题,数据分析师得出的结论自然也就不可靠,再好的数据分析方法论也只是建立在失真的数据基础上,苦心构建的数据体系当然也被白白浪费了。

过往的项目中,笔者也时常遇到这样的情况,客户用永洪科技的产品做了一些精美专业的数据报告,却因数据不准而影响了报告的使用价值。

前两篇文章笔者分别探讨了面对数据指标如何分析,以及如何构建系统化的数据体系,本文是“数据化运营方法论系列”文章的第三篇,重点探讨的核心话题是——数据治理。

第一篇《大道至简的数据分析方法论》

第二篇《大道至简的数据体系构建方法论》

数据治理是一项基础工作,在很多人眼中是一项苦活儿累活儿,但是越是这样的工作越是不能忽视,基础打扎实了,上层建筑才会更稳固。

下面,笔者先从脏数据的种类及处理方法谈起。

一、脏数据的种类及处理方法

首先,我们来了解一下脏数据的种类,明白我们可能会面对哪些问题。

1 数据缺失:缺一些记录,或者一条记录里缺一些值(空值),或者两者都缺。原因可能有很多种,系统导致的或人为导致的可能性都存在。如果有空值,为了不影响分析的准确性,要么不将空值纳入分析范围,要么进行补值。前者会减少分析的样本量,后者需要根据分析的计算逻辑,选择用平均数、零、或者等比例随机数等来填补。如果是缺一些记录,若业务系统中还有这些记录,则通过系统再次导入,若业务系统也没有这些记录了,只能手工补录或者放弃。

2 数据重复:相同的记录出现多条,这种情况相对好处理,去掉重复记录即可。但是怕就怕不完全重复,比如两条会员记录,其余值都一样,就是住址不一样,这就麻烦了,有时间属性的还能判断以新值为准,没有时间属性的就无从下手了,只能人工判断处理。

3 数据错误:数据没有严格按照规范记录。比如异常值,价格区间明明是100以内,偏偏有价格=200的记录;比如格式错误,日期格式录成了字符串;比如数据不统一,有的记录叫北京,有的叫BJ,有的叫beijing。对于异常值,可以通过区间限定来发现并排除;对于格式错误,需要从系统级别找原因;对于数据不统一,系统无能为力,因为它并不是真正的“错误”,系统并不知道BJ和beijing是同一事物,只能人工干预,做一张清洗规则表,给出匹配关系,第一列是原始值,第二列是清洗值,用规则表去关联原始表,用清洗值做分析,再好一些的通过近似值算法自动发现可能不统一的数据。

4 数据不可用:数据正确,但不可用。比如地址写成“北京海淀中关村”,想分析“区”级别的区域时还要把“海淀”拆出来才能用。这种情况最好从源头解决,即数据治理。事后补救只能通过关键词匹配,且不一定能全部解决。

二、BI对数据的要求

接下来,我们了解一下BI对数据的要求,结合上面脏数据的种类,中间的规避手段就是数据治理。

1 结构化:数据必须是结构化的。这可能是句废话,如果数据是大段的文本,比如微博,那就不能用BI做量化的分析,而是用分词技术做语义的分析,比如常说的舆情分析。语义分析不像BI的量化分析一样百分百计算准确,而是有概率的,人的语言千变万化,人自己都不能保证完全理解到位,系统就更不可能了,只能尽可能提高准确率。

2 规范性:数据足够规范。这么说比较含糊,简单来讲就是解决了上述各类脏数据的问题,把所有脏数据洗成“干净数据”。

3 可关联:如果想将两个维度/指标做关联分析,这两个维度/指标必须能关联上,要么在同一张表里,要么在两张有可关联字段的表里。

三、数据治理的原则

前面讲了脏数据的处理方法,但那些都是治标不治本的应对方法,且需要长期耗费大量时间和人力来做这种痛苦的工作。要想从根本上改善脏数据的问题,还是需要做好数据治理的规范工作。

简单来讲,数据治理就是要约束输入,规范输出。

1 约束输入:你永远想不到用户会输入哪些值,所以别给用户太多发挥的空间,做好约束工作。该用户填写的,系统必须设置为“必填”;值有固定选项的,一定用列表让用户选,别再手工输入;系统在录入提交时就做好检查,格式不对,值不在正常范围内,直接报错的情况必须让用户重新输入;设计录入表单时尽量原子化字段,比如上面说的地址,设计时就分成国家、省、市、区、详细地址等多个字段,避免事后拆分;录入数据保存的数据表也尽量统一,不要产生有大量相同数据的表,造成数据重复隐患。

2 规范输出:老板看不同人做的报表,同一个“收益率”指标,每张报表的值都不一样,老板的内心一定是崩溃的,不知该骂谁,只能全骂。排除计算错误的情况,一般都是统计口径不一致造成的。所以要统一语义,做一个公司级别的语义字典(不是数据库的数据字典)。所有给人看的报告上的指标名称,都要在语义字典中备案,语义字典明确定义其统计口径和含义。不同统计口径的指标必须用不同的名词。如果发现一个词已经在语义字典中有了,就必须走流程申请注册一个新词到语义字典。

四、数据治理的落地

脏数据的处理需要ETL工具,语义字典不一定要借助于系统。事实上,由于这类系统过于复杂,国内鲜见实施成功的案例,用Excel加制度就能达到很好的效果。

关于落地推广策略,说来也简单,老大拍板说必须实行,再用优先话语权吸引一个部门试点,再横向扩展。哪个部门先落地,哪个部门就能按最符合自己习惯的用词来命名指标,相当于占坑。后面的部门都要遵从前人的标准,重名但意义不同的指标需要另外找词儿命名。这样就不怕没人积极主动。

以上,就是精炼版的数据治理方法论。大家都知道这是个苦活,但是笔者还要提醒的是,越晚动手越苦。有了经验以后,做新业务系统设计时,大家就可以充分考虑数据治理的规范了。

原文地址:https://www.cnblogs.com/zwt20120701/p/11408834.html

时间: 2024-08-30 09:29:28

大道至简的数据治理方法论的相关文章

大道至简的数据体系构建方法论

大道至简的数据体系构建方法论:两步就让你打造出数据化运营的核心支柱! 很多企业已经意识到,一个系统化的数据体系将是数据化运营的核心支柱.那么,企业该如何清晰地打造自己的数据体系呢?作者将根据多年经验总结用简朴的语言告诉读者一套大道至简的方法论. 本文是“数据化运营方法论系列”文章的第二篇.第一篇<大道至简的数据分析方法论>之后的讲的是“不知道该怎么分析”的问题,本文讲的是“不知道该分析什么”的问题.第一篇文章更微观,站在个人分析师角度,本文更宏观,站在公司层面进行讲解. 与“不知道该怎么分析”

大道至简——第六章

接着阅读大道至简,就从题目来说作者或许又将向我们讲述自己的真实经历,这些看似平常但对于我们这些菜鸟来说应该是非常珍贵的资料,这将引领我们在软件工程这一途上认知得更多,积累更多的经验,也就意味着在今后的职业生涯中更加的有竞争力,这些似乎都是我们应该感谢作者的强大的.这也是我为什么一直感到作者写的这本书对于我们很有作用的原因之一. 第六章,章节是从编程到工程,这就是一个过程,而工程都是和过程的共生的,这样来看便没有任何的违和.第一个小节作者说语言只是工具,很难想象就是这样的作者在几年前还是在熟悉了高

大道至简第六章观后感

编程,简简单单两个字,却也是一个程序开发人员一辈子的事.甚至于一辈子都无法参透的事.而对于我这种刚刚开始接触的人来说,更是一知半解,甚至完全不懂.作为一个软件工程的学生,最重要的莫过于编程了吧.然而我始终在想,编程到底是什么?而我,应当如何去编程?这是一个菜鸟始终的迷惑.对于编程,心里似乎总有一种迷惑,头脑总是不清不楚.以致于接触一个编程题目,始终不知如何下手. 阅读大道至简,每次都有体会,都能接触到不一样的新鲜概念,可是我偶尔问问自己,真的能理解大道至简的真正含义吗? 不可否认的是,我真的从来

大道至简:软件实践者的思想读后感

<大道至简>提出了审视软件工程的全新视角和软件工程的体系模型,是第一本讨论软件工程思想本源的书籍,也是第一本从工程实践出发溯源而论的佳作,虽然没有看到纸质版,但也了解了不少知识.        通读下来后,能够留在我脑海中的关键字只是工具.boss是"经营者".软件工程中作者的一些感悟.        先说说语言只是工具吧,作者提到为那些争论语言孰优孰劣的开发人员感到可悲.然而,能够得出这样一个结论之前的人,恰恰之前正在经历这样一个阶段.而我认为:作为JAVA开发人员来讲,

读《大道至简》有感

编程序从一开始到现在给我是“斩不断,理还乱”的感觉,有时候真的对着一个程序一点头绪都没有,不知该如何下手. 在两千年前的寓言故事<愚公移山>中,已在无形中成就了一名工程师:愚公.他在移山之前都有详细的计划,有目标,都有一个结构,还看透山不能增而子子孙孙无穷匮也的道理,总有一天在会把它移尽.阅读大道至简之前,我在语文课上读的<愚公移山>从来没想到过这个编程序问题,受语文老师的熏陶,我在高中毕业之前特喜欢阅读文言文.虽然一开始并不理解意思,更没有想过我会学计算机,想到愚公是个出色的工程

大道至简伪代码

import.java.大道至简*: import.java.愚公移山*: public class YuGongYiShan{ public static void main(String args []) { begin if(愚公在世) then {  for(山未平) { "扣石垦壤,箕畚运于渤海之尾" (愚公)率子孙荷担者三夫" 并获得了一名力量较弱,但满富工作激情的外协: "邻人京城氏之孀妻,有遗男,始龀,跳往助之": } } else the

咳咳,软工新手读《大道至简》读后感

<大道至简>读后感 本书是周爱民先生把这本<大道至简>表达为"阐述软件工程的思想核心",书中又分为八个章节,接下来我想把我对每个章节的认识分开来介绍. 在第一章节中,周爱民先生将编程归类为公式"程序等于算法加结构",同时周爱民先生也将编程认为是一件简单的劳动工作.一个程序无论多么复杂,都可以将其拆分为无数多个不同的结构,然后用算法把它们编织出来.这就想文中的例子,把愚公移山的工程拆分成多个顺序.分支和循环.文中的观点就是"算法是对一

大道至简第二章读后感

 读了大道至简第一章的老愚公的故事,我们知道了勤劳的人总会能够完成所有的困难,最终完成自己的任务,完成自己的目标,愚公移山,看似不能完成,但是与共凭借着子又生孙,孙又生子,活生生的完成了这一个不可能完成的任务,但是在旁人眼里看来,又有一些古板,耗时,毕竟动用了不知道多少代子孙的时间,反而观之第二章的李冰,修建都江堰,也需要“移山”,而且山上又全是石头,要是按照愚公的办法,那得修到什么时候才能完工?但是他发现了最终的方法,用火烧石头,然后浇水,石头就会变得酥脆容易挖走,这就是一种智慧. 从某种情况

大道至简第六章

今天看了看大道至简第六章<从编程到工程>.文章以<列子·说符>的“得其精而忘其粗,在其内而忘其外:见其所见,不见其所不见,视其所视,而遗其所不视.”为题记.第一节讲了“语言只是工具”,作者讲述了他曾经对一些编程语言的看法.他曾经也热衷于讨论语言的优劣,但是他现在不这样了,他已经不再专注于语言, 正如他在第一章中写到的一样:成天讨论这门语言好,或者那门语言坏的人,甚至是可悲的.确实,程序的好坏不在于语言,在于算法.第二节 说点什么呢,今天看了看大道至简第六章<从编程到工程>