1. 概述
数仓调度场景案例给出了整体的调度方案,本文将为你介绍如何设置 DW 层任务。
DW 层任务即将 ODS 层数据中更新的数据同步至 DW 层数据中。若已有的 ODS 层数据中最新更新时间(比如最新的销售时间)晚于 DW 层数据中的时间,即 ODS 层有新数据生成,需要将其同步至 DW 层中,同时记录更新的开始时间和结束时间,并发送消息通知。
2. 操作步骤
2.1 创建文件夹
首先创建「DW」文件夹,存放 DW 层任务,预计有两个定时任务,分别对应「财务数据」和「销售数据」,如下图所示:
2.2 设置财务数据任务
为了便于记录数据更新的日志,因此需要获取任务开始时间并将其设置为参数,当任务开始执行的时候就记录当前时间。
新建定时任务,命名为「DW_财务」,然后添加「参数赋值」功能,设置 SQL 语句显示当前时间,并将其设置为参数 time1,如下图所示:
然后开始进行任务设置。
判断 DW 层中 dx_caiwu 数据中最晚的订单生成时间是否晚于 ODS 层中财务数据的订单时间,也就是将 ods层新增的数据同步至DW 层中 dx_caiwu 数据表中。
使用参数赋值,取出dx_caiwu中最晚订单生成时间,并设置为 time 参数,如下图所示:
新建数据同步节点,将设置ODS层任务中落库的 ODS 华北财务数据取出,并使用time参数,如果华北财务数据中「订单生成时间」晚于 DW 层中 dw_caiwu 数据中最晚订单时间,则将这部分新增的数据同步至 dw_caiwu 数据表中,如下图所示:
「华东财务」和「华南财务」同理。
数据同步完成后就需要再次记录结束的时间来写入日志中,因此和获取开始时间一样,需要新建参数赋值节点,获取结束时间并设置时间参数,如下图所示:
在任务获取开始和结束时间后,即可通过SQL脚本将时间写入准备好的日志数据表 dw_logs 中,如下图所示:
然后设置消息通知,当DW_财务数据任务执行成功,则发送通知,如下图所示:
2.3 设置销售数据任务
销售数据的任务同理。
2.4 设置 DW 调度任务
DW 层的数据同步任务已经完成,此时需要通过新建「DW调度」任务,将财务数据和销售数据的两个任务组合起来同时执行,并发送执行后的结果通知。
新建定时任务命名为「DW调度」,添加调用任务节点,选择 2.2 节创建的财务数据任务,如下图所示:
同理,销售数据也进行调用。
然后新增消息通知节点,DW 层执行成功则发消息通知,如下图所示: