一位同事正在作数据探索,我问,"数据探索有什么方法?",答曰,"没有固定的方法,就是看看数据,作作统计"。
不是没有方法,只是没有形成模式。如果一位即将进行此项工作的人,面对一堆数据,他该怎么办?我想第一个问题是"目的是什么?"。如果他对数据不熟悉,答案可能是"搞清楚这些数据结构和关系"。如果他要做的是数据挖掘工作中的一部分工作,这个答案可能是,"哪些客户群是需要关注的?考虑哪些因素?"而对于后者,如果他对于数据还不是非常熟悉的话,恐怕还是得像前者一样,搞清楚数据结构。
曾经做过一些数据源分析的工作,是为了定义生产系统和经营分析系统之间的接口,工作的目的就是搞清楚数据结构。这种目的不算非常强,所以采取的方式是首先确定大范围,再逐个表分析,给出表的定义,约束关系以及和其他表的关系。例如需要分析客户、帐务、业务使用的数据,而资源、数据业务的先不管,缩小范围。一般来说,这个范围可以缩到很小,数量级在20以内是个不错的选择。如果太多数据只会让人产生恐惧,难以入手。但其实最终需要分析的表肯定超出20个,因为沿着表之间的关系,能够引出一些新的需要分析的表。
虽然一般都会有数据字典帮助你理解数据,可几乎这些文档都只是记录了表结构,表名、主键、外键参照等,而字段之间的逻辑关系,表的概念定义很少见到。例如对于一个用户表,到底这个表里面存放的数据表示什么业务含义呢?找不到这样的信息,如果说这张表中存放了所有的用户(假设我们已经给用户一个定义,客户定购某种产品的契约关系),那么这个"所有"是指历史上所有出现过的用户?或是当前活动的用户?
要是对业务熟悉,脑中已经有个概念模型,很快就可以切入重点,三户关系如何设计的?销帐流程是怎样在数据中体现的?预存、托收、赠送费用都如何体现的?带着这些问题去探索数据,当然是事半功倍,可以将这些问题看作为更进一步的探索目的。
在纷繁的表、字段中,你真正关注的为数不多,需要将它们挑选出来,重点描述。例如对于帐务上面的费用字段,他们之间的逻辑关系可一定要搞清楚。对于这种关系,一个好的方法就是选取一些用户的实际数据,观察他们的费用,在帐户上的余额每月如何变化,而帐单上的明细是多少,销帐明细中从哪些帐户上扣掉这些费用。观察了四五个客户,这种关系自然明了。
最终,可以形成一份数据源分析报告,从限定范围内的每个表开始,给出概念定义,以及设计层面与概念层面不相符之处(例如概念上用户表存放的是当前活动用户,而销户的已经转移到另一张表,但其实此表中还是存在已销户用户),将表的字段进行分组,例如在通话详单中,可以分成本方用户信息、对方用户信息、网络信息、通话信息,计费信息等,这可以便于理解。
说了这么多,不还是分析三步曲吗:
1、明确目的——探索数据为了什么?能不能带着问题进去啊?
2、分门别类——根据主题缩小范围,对字段进行分组
3、去芜存菁——挑选重点的字段,用样本观察
上面都是在说如何理解数据结构和含义,也将它叫做"数据探索"的一部分了,当然如果是数据挖掘,其数据探索步骤还有更强的目的性,容以后再谈。
责编:姜玲
微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友