开发者学堂课程【场景实践 - 使用 MaxCompute 进行数据质量核查:电商分析平台数据质量核查】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/520/detail/7042
电商分析平台数据质量核查
内容介绍:
一、任务背景
二、任务涉及业务数据
三、任务目标
四、任务解决方案
五、效果-监控报告
六、任务&思考
一、任务背景
ABC 是一家销售公司,其客户可以通过网站下单订购该公司经营范围内的商品,并使用信用卡、银行卡、转账等方式付费。付费成功后,ABC公司会根据客户地址依据就近原则选择自己的货仓,指派合适的快递人员配送商品。
经过几年的经营,该公司积累了一批经营数据,他们依托于阿里云大数据计算服务、大数据开发套件等搭建了一个企业级的数据平台,将历史数据以及每天产生的数据都同步到该平台上去。由于种种遗留问题,造成这些数据中存在一定的数据质量问题,为了能得到更准确的数据分析结果,数据分析师希望你这个刚入职的助理大数据工程师能合理的使用你掌握的MaxCompute的技术,去帮他们发现数据中的质量问题。
二、任务涉及业务数据
此次的数据质量监控实验,主要涉及如下业务表。
1、订单表:保存客户订购产品所产生的订单信息;
2、客户表:保存客户的姓名、地址信息;
3、配送表:保存配送员与订单的对应信息;
4、产品表:保存产品相关信息;
5、省份表:保存省份信息;
6、城市表:保存城市信息。
图中,能看出来订单表和配送表之间由相关的订单号关联,订单表与产品表之间是由产品编码关联,订单表与客户表之间通过客户编码关联,客户表和省份表通过省份编码关联,客户表与城市表通过城市编码来关联。
三、任务目标
此次数据质量监控,主要对相关业务数据实现如下几种监控规则,并输出数据质量监控报告。
错误值:订单表某些时间格式存在问题,导致数据库人员将部分时间字段设置成了字符串型
重复值:订单系统中部分记录关键信息重复(同样的人在同样的时间下了不同的订单),导致客户投诉
数据不一致:地市信息名称未标准化,导致在数据分析时,未能把相同地域的数值汇总在一起
数据完整性:配送的订单在订单表中不存在,导致物流人员空跑,效率下降
缺失值:部分客户性别信息缺失,影响后续使用
异常值:单月购买次数异常(当月购买次数大于10次)
四、任务解决方案
1、开通 MaxCompute 服务并搭建开发环境
这个主要是针对第一次使用阿里云产品的新用户,如果是老用户,已经开通了相关的服务,直接登录系统进入相关的项目,然后进行后续的操作就行。
2、实验数据准备
需要把相关的实验数据在各个项目里建表,然后把数据导到库表里,做好数据质量准备。
3、配置数据质量核查规则
可以找一个比较普通的数据质量核查规则模板。例如,本次实验准备的是一个简单的模板,配置核查规则、编码名称、负责人联系方式、告警内容等。有了核查规则模板之后,根据数据质量问题相关概念,以及本次实验的相关目的,把实验的数据质量核查规则配置导到模板里面。
4、数据质量监控规则导入 MaxCompute
通过 Data IDE 工具导入到 odps 里。
5、通过 MaxCompute 实现数据质量监控
这一步就是将上面梳理好的数据质量监控规则,用代码的方式来实现,主要通过对Data IDE任务开发、脚本开发这两个模块来实现的。
6、配置 MaxCompute 程序调度
这里是将前面内部完成的任务配置成周期性的任务,这样就能周期性的、持续性的进行数据量监控。
7、配置程序调度邮件、短信告警
这里的邮件短信告警主要就是针对程序级别的,就是配置。如果程序在运行的过程中出现了错误,再进行告警,指定相关负责人,让其对程序进行修改,然后重新调入程序。
五、效果-监控报告
最终我们可以捕获到的数据质量监控信息如下
比如,哪条监控规则告警、告警的负责人、具体的告警内容等。
六、任务&思考
1、任务:根据新提供的数据集及实体关系。分析如下场景中可能出现的数据质量问题,并使用 MaxCompute 技术完成相关场景的数据质量核查:
用户通过业务平台系统进行商品购买,允许用户在同一个订单内购买多种商品,用户每下一次订单就在订单表中增加一条记录,由于网络延迟或系统界面操作有误,可能会在系统内产生多条记录。用户下单后1小时之内,仍未进行付款操作,订单状态变更为取消,由于系统bug可能存在以及付款但是订单状态是取消的相关记录。用户进行付款的同时,可能参加某种抽奖或者优惠活动,减免部分费用。用户支付完成后,生成配送单,结果发现配送员小张和小李分配了同一个订单,而且订单配送商品信息一致,偶尔由于系统原因会出现用户下完单、付完款后没有安排配送的情况。
2、思考:思考并实现如何实现数据质量邮件、短信告警?
目前我们已实现了程序的调度配置,并对周期性执行的程序调度,增加了邮件、短信告警,此种告警主要是针对程序执行的一种监控,考虑是否可增加数据质量监控的邮件、短信告警,即如果发现数据质量监控规则报错,则进行邮件、短信告警,请思考此种告警是否可通过 MaxCompute(DatalDE)来实现,如何实现。