历史版本14 :数仓调度场景概述 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 背景

数据仓库的调度配置是实际业务中必不可少的一环。通过调度配置,可以实现数据的更新同步,从而让数据持续的应用在业务中。

例如,某销售公司当前情况如下:

当前有两个部门的数据:「销售」和「财务」,目前分别存储在接口数据和业务系统对应数据库中;在数据仓库的ODS、DW、DM 3层中,ODS层是由业务系统直接拉取过来的原始数据;DW 层是基于 ODS 层进行汇总处理的中间层数据;DM 层是基于 DW 层,并且根据报表展示诉求而加工获得的结果层数据。

现在希望能实现以下数仓调度任务:将分散在接口和数据库中的底层数据落库至指定数据库,形成 ODS 层数据并定期(每周一次)更新数据, ODS 层定期(每周一次)同步更新的数据到 DW层,DW层定期(每周一次)同步更新的数据到 DM层,供给其他可视化报表展示工具使用。

1.2 思路

  • 首先将分散在各个业务系统的原始数据使用 FDL 抽取至数据仓库的 ODS层,由于读取的是业务系统的历史全量数据,所以选择「先清空目标表再写入数据」的写入方式,当抽取数据量较大时,此写入方式的执行效率最高、性能最佳;

  • 其次将ODS层数据表中新增部分,写入到 DW 层数据表,由于新增部分数据相比历史全量数据是比较少的,所以选择「直接将数据写入目标表」的写入方式

  • 最后将 DW 层的数据进行汇总,集中至 DM 层数据表数据表,DM 层的计算逻辑需要基于历史全量数据进行,所以数据量较大,但是此类数据在 DM 层数据表中已经存在,所以我们选择「指定比对字段,比对字段遇相同值,覆盖目标表数据」的更新方式,形成可供直接分析的结果数据。

数据写入更新方式详情参见:数据更新专题概述,你可以根据实际数据情况选择合适的更新方式。

1.3 效果预览

FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「场景案例>数据仓库场景」下的「01数据仓库调度示例一」文件夹。

任务设计效果如下图所示:

任务层级如下图所示:

2. 操作步骤编辑

步骤说明
设置ODS层任务设置 ODS 层任务需要将来自接口数据的「财务数据」和存储在固定数据库的「销售数据」通过 FineDataLink 落库至指定数据库,并通过使用参数和调度任务,实现 ODS 层任务定时更新,并发送消息通知。
设置DW层任务DW 层任务即将 ODS 层数据中更新的数据同步至 DW 层数据中。若已有的 DW 层数据中最新更新时间(比如最新的销售时间)晚于 ODS 层数据中的时间,即 ODS 层有新数据生成,需要将其同步至 DW 层中,同时记录更新的开始时间和结束时间,并发送消息通知。
设置DM层任务DM 层使用更新的数据进行数据处理,将 DW层的销售数据和财务数据进行关联,合并成宽表并输出至指定数据库,为其他报表等可视化工具提供数据源。
设置总调度任务三个层级的数仓都已经设置完成,接下来就可以将 ODS、DW、DM 层的调度任务进行组合,通过调用任务的形式组合在一个任务中,方便后续的任务管理和触发。

设置好任务后,若你希望数仓调度任务可以定时执行,可以使用定时任务调度配置

3. 结果查看编辑

设置好以上任务后,即可运行任务「调度总任务」,消息通知任务运行情况:

任务执行日志中将出现任务运行的相关记录,如下图所示: