通常情况下我们使用 CDC实时监听表销售或订单表数据的LOG时会形成流式的数据,即订单变化时数据是按照变化时间不断的传入到ETL的流程中的,业务希望实时看到订单数据的报表。
CDC每次传入的数据有可能是一条也可能是多条,监听到的流式数据都是订单表的单条数据,但在业务上单表的数据在业务价值上可能缺少一些关键的维度业务数据字段,例如要计算毛利合并客户及产品数据等。
为了补充这些缺少的数据字段之前的做法是先让他入库,然后再用 SQL语句或者ETL流程再给他变换一次形成我们需要的宽表数据,虽然这样也可以实现这个业务需求,但是失去了数据处理的时效性,即本来是实时流的数据,但是到了业务那里变成不是实时的了,因为我们中间有一个定时变换的数据过程。
而现在批流一体化架构的数据集成平台都是采用实时批流合并的方式来实现,下面就介绍 ETLCloud如何实现实时的批流合并:
我们可以直接用 SQL节点或者脚本节点去把实时流数据进行补全后运行

在 SQL节点中逐行去补全数据

例如下面表中的客户数据只有客户的相应信息,如果 CDC监听到有客户数据发生变化时希望能实时合并这个客户的订单的相关数据到这条记录中就可以通过上方式进行实现

上述表中只有客户数据,没有订单数据
订单数据在另外一张表中,但是 CDC监听到的是客户变化数据

通过客户表中的 id和订单表中的customer_id进行关联合并订单表中的数据到客户表中
在实时流节点后面的 sql中写上sql语句即可合并数据到实时监听到的数据流中

SQL数据处理节点配置

流程做起来相对简单好理解,如果觉得图形描述这个 SQL太复杂就直接贴SQL上来,但是有可能那个SQL语句要合并很多维度数据可能会有几百行,这样后期换其他人来运维就麻烦一点,sql太复杂后面可能不太好理解业务,我们目前发现大部企业是采用这种模式的,因为没有好的图形化ETL所以就被迫做了这样。
ETLCloud介绍
ETLCloud是一款零代码ETL工具,可以快速对接上百种数据源和应用系统,无需编码即可快速完成数据同步和传输,企业IT人员只需简单几步即可快速完成各种数据抽取同步并配合BI工具实现数据的统计分析。

( ETLCloud可视化流程同步界面)
ETLCloud社区版本免费下载使用
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70030339/viewspace-2980172/ ,如需转载,请注明出处,否则将追究法律责任。