如何确保数据时效性?图文详解数据的增量更新怎么做?

作者:finedatalink

发布时间:2023.9.11

阅读次数:540 次浏览

在数据同步时,为了保证数据时效性,有时我们需要定时进行数据的增量更新,比如每天将新增的一部分数据(来源表)更新至目标数据表中。

下面以FDL为例,展示如何用ETL工具完成数据的增量更新,

数据的增量更新可以根据用户的实际数据情况分为三种:

  • 来源表有时间戳字段;
  • 来源表没有时间戳字段,但是有唯一标识;
  • 来源表没有时间戳字段,并且没有唯一标识。

本文示例可参见:https://demo.finedatalink.com/ 「02场景案例>更新专题」

1.来源表有时间戳

若来源表有时间戳,可以使用参数赋值获取目标表时间戳最大值,再使用数据同步获取增量数据做增量更新。

例如数仓调度方案设置DW层任务中,需要将 FDLDemo 数据库中 demo_ods_huabeicaiwu 来源数据表的增量数据同步至 FRDemo 数据库的 dw_caiwu 目标数据表中。

数据同步,增量数据,数据的增量更新

由于来源数据表demo_ods_huabeicaiwu中包含时间戳订单生成时间,因此可以判断 dw_caiwu 数据中最晚的订单生成时间是否晚于demo_ods_huabeicaiwu 数据表的订单时间,将满足条件的数据取出并通过数据同步将增量数据同步至 dw_caiwu 目标数据表中。

数据同步,增量数据,数据的增量更新

1.1获取目标表最晚时间

使用参数赋值,取出 dw_caiwu 中最晚订单生成时间,并将其设置为 time 参数,如下图所示:

数据同步,增量数据,数据的增量更新

1.2将新增的数据更新至目标表中

新建数据同步节点,将demo_ods_huabeicaiwu数据取出,并使用time参数,如果demo_ods_huabeicaiwu数据中「订单生成时间」晚于 dw_caiwu 数据中最晚订单时间,则将这部分增量数据同步至 dw_caiwu 数据表中,如下图所示:

数据同步,增量数据,数据的增量更新

2.来源表无时间戳但有唯一标识

也就是来源表有主键或逻辑主键,但是不能通过时间戳进行数据的增量更新。

例如需要将 FDLDemo 数据库中 jdy_order 来源数据表新增的数据同步至 FRDemo 数据库的 order_mubiao 目标数据表中。

由于 jdy_order 来源数据表时间字段不能作为更新标识,并且该数据表有主键 orderid 字段,因此使用使用参数赋值获取目标表 order_mubiao 内唯一标识 orderid ,再获取来源表中存在但是目标表中没有的 orderid (也就是需要同步至目标表的新增数据)对应的数据,将这部分增量数据使用数据同步,同步至目标数据库 order_mubiao ,完成数据的增量更新。

数据同步,增量数据,数据的增量更新

来源表数据结构如下图:

数据同步,增量数据,数据的增量更新

2.1获取目标表中唯一标识字段

使用参数赋值,获取目标表 order_mubiao 内唯一标识 orderid,将其作为参数,如下图所示:

数据同步,增量数据,数据的增量更新

2.2将新增数据更新至目标表

再获取来源表中存在但是目标表中没有的 orderid (也就是需要同步至目标表的新增数据)对应的数据,将这部分数据使用数据同步,同步至目标数据库 order_mubiao ,完成增量更新。

数据同步,增量数据,数据的增量更新

3.来源表没有时间戳和唯一标识

建议使用数据管道进行实时增量更新,详情参见:数据管道概述

在数字化时代下,大数据治理对企业数据建设的重要性不言而喻,然而实现的困难有时也让人望而却步,因此选择合适的技术和工具会达到事半功倍的效果。帆软FineDataLink——中国领先的低代码/高时效数据集成产品,能过为企业提供一站式的数据服务,通过快速连接、高时效融合多种数据,提供低代码Data API敏捷发布平台,帮助企业解决数据孤岛难题,有效提升企业数据价值。

数据同步,增量数据,数据的增量更新

数据集成平台产品更多介绍:www.finedatalink.com

                         

上一篇: 下一篇: