字段|租赁大数据看板建设过程中数据清洗及程度思考

编辑导读:数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。本文作者从自身工作经历出发,以租赁大数据看板建设过程中的数据清洗为例,进行分析,与你分享。
字段|租赁大数据看板建设过程中数据清洗及程度思考

最近在接触学习BI(Business Intelligence,商业智能)相关的内容,抽取了部分租赁的业务数据导入BI软件进行分析,由于数据的年份跨度较大,且都来源于线下录入,早期字段约束较少、业务审核相关机制不健全,导致部分字段统计经常报错,或者与理想情况差距过大。遇到这种情况时就要引进“数据清洗”流程,将不对劲的数据进行排除。
字段|租赁大数据看板建设过程中数据清洗及程度思考

数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。与问卷审核不同,录入后的数据清理一般是由计算机而不是人工完成。
——某度词条
但是数据清洗过程中,如果仅仅是做一些常规判断,例如租赁订单中的用户支付金额,理应大于0元,房子的面积不能为0平方米等等,经过简单处理之后,能解决很多异常问题,但还是会有数据异常的情况,例如只约束了订单金额不能为0元,万万没想到确有负数金额的订单以及金额为空的订单,最终导致计算出来的平均数据、各区域业绩数据排行等产生异常。以下将以数据清洗的普遍流程来讨论清洗“程度”如何衡量。
字段|租赁大数据看板建设过程中数据清洗及程度思考

一、数据有效标志有效标志是指一条数据为有效数据的关键标志,一般即为该数据的状态字段,如支付订单的支付状态、用户信息的注册状态、商品信息的是否删除等,对字段对数据是否可采纳起着决定性作用。
有条件的话最好对原始数据做一次统计(SQL里的group by、Excel里的筛选功能等),看看一共存在几种状态,不同状态的数据量有多少。然后对照业务流程,对数据有效标志进行筛选,可以有效减少不必要的数据及其中潜在的问题,提高后续数据分析的速度和结果质量。
如果被过滤掉的异常状态的数据量超过订单的1%,则要与负责技术开发或者数据分析的同事一起,研究数据源记录的时候是不是就有问题,甚至是存在不知道的需求或潜在bug等。
例如我们的租赁订单,有多种租赁状态:
字段|租赁大数据看板建设过程中数据清洗及程度思考

如果要分析过往已完成的租赁交易情况,那就只需要筛选其中状态码为03或状态值为“完成”的数据,其他状态的数据一概不需要理。
但如果要分析过往所有发生过的交易情况,则需要筛选状态码为00-05状态的订单,其他状态为Null、空值、-1、或其他无法理解,及N年没用遗留的业务已经废弃不再使用的值的数据,可以考虑全部过滤掉不需要。
不同分析场景下,对于数据的需求是不一样的,不要一味的最求数据的数量,如果想着就算暂时用不上也先放着,这样很可能会加重后期数据分析中筛选的工作量,占用电脑资源卡顿、甚至死机白搞了等等。
其他:生产环境上或多或少的存在用于测试的“生产验证”数据,其中可能包含一些极端场景数值,但是此类数据未实际发生过,所以一般要在数据清洗过程中去掉。
二、数据唯一性标志就像订单要有订单号,用户要有uuid,商品有skuid一样,系统中的数据一般都需要有唯一的ID用于进行数据的检索和区分。
但是由于bug或者子订单逻辑、不同的状态的影响,可能会出现唯一性标志重复情况,此时可能会对数据分析造成一定的影响。