写点什么

缺少反向 ETL 能力?ETLCloud 帮你清障

作者:RestCloud
  • 2023-12-18
    广东
  • 本文字数:2305 字

    阅读完需:约 8 分钟

缺少反向ETL能力?ETLCloud帮你清障

一、什么是反向 ETL

ETL,全称 Extract-Transform-Load,它是将大量的原始数据经过提取(extract)、转换(transform)、加载(load)到目标存储数据仓库的过程,那么反向 ETL 我们就可以理解为从数据仓库或数据湖中将数据反向加载回源系统的过程。


反向 ETL 常见于以下情况:


  • 数据修正:当数据仓库中的数据发生错误或需要纠正时,可以使用反向 ETL 将已经经过清洗和转换的数据重新加载回源系统,以修复数据错误。

  • 数据迁移:当企业需要将数据从数据仓库迁移回源系统时,可以使用反向 ETL 将数据从数据仓库或数据湖中提取并加载回原始系统,以保持数据的完整性和一致性。

  • 数据回溯:某些情况下,由于法规要求、合规审计或业务需求,需要对特定时间段内的数据进行回溯。通过反向 ETL,可以将历史数据从数据仓库中加载回源系统,实现数据的回溯和审计。


反向 ETL 的步骤通常包括以下几个阶段:


  • 提取数据:从数据仓库或数据湖中提取需要反向加载的数据。这可以通过查询数据仓库或使用特定的数据提取工具来完成。

  • 转换数据:对提取的数据进行必要的转换和处理,以使其符合源系统的数据结构和要求。这可能涉及到数据格式转换、字段映射、数据清洗等操作。

  • 加载数据:将转换后的数据加载回源系统中的相应表或数据模型中。这可以通过调用源系统的 API、直接插入数据库或使用 ETL 工具来实现。


需要注意的是,反向 ETL 过程需要谨慎处理,确保数据的完整性和一致性。在进行反向 ETL 之前,应该进行充分的测试和验证,以确保数据加载的准确性和有效性,反向 ETL 因为要对接不同的数据仓库以及不同的运营 SaaS 系统,是个共性并且比较繁琐的事情,而如果有专门的公司做专门的事情,真正需要做反向 ETL 的企业就不需要自己去进行进一步的开发,集成对应的反向 ETL 服务就可以了,投入低还能有更高的稳定性和可靠性,何乐而不为呢,ETLCloud 便是这个领域的得力好手。

二、ETLCloud 的反向 ETL 操作


ETLCloud 又称数据集成(DataOps),通过自动化数据转换和集成来实现企业内部和外部数据的无缝对接,帮助企业快速获取准确的数据信息,作出正确的业务决策。


ETLCloud 的功能分为离线数据集成、实时数据集成、数据源管理、监控中心、数据服务开发、用户权限管理等多模块,具有设计高效、开发成本低、数据支持性强、实时数据毫秒级同步、运行监控齐全等特点。


在 ETL 处理方面为用户提供了丰富且简单易懂的操作选择



如上所示,把不同业务系统的数据通过 ETLCloud 的一些组件,进行清洗、转换、加载最终放入目标数仓中,这就是 ETL 的操作流程。


反向 ETL 是将数据从数据仓库或数据湖中提取出来,然后将其转换和加载回到源系统中,以更新或同步数据。具体步骤如下:


  1. Extract:从数据仓库或数据湖中提取数据,如从数据仓库中提取销售订单、客户、产品等数据。

  2. Transform:对提取的数据进行清洗和转换,如删除重复数据、处理缺失值、转换数据类型等。也可以对数据进行聚合、连接、排序等操作。

  3. 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 工具,便可以轻松完成复杂的业务流程。


用户头像

RestCloud

关注

还未添加个人签名 2023-06-07 加入

还未添加个人简介

评论

发布
暂无评论
缺少反向ETL能力?ETLCloud帮你清障_数据仓库_RestCloud_InfoQ写作社区