【学习背景】
上一节课参考阿里云的课程《使用MaxCompute进行数据质量核查》把所有操作执行了一遍,遗留了一项课后作业:手工向订单表插入一条错误的数据,执行分析流程,确认结果表是否多了一条记录。目的是掌握dataworks的SQL语句用法和验证这种方法进行实时数据分析的可行性。
【操作步骤】
1、通过阿里云官网了解dataworks的SQL插入语句的用法,见帮助文档:
https://help.aliyun.com/document_detail/74598.html
从帮助文档看到,创建表和插入数据是标准的SQL语句。
2、分析订单表的检查规则和订单表已有的数据,设计一条有问题的数据出来。
分析订单表中的数据,我们可以构造同一个客户(customer_id是2044),在同一时间(order_time 20170504 14:21:42)的订单
手工插入一条订单
insert into ods_ebusi_orders VALUES (303, 2044, 12, 6, 4890.24, 1, '20170504 14:21:41');
select * from ods_ebusi_orders where customer_id = '2044';
3、重新执行分析流程,成功。
4、检查分析结果,确认新增的错误记录已经被识别出来了(仅从dt分区看到本次测试有新增结果,但是未达到本人的预期,哪些新增的数据有问题)。目前教程中的SQL代码中只统计了一个表是否有错误,但是并没有将有错误的行数给记录下来,导致无法进一步锁定错误位置来修正。
【思考】
1、对于实时数据的分析,可以定时任务+时间范围来进行数据核查。比如每隔10分钟检查前10分钟内的数据是否正常。
2、阿里云上这个课程写得过程很复杂,但是怎么检查结果,又没有写清楚。
【遗留的课后作业】
我重新设计一下这个课程,尽量简单易懂。
1、只需检查一个数据表有无数据异常即可。教程中检查了6个表,增加了学员的重复工作。
2、在结果表中,将有问题的数据标记出来,比如订单号(主键保证了唯一性)
3、检查出异常结果后,触发邮件报警。
4、周期性检查新增数据,达到实时分析的效果。
.。。