实时ODS层数仓搭建方案
1. 概述
1.1 背景
数仓调度场景概述 介绍了如何使用 FineDataLink 将不同数据源数据整合并搭建数据仓库,通过设置定时任务更新调度实现数据仓库数据的持续更新。
其中在构建 ODS 层数据时,用户需要将大量业务系统数据进行原表原样迁移,使用「数据开发」完成此环节时,需要设置多个调度任务、数据同步/数据转换节点,配置复杂的更新逻辑。
使用「数据管道」功能,则可以实现整个数据库或者多张数据表原表原样实时同步,大大方便了数据仓库的搭建,提升开发效率。
1.2 思路
首先将分散在各个业务系统的原始数据使用 FDL 的「数据管道」功能批量实时同步至数据仓库的 ODS层;
其次通过定时同步将 ODS 层数据表中新增部分,写入到 DW 层数据表,用户可以根据实际情况选择合适的数据更新方式,详情参见:数据更新专题
最后通过定时同步将 DW 层的数据进行汇总,集中至 DM 层数据表,用户同样需要根据数据实际情况进行数据更新设置,形成可供直接分析的结果数据。
1.3 效果预览
FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「场景案例>数据仓库场景」下的「04实时&定时组合数仓调度示例」文件夹。
任务层级如下图所示:
2. 操作步骤
步骤
说明
设置 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 层进行调度即可,如下图所示:
操作步骤与设置总调度任务同理,本文不在赘述。
3. 结果查看
设置好以上任务后,即可运行任务「调度总任务」,消息通知任务运行情况: