加入收藏 | 设为首页 | 会员中心 | 我要投稿 西双版纳站长网 (https://www.0691zz.com.cn/)- 数据计算、IT业界、服务器、教程、云日志!
当前位置: 首页 > 云计算 > 正文

详解数据集成方法ETL、ELT和反转ETL

发布时间:2022-07-14 09:40:11 所属栏目:云计算 来源:互联网
导读:为了协助您为数据管道项目选择合适的数据集成方法,我们将简要地探讨ETL和ELT各自的优缺点,以及如何使用这两种技术。同时,我们也会讨论反向ETL为何成为那些需要快速数据加载、最小化维护、以及高度自动化工作流的更好选择。 ETL和ELT的一般概念 目前,企业
  为了协助您为数据管道项目选择合适的数据集成方法,我们将简要地探讨ETL和ELT各自的优缺点,以及如何使用这两种技术。同时,我们也会讨论反向ETL为何成为那些需要快速数据加载、最小化维护、以及高度自动化工作流的更好选择。
 
 
 
  ETL和ELT的一般概念
  目前,企业面临的一种常见挑战是:需要以多种格式,从多个来源捕获数据,然后将其转移到一到多个数据目标。由于大多数数据转移项目都需要收集多个数据源,因此它们需要拥有一个定义良好的数据管道(即,信息从源头到终点的路径或工作流程)。如果目标与数据源的存储格式不同,那么我们就必须在加载到最终目标之前,对数据进行细化或清理。目前,业界有许多工具、服务和流程,可以在数据管道中,起到一定的应用数据转换与协调的工作。
 
  ETL的流程
  ETL是一个数据集成的过程。它使得数据管道项目能够从各种源头顺利地提取数据、转换数据、并将数据结果加载到目标数据库中。无论是ETL还是ELT,数据的转换与集成过程,都会涉及如下三个阶段(如图1所示):
 
  提取——使用数据库查询或变更数据捕获(change data capture,CDC)流程,从源系统(如:SAS、在线、本地)提取数据。提取后,数据会被转移到暂存区域,以待进一步处理。
  转换——数据被清理、处理、转换、充实后,会被转换为目标数据管道、数据仓库、数据库或数据湖使用的格式。
  加载——将原始数据和转换后的数据加载到目标系统中。此过程会涉及到写入分隔文件、在数据库中创建模式、以及用累积或聚合的数据去覆盖现有的数据。
 
 
  图1:ETL的流程(源自Kai Waehner的《何时使用反向ETL以及何时使用反模式》)
 
  ETL和ELT流程会以不同的顺序执行上述步骤。数据管道团队必须决定是在将数据加载到目标数据存储库之前、还是之后进行数据转换。
 
  ELT的流程
  ELT是一种用于整合来自整个组织的数据,以防止出现数据孤岛的方法。数据会经历数据源中被提取,加载到数据仓库中,然后按需进行转换的过程。虽然是要按照应用之需进行转换,但是在ELT流程中,数据应当在存储之前进行转换(如图2所示)。
 
  提取——与ETL相同。
  加载——与ETL不同,数据直接(即,无需进行清理、扩充、转换)被加载和交付到目标系统(通常需要考虑目标模式和数据类型的各种迁移)。
  转换——在加载数据后,目标平台会根据业务报告的目的进行转换。一些公司会利用dbt等工具,来转换其目标数据。因此,在ELT管道中,我们应按需对目标数据执行转换。
 
 
  图2:ELT的流程(源自Kai Waehner的《何时使用反向ETL以及何时使用反模式》)
 
  ELT会对集成过程中涉及的步骤进行重新排序,使得转换发生在最后,而不是中间。ELT的流程可以通过切换阶段顺序,在不考虑结构或格式的情况下,将数据加载到可接受原始数据的数据湖中,并且允许进行即时的数据提取和加载。
 
  促成采用ELT的另一个因素是:基于云的数据仓库被广泛地采用与实施。云数据仓库解决方案提供了计算和存储之间的完全分离,以及存储无限数据的能力。如今,大多数数据仓库都是被托管的。这就意味着企业既不需要购买或管理任何硬件或存储设备,也不需要安装软件或考虑扩展。这些都将由云服务提供商来管理与负责。据此,企业可以在较短的时间内,配置出云托管的数据仓库。
 
  ETL与ELT:属性、功能和用例
  就ETL与ELT的用例而言,并不存在“一边倒”的现象。我们通过下表总结了两者在不同属性上的区别:
 
  属性
 
  ETL
 
  ELT
 
  最适合于……
 
  结构化数据、历史遗留系统、以及关系型数据库;在加载到数据仓库之前转换数据
 
  更快、更及时的数据加载,结构化和非结构化的数据,以及庞大且不断增长的数据,按需转换数据
 
  支持非结构化数据?
 
  主要用于本地的关系型数据
 
  随时可以支持非结构化的数据
 
  支持数据湖?
 
  不支持数据湖
 
  支持数据湖
 
  查找
 
  事实数据和维度都可用于暂存区
 
  由于提取和加载发生在同一个操作中,因此所有数据皆可用
 
  加载时间
 
  数据最初被加载到暂存中,然后进入目标系统
 
  数据一次性被加载到目标系统中
 
  数据输出
 
  通常被用于需要在上传到关系型数据仓库之前,实现结构化的本地数据
 
  使用结构化、半结构化和非结构化数据,最适合在提供了大容量存储和计算能力的云环境中,处理海量数据,使数据湖能够按需快速存储和转换数据
 
  数据加载的性能
 
  由于它是一个多阶段的过程,因此数据加载的时间比其他替代品更长
 
  由于节省了转换的等待时间,而且数据会被一次性加载到目标数据库中,因此数据加载的速度更快
 
  转换的性能
 
  数据转换可能会很慢
 
  由于是在加载后按需完成的,因此数据转换完成得更快
 
  聚合
 
  复杂性会随着数据量和种类的增加而增多
 
  目标平台的强大功能可以快速地处理大量数据
 
  数据部署
 
  基于本地或云端
 
  通常基于云端
 
  分析的灵活性
 
  用例和报告模型都已被明确定义
 
  随着模式的发展,随时添加数据,分析师可以构建目标仓库的新视图
 
  合规
 
  更符合GDPR、HIPAA和CCPA标准;用户可以避免将敏感数据加载到目标系统
 
  会暴露个人数据,无法不遵守GDPR、HIPAA和CCPA标准
 
  实施
 
  提供各种工具和支持技术,更易于实施
 
  需要有适当的技能来实施和维护的团队
 
  反向ETL的一般概念
  反向ETL是一种提取已清理的和处理过的数据架构。它会将数据从数据仓库(或数据湖/集市)复制到一个或多个操作系统。数据可以被重新引入诸如Salesforce等其他应用程序,可用于业务运营和预测。通过操作已提取的数据源,各类用户可以使用常用的工具来访问数据,并获取相关的洞见。作为现代化数据技术栈的组件,反向ETL允许企业开展那些比单独使用商业智能(BI)工具,更为复杂的分析。
 
  作为一种战略性全新的集成流程,反向ETL可以减少那些快速发展型企业在数据分析上花费的时间。该流程更专注于将数据与业务用户的操作工具相同步,以激活数据仓库中的数据。用户必须事先定义好数据,并将其映射到最终目的地的适当列/字段上。

(编辑:西双版纳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读