6

详解数据集成方法ETL、ELT和反转ETL-51CTO.COM

 1 year ago
source link: https://www.51cto.com/article/713616.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

详解数据集成方法ETL、ELT和反转ETL-51CTO.COM

详解数据集成方法ETL、ELT和反转ETL 译文
作者: 陈峻 2022-07-11 09:00:00
近年来,ETL(extract、transform、load,提取、转换、加载)一直都是数据集成的标准方法。随着云计算的兴起、以及集成式数据自助服务需求的增多,诸如ELT(提取、加载、转换)和反向ETL等新的方法论,正在蓬勃发展。

​译者 | 陈峻

审校 | 孙淑娟

为了协助您为数据管道项目选择合适的数据集成方法,我们将简要地探讨ETL和ELT各自的优缺点,以及如何使用这两种技术。同时,我们也会讨论反向ETL为何成为那些需要快速数据加载、最小化维护、以及高度自动化工作流的更好选择。

e707a1f15e2cdd6363e0170bdf9acf9120cf86.jpg

ETL和ELT的一般概念

目前,企业面临的一种常见挑战是:需要以多种格式,从多个来源捕获数据,然后将其转移到一到多个数据目标。由于大多数数据转移项目都需要收集多个数据源,因此它们需要拥有一个定义良好的数据管道(即,信息从源头到终点的路径或工作流程)。如果目标与数据源的存储格式不同,那么我们就必须在加载到最终目标之前,对数据进行细化或清理。目前,业界有许多工具、服务和流程,可以在数据管道中,起到一定的应用数据转换与协调的工作。

ETL的流程

ETL是一个数据集成的过程。它使得数据管道项目能够从各种源头顺利地提取数据、转换数据、并将数据结果加载到目标数据库中。无论是ETL还是ELT,数据的转换与集成过程,都会涉及如下三个阶段(如图1所示):

  1. 提取——使用数据库查询或变更数据捕获(change data capture,CDC)流程,从源系统(如:SAS、在线、本地)提取数据。提取后,数据会被转移到暂存区域,以待进一步处理。
  2. 转换——数据被清理、处理、转换、充实后,会被转换为目标数据管道、数据仓库、数据库或数据湖使用的格式。
  3. 加载——将原始数据和转换后的数据加载到目标系统中。此过程会涉及到写入分隔文件、在数据库中创建模式、以及用累积或聚合的数据去覆盖现有的数据。
076d5e15073144f3f7580879788a7622e190c2.png

图1:ETL的流程(源自Kai Waehner的《何时使用反向ETL以及何时使用反模式》)

ETL和ELT流程会以不同的顺序执行上述步骤。数据管道团队必须决定是在将数据加载到目标数据存储库之前、还是之后进行数据转换。

ELT的流程

ELT是一种用于整合来自整个组织的数据,以防止出现数据孤岛的方法。数据会经历数据源中被提取,加载到数据仓库中,然后按需进行转换的过程。虽然是要按照应用之需进行转换,但是在ELT流程中,数据应当在存储之前进行转换(如图2所示)。

  1. 提取——与ETL相同。
  2. 加载——与ETL不同,数据直接(即,无需进行清理、扩充、转换)被加载和交付到目标系统(通常需要考虑目标模式和数据类型的各种迁移)。
  3. 转换——在加载数据后,目标平台会根据业务报告的目的进行转换。一些公司会利用dbt等工具,来转换其目标数据。因此,在ELT管道中,我们应按需对目标数据执行转换。
a1582318876531a2cea4794d7817730efa0c6d.png

图2:ELT的流程(源自Kai Waehner的《何时使用反向ETL以及何时使用反模式》)

ELT会对集成过程中涉及的步骤进行重新排序,使得转换发生在最后,而不是中间。ELT的流程可以通过切换阶段顺序,在不考虑结构或格式的情况下,将数据加载到可接受原始数据的数据湖中,并且允许进行即时的数据提取和加载。

促成采用ELT的另一个因素是:基于云的数据仓库被广泛地采用与实施。云数据仓库解决方案提供了计算和存储之间的完全分离,以及存储无限数据的能力。如今,大多数数据仓库都是被托管的。这就意味着企业既不需要购买或管理任何硬件或存储设备,也不需要安装软件或考虑扩展。这些都将由云服务提供商来管理与负责。据此,企业可以在较短的时间内,配置出云托管的数据仓库。

ETL与ELT:属性、功能和用例

就ETL与ELT的用例而言,并不存在“一边倒”的现象。我们通过下表总结了两者在不同属性上的区别:

最适合于……

结构化数据、历史遗留系统、以及关系型数据库;在加载到数据仓库之前转换数据

更快、更及时的数据加载,结构化和非结构化的数据,以及庞大且不断增长的数据,按需转换数据

支持非结构化数据?

主要用于本地的关系型数据

随时可以支持非结构化的数据

支持数据湖?

