ETL,全称 Extract-Transform-Load,它是将大量的原始数据经过提取(extract)、转换(transform)、加载(load)到目标存储数据仓库的过程,那么反向ETL我们就可以理解为从数据仓库或数据湖中将数据反向加载回源系统的过程。
反向ETL常见于以下情况:
数据修正:当数据仓库中的数据发生错误或需要纠正时,可以使用反向ETL将已经经过清洗和转换的数据重新加载回源系统,以修复数据错误。
数据迁移:当企业需要将数据从数据仓库迁移回源系统时,可以使用反向ETL将数据从数据仓库或数据湖中提取并加载回原始系统,以保持数据的完整性和一致性。
数据回溯:某些情况下,由于法规要求、合规审计或业务需求,需要对特定时间段内的数据进行回溯。通过反向ETL,可以将历史数据从数据仓库中加载回源系统,实现数据的回溯和审计。
反向ETL的步骤通常包括以下几个阶段:
提取数据:从数据仓库或数据湖中提取需要反向加载的数据。这可以通过查询数据仓库或使用特定的数据提取工具来完成。
转换数据:对提取的数据进行必要的转换和处理,以使其符合源系统的数据结构和要求。这可能涉及到数据格式转换、字段映射、数据清洗等操作。
加载数据:将转换后的数据加载回源系统中的相应表或数据模型中。这可以通过调用源系统的API、直接插入数据库或使用ETL工具来实现。
需要注意的是,反向ETL过程需要谨慎处理,确保数据的完整性和一致性。在进行反向ETL之前,应该进行充分的测试和验证,以确保数据加载的准确性和有效性,反向ETL因为要对接不同的数据仓库以及不同的运营SaaS系统,是个共性并且比较繁琐的事情,而如果有专门的公司做专门的事情,真正需要做反向ETL的企业就不需要自己去进行进一步的开发,集成对应的反向ETL服务就可以了,投入低还能有更高的稳定性和可靠性,何乐而不为呢,ETLCloud便是这个领域的得力好手。
ETLCloud又称数据集成(DataOps),通过自动化数据转换和集成来实现企业内部和外部数据的无缝对接,帮助企业快速获取准确的数据信息,作出正确的业务决策。
ETLCloud的功能分为离线数据集成、实时数据集成、数据源管理、监控中心、数据服务开发、用户权限管理等多模块,具有设计高效、开发成本低、数据支持性强、实时数据毫秒级同步、运行监控齐全等特点。
在ETL处理方面为用户提供了丰富且简单易懂的操作选择
如上所示,把不同业务系统的数据通过ETLCloud的一些组件,进行清洗、转换、加载最终放入目标数仓中,这就是ETL的操作流程。
反向ETL是将数据从数据仓库或数据湖中提取出来,然后将其转换和加载回到源系统中,以更新或同步数据。具体步骤如下:
Extract:从数据仓库或数据湖中提取数据,如从数据仓库中提取销售订单、客户、产品等数据。
Transform:对提取的数据进行清洗和转换,如删除重复数据、处理缺失值、转换数据类型等。也可以对数据进行聚合、连接、排序等操作。
Load:将经过转换和处理的数据加载回到源系统中,以便于更新或同步数据。在这个过程中,需要进行数据验证和校验,确保数据的准确性和完整性。
通过比较,我们可以发现反向ETL与经典的ETL的区别在于数据流向的不同。ETL的数据流向是从源系统到目标系统,而反向ETL的数据流向是从目标系统到源系统。
例如我是某团,某团存在着外卖、出行、充电等各种不同的业务,假定我在我的数仓中已经把我的用户的所有数据做了打通,然后我有个模型,预测到某个用户有流失风险,那么需要把该用户相关的数据同步到跟用户进行交互的每个系统中,然后根据后续的一些挽留规则,触发相关的挽留活动。又或者将数仓中的数据流向常见的BI、SaaS、CRM系统中,这些都属于反向ETL的操作。
接下来我们来看看ETLCloud这款工具的反向ETL能力
首先是数据源方面:
ETLCloud支持多种关系数据库以及非关系数据库,能够满足企业各种场景问题。
流程设计中通过使用输入组件可以做到轻松且快速的连接数据源,例如连接mysql数据源,使用库表输入组件,选择目标数据源,配置数据源相关信息即可连接,然后载入目标库表,系统会自动化读取表中的所有信息,包括字段、字段类型,生成相关的sql语句,我们还可以通过绑定规则来对字段输出做处理。
其次是对数据的处理,ETCLoud提供了丰富的数据运算组件和转换组件。
最后就是流入源系统,ETLCloud可以对接各种不同协议的服务,例如Restful、WebService等等,或者通过库表同步组件来实现不同源系统的数据同步,这样就可以完成反向ETL的操作了。
在ETLCloud企业版中还可以根据自己的业务系统需求来自定义制作组件,将一些业务进行组件化,极大简化日常繁杂的工作,提高工作效率。
旺店通反向ETL操作演示:
设计流程表如下:
连接数据源,填写配置获取物品信息表和物品规格信息表
两张表进行join操作,和使用sql语句进行join逻辑一致,配置join表对象,on条件,join后的字段名称即可。
配置on条件
完成后对数据流进行字段映射,将原字段和目标字段一一对应即可。
由流程设计可以看得出来“推送货品档案”和“输出到商品信息表”是需要同时操作的,那么我们可以通过网关的操作来控制流程执行,网关需要两个一起使用,一个用于前置,一个用于后置。
最后就将我们需要执行的分支进行配置并连接在网关上即可,后置网关选择聚合,会根据前置网关进行监听,一旦所有分支执行完成就会执行下一个节点。
以上就是反向ETL的介绍,以及ETLCloud进行反向ETL操作的演示,当然ETLCloud还有许多强大的操作,例如数据同步,数据监控CDC等等操作,在真实的反向ETL中流程会更加复杂,分支会更多,ETLCloud能很好的解决这样的场景,让非开发人员也可以快速上手,提高工作效率。
ETL和反向ETL实际区别是流的方向,理解好这个概念再配合ETLCloud工具,便可以轻松完成复杂的业务流程。