作者:finedatalink
发布时间:2023.9.11
阅读次数:540 次浏览
在数据同步时,为了保证数据时效性,有时我们需要定时进行数据的增量更新,比如每天将新增的一部分数据(来源表)更新至目标数据表中。
下面以FDL为例,展示如何用ETL工具完成数据的增量更新,
数据的增量更新可以根据用户的实际数据情况分为三种:
本文示例可参见:https://demo.finedatalink.com/ 「02场景案例>更新专题」
若来源表有时间戳,可以使用参数赋值获取目标表时间戳最大值,再使用数据同步获取增量数据做增量更新。
例如数仓调度方案设置DW层任务中,需要将 FDLDemo 数据库中 demo_ods_huabeicaiwu 来源数据表的增量数据同步至 FRDemo 数据库的 dw_caiwu 目标数据表中。
由于来源数据表demo_ods_huabeicaiwu中包含时间戳订单生成时间,因此可以判断 dw_caiwu 数据中最晚的订单生成时间是否晚于demo_ods_huabeicaiwu 数据表的订单时间,将满足条件的数据取出并通过数据同步将增量数据同步至 dw_caiwu 目标数据表中。
使用参数赋值,取出 dw_caiwu 中最晚订单生成时间,并将其设置为 time 参数,如下图所示:
新建数据同步节点,将demo_ods_huabeicaiwu数据取出,并使用time参数,如果demo_ods_huabeicaiwu数据中「订单生成时间」晚于 dw_caiwu 数据中最晚订单时间,则将这部分增量数据同步至 dw_caiwu 数据表中,如下图所示:
也就是来源表有主键或逻辑主键,但是不能通过时间戳进行数据的增量更新。
例如需要将 FDLDemo 数据库中 jdy_order 来源数据表新增的数据同步至 FRDemo 数据库的 order_mubiao 目标数据表中。
由于 jdy_order 来源数据表时间字段不能作为更新标识,并且该数据表有主键 orderid 字段,因此使用使用参数赋值获取目标表 order_mubiao 内唯一标识 orderid ,再获取来源表中存在但是目标表中没有的 orderid (也就是需要同步至目标表的新增数据)对应的数据,将这部分增量数据使用数据同步,同步至目标数据库 order_mubiao ,完成数据的增量更新。
来源表数据结构如下图:
使用参数赋值,获取目标表 order_mubiao 内唯一标识 orderid,将其作为参数,如下图所示:
再获取来源表中存在但是目标表中没有的 orderid (也就是需要同步至目标表的新增数据)对应的数据,将这部分数据使用数据同步,同步至目标数据库 order_mubiao ,完成增量更新。
建议使用数据管道进行实时增量更新,详情参见:数据管道概述
在数字化时代下,大数据治理对企业数据建设的重要性不言而喻,然而实现的困难有时也让人望而却步,因此选择合适的技术和工具会达到事半功倍的效果。帆软FineDataLink——中国领先的低代码/高时效数据集成产品,能过为企业提供一站式的数据服务,通过快速连接、高时效融合多种数据,提供低代码Data API敏捷发布平台,帮助企业解决数据孤岛难题,有效提升企业数据价值。
数据集成平台产品更多介绍:www.finedatalink.com
上一篇: 优化人事工作流程,一个人事数据仓库就够了!下一篇: 你还在手动更新Excel新增数据吗?用这个低代码ETL工具一招轻松搞定!