阿里云大数据实战记录2:调度实例跑完数据表为空?

问题的来源

上周拉了一个表单,姑且叫A表,由于该表的源数据更新频率不高,所以设置一周更新两次,都是在周二和周五的凌晨0:10更新。
上周五,有业务人员反馈相关的一些面板数据不准,查了一遍之后锁定了问题:是A表缺失导致数据逻辑混乱。当时手头还有其他任务,就没有细究原因,重跑一下表单调度,先把问题修复了。

今天(周二)要使用该表时,又发现表单空空如也!重跑一下,便有数据了。这引起了我的注意,不调度的时候没有问题,一执行调度,反而出了问题?

探索解决方案

在【Dataworks的运维中心】,找到该今天凌晨调度的实例,查看相关的运行日志。
由于我重跑了凌晨的调度实例,所以只能通过【展开详情】的【运行日志】,具体路径如下:
image.png
image.png
从上图可以看到,有一个警告,我读取的分区表,姑且叫B表,昨天的数据为空,所以输出到我的A表时,数据记录数为0。

B表是每天的分区表,不可能没有数据的,除非是任务挂掉了,或者更新频率问题。
或许可以排除任务挂掉的原因,至少可能性没有后者高,因为上周五任务没有异常;先看看更新频率问题。

从【Dataworks的数据地图】查到B表,查看表单信息。从分区信息可以看到,执行的时间大都是3点前后,也就是说我读表的时候,分区表还没有相关的数据。
image.png

解决方案

为了保证读取B表时能够正常读取数据,需要修改调度在B表创建好分区并写入数据之后,但是由于该时间是浮动的,于是只好往后配置。我将调度时间修改为8:10。

从理论上是没问题的,但是实际还需要观察,后续若有其他bug再补充。

猜你喜欢

转载自blog.csdn.net/qq_45476428/article/details/127636629