FineDataLink数据编排:ETL数据仓库实践

文 | 商业智能BI相关文章 阅读次数:1,821 次浏览
2022-08-17 10:10:21

1、背景

在数据分析和展示之前,经常要使用的数据散落在各个业务系统的数据库中,并且各系统的数据口径并不统一、数据质量参差不齐,必须要先进行漫长且头疼的数据准备。

针对上述数据准备难题,帆软新推出了「FineDataLink」数据集成平台,从高效专业的数据准备角度出发,进行ETL实时同步,帮助企业处理出质量更高、更利于展示与分析的数据。

数据准备之前,企业需要搭建包含ODS、DW、DM3层的数据仓库,ODS层是由业务系统直接拉取过来的原始数据,DW层是基于ODS层进行汇总处理的中间层数据,DM层是基于DW层,并且根据报表展示诉求而加工获得的结果层数据。

其中业务系统有3套,OA、ERP和线下Excel数据,其中ERP和线下Excel数据每天固定更新一次,但是OA数据不定期更新,为提高执行效率,当OA系统数据有变化时,对应ODS层ETL实时同步任务才需要运行。

FineDataLink数仓1

2. 任务开发流程

我们累计需要创建4个ETL任务,分别是:数仓-ods层、数仓-dw层、数仓-dm层、数仓调度层。

2.1 数仓建设-ODS层

由于ODS层中OA系统相关数据表仅有1张,所以此表的数据抽取,创建于数仓调度层ETL任务中,通过独立的数据同步节点完成;ERP和线下Excel数据,我们创建一个ETL任务,命名:数仓-ODS层,在数仓调度层ETL任务中引用数仓-ODS层ETL任务即可;

为提高ODS层内多个ETL实时同步任务的执行效率,我们设置该层所有任务可并行运行,我们运用虚拟节点指向多个数据同步节点,完成此思路,具体设置见下方。

FineDataLinkODS层2.1

2.2 数仓-DW层

参考ODS层任务设计,我们再创建一个ETL任务,命名:数仓-DW层,该层中的3个数据同步节点,分别从ODS层的ERP、OA、Excel3类数据表汇总加工数据,并存储至DW层中间表。

FineDataLink的DW层2.2

2.3 数仓-DM层

参考ODS层、DW层任务设计,我们再创建一个ETL任务,命名数仓-DM层,数据同步中获取的数据,均来源于DW层数据表,具体设置见下方。

FineDataLink-DM层2.3

2.4 数仓调度层

2.4.1 获取OA最新更新时间

创建数仓调度层ETL任务,命名:数仓调度层,使用参数赋值节点,max()函数获取OA系统中更新时间的最大值,并将此时间点赋值给updatetime参数,sql语法和节点显示效果见下方。

select date_format(max(starttime),’%Y-%m-%d’) from updatetime

FineDataLink数仓调度层2.4.1

2.4.2 判断OA系统今日是否更新

1)参数设置

使用自定义参数功能,创建today参数,类型选择日期,值为yyyy-mm-dd,含义为ETL任务运行时的日期。

FineDataLink-2.4.2参数设置

2)条件分支

使用条件分支、数据同步、调用任务节点,将条件分支节点分别连向ODS层的2个流程;

条件分支节点中,设置当updatetime参数和today参数数值相等时,即OA系统最新更新时间为今日时,执行ODS层-OA、1-ODS层-ERP流程;当两个参数数值不等时,即今天OA系统没有进行数据更新,执行2-ODS层-ERP流程,具体设置如下:

FineDataLink-2.4.2条件分支

2.5 调度配置

使用调用任务节点,将参数赋值、条件分支、数仓-ODS层、数仓-DW层、数仓-DM层衔接起来,设置调度配置,设置ETL实时同步任务的更新频率,数仓-ODS层、数仓-DW层、数仓-DM层。

FineDataLink-2.5调度配置

2.6 任务运行

为保证ODS层中OA数据表不为空,所以任务正式运行前,需要单独运行一次ODS层-OA节点:

FineDataLink任务运行2.6

若ETL实时同步任务运行当天,恰好OA系统进行了数据更新,运行日志效果如下,其中【2-ODS层-ERP、EXCEL】节点被跳过执行。

FineDataLink-2.6任务运行日志

FineDataLink更多介绍: https://www.finedatalink.com/

产品体验

相关内容

目录
立即体验 立即体验

商务咨询

在线咨询
专业顾问帮您解答问题

电话咨询

技术问题

投诉入口

微信咨询

返回顶部