不支持数据湖

支持数据湖

事实数据和维度都可用于暂存区

由于提取和加载发生在同一个操作中,因此所有数据皆可用

数据最初被加载到暂存中,然后进入目标系统

数据一次性被加载到目标系统中

通常被用于需要在上传到关系型数据仓库之前,实现结构化的本地数据

使用结构化、半结构化和非结构化数据,最适合在提供了大容量存储和计算能力的云环境中,处理海量数据,使数据湖能够按需快速存储和转换数据

数据加载的性能

由于它是一个多阶段的过程,因此数据加载的时间比其他替代品更长

由于节省了转换的等待时间,而且数据会被一次性加载到目标数据库中,因此数据加载的速度更快

转换的性能

数据转换可能会很慢

由于是在加载后按需完成的,因此数据转换完成得更快

复杂性会随着数据量和种类的增加而增多

目标平台的强大功能可以快速地处理大量数据

基于本地或云端

通常基于云端

分析的灵活性

用例和报告模型都已被明确定义

随着模式的发展,随时添加数据,分析师可以构建目标仓库的新视图

更符合GDPR、HIPAA和CCPA标准;用户可以避免将敏感数据加载到目标系统

会暴露个人数据,无法不遵守GDPR、HIPAA和CCPA标准

提供各种工具和支持技术,更易于实施

需要有适当的技能来实施和维护的团队

反向ETL的一般概念

反向ETL是一种提取已清理的和处理过的数据架构。它会将数据从数据仓库(或数据湖/集市)复制到一个或多个操作系统。数据可以被重新引入诸如Salesforce等其他应用程序,可用于业务运营和预测。通过操作已提取的数据源,各类用户可以使用常用的工具来访问数据,并获取相关的洞见。作为现代化数据技术栈的组件,反向ETL允许企业开展那些比单独使用商业智能(BI)工具,更为复杂的分析。

作为一种战略性全新的集成流程,反向ETL可以减少那些快速发展型企业在数据分析上花费的时间。该流程更专注于将数据与业务用户的操作工具相同步,以激活数据仓库中的数据。用户必须事先定义好数据,并将其映射到最终目的地的适当列/字段上。

同时,由于企业的数据存储(如,数据参考或关系数据库)已成为一种并非所有人都可以完全访问到的存储库,因此,我们需要通过反向ETL,来为不同的业务角色提供基本的数据(如图3所示)。

26510c265e51e3e5b916516995e7a0ed059ec8.png

图3:逆向ETL流程(源自Kai Waehner的《何时使用反向ETL以及何时使用反模式》)

反向ETL用例

为了利用数据仓库中已经清理和准备好的信息,而不是将数据仓库仅仅视为数据管道中的最终组件,反向ETL用户可以通过使用连接器,来读取数据仓库(如:SAP或SASS)。例如,现代化数据团队可以借助现成的反向ETL方案,从数据仓库中提取数据,为电子邮件营销、客户支持、销售或财务模型提供支持。同时,他们也能够为业务团队提供更深入、更高效、以及更有价值的自助服务。

总地说来,反向ETL可以协助企业实现:

  • 业务响应——快速跟踪业务应用和数据的变化,并做出反应。
  • 业务分析——为业务团队的分析工作流程提供洞见,以便他们做出更多以数据为依据的决策。
  • 数据基础设施——随着源系统数量的增加,反向ETL现在已成为能够快速、有效地操作数据仓库、以及数据湖中数据的重要工具。
  • 为云应用程序复制数据——增强各种报告功能,并能及时查找信息。

购买与构建反向ETL

当数据团队采用第三方反向ETL工具时,他们可以快速实施运营分析,但到底是该购买,还是自行构建反向ETL?下面我们以设计和构建反向ETL的流程和平台为例,给出企业需要在做出决定之前,慎重考量的三个因素:

  1. 构建数据连接器——将数据从仓库传输到下游操作系统,往往需要集成API连接器。这是一个的复杂工作。如果您选择设计和构建反向ETL、及其相关流程,就需要将ETL管道的构建流程,分配给开发团队。
  2. 为长期维护做准备——一旦您的开发团队推出了数据连接器,那么就需要针对API规范的经常性变化,保持连接器的更新。
  3. 可扩展性和可靠性设计——数据工程师需要确保反向ETL管道能够被快速开发,以便跟随企业的发展,有效地管理数据的激增。而且,反向ETL管道必须是可靠的,不会出现性能或数据传输上的问题。

在创建数据管道的过程中,最繁重、且最耗时的步骤便是:从各种来源提取数据,然后测试整个过程。其中,同步每个数据源的收集过程,往往需要各个层面的大量专业知识。如果您和您的团队对此感兴趣的话,请参考如下链接:

陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;经常以线上、线下等方式,开展信息安全类培训与授课。

原文标题:ETL, ELT, and Reverse ETL​,作者:Wayne Yaddow​


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK