业务场景中的数仓调度

数仓调度(Data Warehouse Scheduling)是指在数据仓库环境中,通过指定计划和规则来自动化执行数据处理和数据集成任务的过程。它涉及到调度程序或工具使用预定义的时间表来触发、协调和监控数据仓库中的各项任务,以确保数据的及时和准确性。

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

一、数仓调度配置的背景和思路

1.背景概述

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

比如,对于一家销售公司而言,其数据涉及多个部门,包括销售和财务等,这些数据分别存储在接口数据和业务系统对应的数据库中。

为了实现对数据仓库的有效管理,该公司需要进行一系列数据调度任务,包括:

  • 将接口和数据库中的底层数据同步落地至指定数据库,形成数据仓库 ODS 层数据,并按照一定的时间(例如每周一次)定期更新数据;
  • 将数据仓库 ODS 层数据定期同步更新到 DW 层,保证中间层数据的数据时效性和准确性;
  • DW 层数据同步更新到 DM 层,供其他的可视化报表展示工使用。

通过这些数据调度任务的执行,企业可以保证数据的完整性和及时性,为业务决策提供更加可的数据支持。

2.设计思路

实现数仓调度任务需要考虑多个方面。

首先,需要将各个业务系统的原始数据使用 FineDataLink 抽取至数据仓库 ODS 层。针对这一操作,我们选择使用「先清空目标表再写入数据」的写入方式,以确保在读取大量历史全量数据时,能够保证写入效率和性能的最佳。

其次,我们需要将 ODS 层数据表中新增部分,写入到 DW 层数据表。针对这种数据量较少的情况,我们选择「直接将数据写入目标表」的写入方式,以保证数据写入操作的高效性和稳定性。

最后,我们需要将 DW 层的数据进行汇总,集中至 DM 层数据表。注意,由于 DM 层的计算逻辑需要基于历史全量数据进行,这意味着数据量较大。因此,针对这种情况,我们会选择使用「指定比对字段,比对字段遇相同值,覆盖目标表数据」的更新方式,以保证数据更新的准确性和实时性,形成可供直接分析的结果数据。

需要注意的是,针对不同的数据写入和更新操作,FineDataLink提供了多种不同的方式和技术支持。用户可以根据实际数据情况选择合适的更新方式,以确保数据处理的高效性、稳定性和准确性。

3.效果预览

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

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

任务层级如下图所示:

二、具体操作与结果查看

实现数仓调度任务需要配置多个不同的任务,包括数据仓库ODS层任务、数据仓库DW层任务和数据仓库DM层任务等。以下是具体的操作步骤:

1.设数据仓库ODS层任务

首先,需要将来自接口数据的「财务数据」和存储在固定数据库的「销售数据」通过 FineDataLink 落库至指定数据库。针对这个任务,我们可以使用参数和调度任务,在指定的时间间隔内,进行数据仓库ODS 层定时任务更新,并且可以通过发送消息通知等方式进行任务管理和监控。

2.设置数据仓库DW层任务

DW 层任务可以将 ODS 层数据中更新的部分数据同步至 DW 层数据中,保证 DW 层的数据时效性和准确性。在进行任务设置时,需要注意,如果已有的 DW 层数据中最新更新时间(比如最新的销售时间)晚于 ODS 层数据中的时间,即 ODS 层有新数据生成,需要将其同步至 DW 层中,并记录更新的开始时间和结束时间。通过发送消息通知等方式,可以进行任务管理和监控。

3.设置数据仓库DM层任务

DM 层任务需要将 DW层的销售数据和财务数据进行关联,合并成宽表并输出至指定数据库,为其他报表等可视化工具提供数据源。针对这个任务,我们可以使用合适的更新方式(例如指定比对字段、覆盖目标表数据等),保证数据处理的高效性和准确性。

4.设置总调度任务

在进行以上三个任务设置之后,可以将 ODS、DW、DM 层的数据调度任务组合在一个总调度任务中。通过调用任务的形式,可以方便地进行任务管理和监控,确保数据处理的高效性和稳定性。

需要注意的是,如果希望可以执行数仓调度的定时任务,可以使用定时任务调度配置进行操作。可以设置不同的时间间隔、并行执行数量、任务优先级等调度参数,以及对任务执行结果进行监控和报告等管理操作。

5.结果查看

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

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

三、数仓调度的稳定性

数仓调度稳定性是指在数据仓库环境中,调度任务能够按时、准确地执行,并且能够应对异常情况和故障,保证数据仓库的持续可用性和数据一致性。

在Linux系统环境下,在通过终端执行Kettle的作业任务时,如果终端被关闭,则相应的服务也会被关闭,这样即会导致Kettle的作业任务被迫停止。

那么,该如何解决定时数据处理任务稳定性不达标的问题呢?

方法一:使用Kettle定时任务调度

①不依赖服务是否开启,直接使用Linux系统自带的cron对Kettle任务进行定时调度。

需要注意的是,Kettle的稳定性相对较差,调度过程中可能会出现数据库报错、连接数不足或者其他非预期的异常情况。

因此,在进行定时任务调度时,可以加入一些异常处理机制,比如设置超时时间、增加重试机制等,可以在一定程度上提高Kettle作业的稳定性和可靠性。

②在Windows系统下同样可以使用“定时任务调度”+ BAT文件的方式来执行Kettle作业。

需要注意的是,在Windows系统下,Kettle有可能会因为内存泄露、代码错误等原因而崩溃。

因此,为了保证Kettle作业的稳定性和可靠性,可以采用一些监控和预警机制,比如监控Kettle进程的运行情况、定期检查系统日志等,及时发现和处理潜在的问题。

kettle定时任务调度

方法二:使用专业的数据调度工具

相比于开源工具,专业的数据集成平台通常具有更高的安全性和稳定性。在国内市场上,FineDataLink等数据集成平台逐渐得到了广泛的应用。

FineDataLink提供了丰富的定时数据调度功能,可以基于时间、事件或者文件状态等条件触发特定的作业任务。这些作业任务可以根据需要配置多个任务执行步骤,包括数据抽取、转换、校验和传输等操作,以及错误处理和结果输出等功能。

FineDataLink定时任务调度

FineDataLink提供的定时任务调度功能,可以定期自动运行定时任务,以保证数据能够及时更新,相比于传统定时任务调度大大简化了调度流程。

传统定时任务调度与FineDataLink定时任务调度对比

除了支持定时数据处理场景,FineDataLink还可以对接多种数据库,基于CDC、logminer、binlog等技术实现数据的实时同步,大大提高了数据处理的效率和实时性。此外,FineDataLink还提供了丰富的数据转换和数据质量控制插件,可以方便快捷地实现数据的清洗、转换、校验等操作,保证数据的正确性和可靠性。

了解更多数据仓库与数据集成关干货内容请关注>>>FineDataLink官网

免费试用、获取更多信息,点击了解更多>>>体验FDL功能

往期推荐:
五分钟了解MQ消息集成-CSDN博客

CDC数据同步技术详解(附数据中断解决方案)-CSDN博客

「API取数」FDL获取金蝶云星空的单据数据_通过金蝶接口取数-CSDN博客

  • 42
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值