开发者学堂课程【新电商大数据平台2020最新课程:电商项目之数据清洗详解】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/640/detail/10520
电商项目之数据清洗详解
目录
一、 ODS 贴源层
二、 数据清洗
一、ODS 贴源层
1.ODS 层存放您从业务系统获取的最原始的数据,是其他上层数据的源数据
2.本项目中使用的 ODS 层数据主要包括:
用户基本信息商品分类信息、商品信息、店铺信息
订单数据订单支付信息、活动信息行为日志信息
二、数据清洗
数据在采集或进行外部接口调用过程中可能会产生不符合要求的“脏数据”,数据指的是有一些空值的字数要求不合的,下面介绍下对这些脏数据的产生原因及处理
1.格式内容问题产生的原因
不同数据源采集而来的数据内容和格式定义不一致
时间、日期格式不一致清洗根据实际情况,把时间/日期数据库转换成统一的表示方式
数据类型不符清洗,比如说所需要的是 int 类型,比如来个 string 就不符合它的类型。
2.逻错错误清洗
数据重复清洗,比如说 Flume 监控本地磁盘文件夹,采集过来的时候 Flume 突然宕机,没有监控就会产生重复数据,进行一半的时候突然挂机 这时候已经有一定的数据刷入进去,要把 Flume 重新启动 再次采集,采集的位置还是之前的位置,数据重复,要去重,而后期的一些数据计算中进行去重数据重复清洗的时候 建立一个规则即可
数据不完全相同,但从业务角度看待数据是同一个数据,如页面埋点时,进入页面和退出页面都会上报一次数据,只有时间不一样,其他字段相同,在统 tpv/uv 时应该进行去重。
矛内容的修正,如身份证号可以验证我们的年龄然后,我们可以根据字段的数据来源,判断哪个字段提供的信息更为可靠来做修正。如果身份证号和年龄不符合,就自相矛盾 所以说把矛盾的内容进行修正或过滤。
3.缺失值的清洗
数据值缺失是数据分析中经常遇到的问题之一
造成原因:有些对象的某个或某些属性是不可用的,信息被遗漏,或者实时性高还未来得及做出判断
删除元组:这种只适合在对象有多个属性缺失值、被删除的含缺失值的对象与初始数据集的数据量相比非常小的情况下非常有效
数据填充用一定的值去填充空值,从而使信息表完备化
去空处理 null -string-//N
4.不符合业务需求(或挖掘分析需求)的数据
越界数据如温度采集如果为1000已经是设备故障等原因导致的,但对后续分析没有意义:视频或文章的播放或查阅时长,不同公司有不同的行业要求,假如要求时长5m 认为是又意义的数据。
在贴源层之前可以做一些清洗,比如说用户行为数据,用户行为数据进行清洗的话,直接用 MR 进行清洗 然后下降ODS,这个清洗过程比之前的直接导入进去要好一些,可以清理一些字符段,还有一些脏数据,保证 ODS 层的数据是有用的数据。