1.1 背景
数仓调度场景概述 介绍了如何使用 FineDataLink 将不同数据源数据整合并搭建数据仓库,通过设置定时任务更新调度实现数据仓库数据的持续更新。
其中在构建 ODS 层数据时,用户需要将大量业务系统数据进行原表原样迁移,使用「数据开发」完成此环节时,需要设置多个调度任务、数据同步/数据转换节点,配置复杂的更新逻辑。
使用「数据管道」功能,则可以实现整个数据库或者多张数据表原表原样实时同步,大大方便了数据仓库的搭建,提升开发效率。
1.2 思路
-
首先将分散在各个业务系统的原始数据使用 FDL 的「数据管道」功能批量实时同步至数据仓库的 ODS层;
-
其次通过定时同步将 ODS 层数据表中新增部分,写入到 DW 层数据表,用户可以根据实际情况选择合适的数据更新方式,详情参见:数据更新专题
-
最后通过定时同步将 DW 层的数据进行汇总,集中至 DM 层数据表,用户同样需要根据数据实际情况进行数据更新设置,形成可供直接分析的结果数据。
1.3 效果预览
FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「场景案例>数据仓库场景」下的「04实时&定时组合数仓调度示例」文件夹。
任务层级如下图所示:
步骤 |
说明 |
设置 ODS 层任务 |
设置 ODS 层任务需要将来自不同数据库的「财务数据」和「销售数据」通过使用 FineDataLink 的「数据管道」功能原表原样实时同步落库至指定数据库 |
设置 DW 层任务 |
DW 层任务即将 ODS 层数据中更新的数据同步至 DW 层数据中。若已有的 DW 层数据中最新更新时间(比如最新的销售时间)晚于 ODS 层数据中的时间,即 ODS 层有新数据生成,需要将其同步至 DW 层中,同时记录更新的开始时间和结束时间,并发送消息通知。 |
设置 DM 层任务 |
DM 层使用更新的数据进行数据处理,将 DW层的销售数据和财务数据进行关联,合并成宽表并输出至指定数据库,为其他报表等可视化工具提供数据源。 |
设置总调度任务 |
三个层级的数仓都已经设置完成,接下来就可以将 ODS、DW、DM 层的调度任务进行组合,通过调用任务的形式组合在一个任务中,方便后续的任务管理和触发。 |
2.1 设置ODS层任务
在设置任务前,请先参考 数据管道概述第二节 进行环境准备。
2.1.1 设置销售数据管道任务
点击数据管道>新建管道任务,如下图所示:
将存放「销售数据」的「demo」数据库中对应的原始选中,如下图所示:
点击「下一步」,将数据同步至目标数据库,也就是存放 ODS 层数据的「test_1」数据库,如下图所示:
点击下一步,修改目标表名称,如下图所示:
点击下一步,设置异常通知和通知方式等,如下图所示:
最后保存并运行任务即可,如下图所示:
2.2 设置财务数据管道任务
同理,新建管道任务,并将存放「财务数据」的「test_2」数据库中对应的原始选中,并同步至存放 ODS 层数据的「test_1」数据库中,如下图所示:
然后设置字段映射和异常通知,并保存和启动任务,如下图所示:
完成后的管道任务如下图所示:
此时,ODS 层数据库「test_1」中即会出现原表原样实时同步的「财务」和「销售」数据表,如下图所示:
2.2 设置DW层任务
DW 层任务的设置方式与数仓调度场景概述同理,详情参见设置DW层任务,此处不在赘述。
2.3 设置 DM 层任务
DM 层任务的设置方式与数仓调度场景概述同理,详情参见设置DM层任务,此处不在赘述。
2.4 设置总调度任务
三个层级的数仓都已经设置完成,接下来就可以将 ODS、DW、DM 层的调度任务进行组合,通过调用任务的形式组合在一个任务中,方便后续的任务管理和触发。
由于此处 ODS 层任务使用了「数据管道」功能,因此不需要对其进行调度任务设置,只需要对 DW 层和 DM 层进行调度即可,如下图所示:
操作步骤与设置总调度任务同理,本文不在赘述。
设置好以上任务后,即可运行任务「调度总任务」,消息通知任务运行情况: