1. 概述
数仓调度场景案例给出了整体的调度方案,本文将为你介绍如何设置 ODS 层任务。
设置 ODS 层任务需要将来自接口数据的「财务数据」和存储在固定数据库的「销售数据」通过 FineDataLink 落库至指定数据库,并通过使用参数和调度任务,实现 ODS 层任务定时更新,并发送消息通知。
2. 操作步骤
2.1 创建文件夹
首先创建「ODS」文件夹,存放ODS层任务,预计有两个ETL任务,分别对应「财务数据」和「销售数据」,如下图所示:
2.2 设置财务数据同步任务
由于财务数据包含了三个区「华北」、「华东」和「华南」,同时财务数据是需要通过接口取数,因此可以通过三个「数据转换」进行取数落库。
新建 ETL 任务,命名任务为「ODS_财务数据」,在画布中拖入数据转换节点,命名为「华北财务数据」,如下图所示:
进入数据转换界面后,使用 API 输入将接口数据取出,如下图所示:
添加「JSON解析」并将 API 输入连接,点击「选择JSON节点」,选择需要进行解析的JSON,点击「确定」,如下图所示:
在数据预览界面,即可看到解析完成的华北财务数据,如下图所示:
取出数据后即可将数据同步至指定的数据库,由于我们需要实现定时更新,比如每周更新一次,让落库的 ODS 层数据保持时效性,因此需要通过设置自定义参数进行控制。
点击「确定」保存华北财务数据做的设置,然后在数据转换节点界面设置参数,即 「date」参数显示任务执行时间前7天的时间,如下图所示:
新增「Spark SQL」,连接上一个算子后,判断「订单生成时间」字段值是否晚于指定参数值,如果是,则说明接口数据中有新数据生成,需要同步至指定数据库,如下图所示:
此时已经选好需要输出的数据,新增 DB 表输出算子,连接上一个节点,然后选择需要数据同步的目标数据表,如下图所示:
其他两个地区「华东」和「华南」的财务数据同理。
为了控制三个数据转换任务的执行,可以使用虚拟节点将其连接,如下图所示:
2.3 设置销售数据同步任务
销售数据也是包含三个区「华北」、「华东」和「华南」,并且存储在数据库 FRDemo 中,希望将该数据和 2.1.1 节中的接口数据存放到同一个数据库中,因此使用数据同步功能。
以华北销售数据为例。
新建 ETL 任务,命名任务为「ODS_销售数据」,在画布中拖入数据同步节点,命名为「华北财务数据」,如下图所示:
由于我们需要实现定时更新,比如每周更新一次,让落库的 ODS 层数据保持时效性,因此需要通过设置自定义参数进行控制。
设置参数 date,即 「date」参数显示任务执行时间前7天的时间,如下图所示:
在数据同步节点的「数据来源」界面,选择来源的数据库,并查询需要同步的数据,判断「销售时间」值是否晚于指定参数值,如果是,则说明来源数据库中有新数据生成,需要同步至指定数据库,如下图所示:
将需要输出数据同步至指定的目标数据库中即可,如下图所示:
其他两个地区「华东」和「华南」的销售数据同理。
为了控制三个数据同步任务的执行,可以使用虚拟节点将其连接,如下图所示:
2.4 设置 ODS 层调度任务
ODS 层的数据同步任务已经完成,此时需要通过新建「ODS调度」任务,将财务数据和销售数据的两个任务组合起来同时执行,并发送执行后的结果通知。
新建 ETL 任务命名为「ODS 调度」,添加调用任务节点,选择 2.2 节创建的财务数据任务,如下图所示:
同理,销售数据也进行调用。
然后新增消息通知节点,ODS 层执行成功则发消息通知,如下图所示: