译者|陈军审稿人|孙淑娟,以及如何使用这两种技术。同时,我们还将讨论为什么逆向ETL对于那些需要快速数据加载、最少维护和高度自动化工作流的人来说是更好的选择。ETL和ELT的一般概念如今,企业面临的一个共同挑战是需要从多个来源以多种格式捕获数据,然后将其传输到一个或多个数据目标。由于大多数数据传输项目需要收集多个数据源,因此它们需要有一个定义明确的数据管道(即信息从源到目的地所采用的路径或工作流)。如果目标以与数据源不同的格式存储,那么我们必须在将数据加载到最终目标之前优化或清理数据。目前,业界有很多工具、服务和流程可以在数据管道中转换和协调应用程序数据。ETL过程ETL是一个数据集成过程。它使数据管道项目能够顺利地从各种来源提取数据,转换数据,并将数据结果加载到目标数据库中。无论是ETL还是ELT,数据转换和集成过程都会涉及以下三个阶段(如图1所示):抽取——使用数据库查询或变更数据捕获(CDC)过程,从源系统(如:SAS、在线、本地)来提取数据。提取后,数据被传输到暂存区等待进一步处理。转换——数据经过清理、处理、转换、丰富后,转换为目标数据管道、数据仓库、数据库或数据湖使用的格式。加载-将原始数据和转换后的数据加载到目标系统中。此过程涉及编写带分隔符的文件、在数据库中创建模式以及使用累积或聚合的数据覆盖现有数据。图1:ETL的过程(来自KaiWaehner的《何时使用反向ETL以及何时使用反模式》)ETL和ELT过程以不同的顺序执行上述步骤。数据管道团队必须决定是在将数据加载到目标数据存储库之前还是之后对其进行转换。ELT的流程ELT是一种集成来自整个组织的数据以防止数据孤岛的方法。数据从数据源中提取,加载到数据仓库中,并根据需要进行转换。虽然转换是根据应用程序的需要进行的,但在ELT过程中,数据在存储之前应该进行转换(如图2所示)。提取-与ETL相同。加载——与ETL不同,数据被加载并直接交付(即,没有清理、扩充、转换)到目标系统(通常考虑目标模式和数据类型的各种迁移)。转换-加载数据后,目标平台会对其进行转换以用于业务报告目的。一些公司使用诸如dbt之类的工具来转换他们的目标数据。因此,在ELT管道中,我们应该按需对目标数据进行转换。图2:ELT流程(源自KaiWaehner的《何时使用反向ETL以及何时使用反模式》)。ELT重新排列集成过程中涉及的步骤,以便转换发生在最后,而不是在中间。ELT过程可以通过切换阶段的顺序将数据加载到接受原始数据的数据湖中,无论结构或格式如何,并允许即时数据提取和加载。促成采用ELT的另一个因素是基于云的数据仓库的广泛采用和实施。云数据仓库解决方案提供了计算和存储的完全分离,以及存储无限数据的能力。今天,大多数数据仓库都是托管的。这意味着企业无需购买或管理任何硬件或存储、安装软件或考虑扩展。这些将由云服务提供商管理和负责。相应地,企业可以在较短的时间内配置云托管数据仓库。ETL和ELT:属性、功能和用例就ETL和ELT的用例而言,不存在“片面”现象。我们通过下表总结了两者在不同属性上的区别:属性ETLELT最适合……结构化数据、遗留系统、关系数据库;在加载到数据仓库之前更快、更及时地转换数据加载结构化和非结构化数据,以及庞大且不断增长的数据,按需转换数据以支持非结构化数据?主要用于本地关系数据可以随时支持非结构化数据支持数据湖吗?不支持数据湖支持数据湖查找事实数据和维度在暂存区均可用由于提取和加载发生在同一操作中,所有数据在加载时可用数据最初加载到暂存区,然后加载到目标系统data加载到目标系统后,数据输出通常用于需要在上传到关系数据仓库之前进行结构化的本地数据。使用结构化、半结构化和非结构化数据最适合在云环境中提供大容量存储和计算能力来处理海量数据,使数据湖能够按需快速存储和转换数据数据负载性能由于它是一个多阶段的过程,由于节省了数据加载时间比其他备选方案更长转换的等待时间减少,并且一次将数据加载到目标数据库中,因此数据加载更快转换的性能数据转换可能缓慢由于数据转换是在加载后按需完成的,因此数据转换完成得更快快速聚合复杂性随着数据量和种类的增加而增长目标平台的能力可以快速处理大量数据数据部署是本地或云端基于通常基于云的分析灵活性用例和报告模型被很好地定义为模型开发,随时添加数据,分析师可以购买新的目标仓库Compliance视图更符合GDPR、HIPAA和CCPA标准;用户可以避免在将敏感数据加载到目标系统时暴露个人数据,并且不能不遵守GDPR、HIPAA和CCPA标准实施CCPA提供了各种工具和支持技术,更易于实施。一个需要具备适当技能来实施和维护的团队。反向ETL的一般概念。反向ETL是一种用于提取经过清理和处理的数据的体系结构。它将数据从数据仓库(或数据湖/集市)复制到一个或多个操作系统。数据可以重新引入其他应用程序,例如Salesforce,并可用于业务运营和预测。通过操作提取的数据源,所有类型的用户都可以使用通用工具访问数据并获得相关见解。作为现代数据技术堆栈的一个组成部分,反向ETL允许组织进行比单独使用商业智能(BI)工具更复杂的分析。反向ETL作为一种战略性的新集成流程,可以减少快速成长的企业花在数据分析上的时间。该过程更侧重于将数据与业务用户的操作工具同步,以激活数据仓库中的数据。用户必须提前定义数据并将其映射到最终目的地中的适当列/字段。同时,由于企业数据存储(如数据引用或关系型数据库)已经成为一个并非所有人都能完全访问的存储库,我们需要通过反向ETL为不同的业务角色提供基础数据。数据(如图3所示)。图3:反向ETL过程(来自KaiWaehner的《何时使用反向ETL以及何时使用反模式》)反向ETL用例为了利用数据仓库中已经清理和准备的信息,而不是仅将数据仓库视为数据管道中的最终组件,反向ETL用户可以使用连接器读取数据仓库(如SAP或SASS)。例如,现代数据团队可以利用现成的反向ETL解决方案从数据仓库中提取数据,以支持电子邮件营销、客户支持、销售或财务模型。同时,它们还可以为业务团队提供更深入、更高效、更有价值的自助服务。一般来说,反向ETL可以帮助企业实现:业务响应——快速跟踪业务应用和数据的变化,并做出响应。业务分析-提供对业务团队分析工作流程的见解,以便他们可以做出更多数据驱动的决策。数据基础设施——随着源系统数量的增加,反向ETL现在是快速高效地操作数据仓库和数据湖中数据的重要工具。为云应用程序复制数据-增强各种报告功能并能够及时查找信息。购买VS自建反向ETL当数据团队采用第三方反向ETL工具时,可以快速实现运维分析,但是否应该自己购买或自建反向ETL?下面我们以设计和构建反向ETL的流程和平台为例,给出企业在做决定前需要慎重考虑的三个因素:构建数据连接器——将数据从仓库传输到下游操作系统,往往需要集成API连接器。这是一项复杂的工作。如果选择设计构建反向ETL及其相关流程,则需要将ETL流水线的构建流程分配给开发团队。为长期维护做好准备——一旦您的开发团队推出了数据连接器,就该更新连接器以应对API规范的频繁更改。可扩展性和可靠性设计——数据工程师需要确保能够快速开发反向ETL管道,以跟上企业发展的步伐,并有效地管理激增的数据。此外,反向ETL管道必须可靠,没有性能或数据传输问题。总结创建数据管道最繁重和最耗时的步骤是从各种来源提取数据,然后测试整个过程。其中,同步各个数据源的采集过程往往需要大量的各个层面的专业知识。如果您和您的团队对此感兴趣,请参考以下链接:GartnerResearch(2021),《Gartner数据集成工具的魔力象限》GartnerResearch(2020),《数据集成工具的关键能力》KaiWaehner,《何时使用反向ETL以及何时使用反模式》StephenRoddewig,《ETL与ELT:有什么区别?哪个更好?》JulianChen,51CTO社区编辑,拥有十余年IT项目实施经验,善于把控内外部资源和风险,专注于通信网络和信息安全知识和经验;持续以博文、专题、翻译等形式分享前沿技术和新知识;经常在线上和线下开展信息安全培训和讲座。原标题:ETL,ELT,andReverseETL,作者:WayneYaddow
