详解数据集成方法ETL、ELT和反转ETL
译文 精选2022-07-11 09:00:00近年来,ETL(extract、transform、load,提取、转换、加载)一直都是数据集成的标准方法。随着云计算的兴起、以及集成式数据自助服务需求的增多,诸如ELT(提取、加载、转换)和反向ETL等新的方法论,正在蓬勃发展。
译者 |陈峻
审校 |孙淑娟
为了协助您为数据管道项目选择合适的数据集成方法,我们将简要地探讨ETL和ELT各自的优缺点,以及如何使用这两种技术。同时,我们也会讨论反向ETL为何成为那些需要快速数据加载、最小化维护、以及高度自动化工作流的更好选择。
ETL和ELT的一般概念
目前,企业面临的一种常见挑战是:需要以多种格式,从多个来源捕获数据,然后将其转移到一到多个数据目标。由于大多数数据转移项目都需要收集多个数据源,因此它们需要拥有一个定义良好的数据管道(即,信息从源头到终点的路径或工作流程)。如果目标与数据源的存储格式不同,那么我们就必须在加载到最终目标之前,对数据进行细化或清理。目前,业界有许多工具、服务和流程,可以在数据管道中,起到一定的应用数据转换与协调的工作。
ETL的流程
ETL是一个数据集成的过程。它使得数据管道项目能够从各种源头顺利地提取数据、转换数据、并将数据结果加载到目标数据库中。无论是ETL还是ELT,数据的转换与集成过程,都会涉及如下三个阶段(如图1所示):
图1:ETL的流程(源自Kai Waehner的《何时使用反向ETL以及何时使用反模式》)
ETL和ELT流程会以不同的顺序执行上述步骤。数据管道团队必须决定是在将数据加载到目标数据存储库之前、还是之后进行数据转换。
ELT的流程
ELT是一种用于整合来自整个组织的数据,以防止出现数据孤岛的方法。数据会经历数据源中被提取,加载到数据仓库中,然后按需进行转换的过程。虽然是要按照应用之需进行转换,但是在ELT流程中,数据应当在存储之前进行转换(如图2所示)。
图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所示)。
图3:逆向ETL流程(源自Kai Waehner的《何时使用反向ETL以及何时使用反模式》)
反向ETL用例
为了利用数据仓库中已经清理和准备好的信息,而不是将数据仓库仅仅视为数据管道中的最终组件,反向ETL用户可以通过使用连接器,来读取数据仓库(如:SAP或SASS)。例如,现代化数据团队可以借助现成的反向ETL方案,从数据仓库中提取数据,为电子邮件营销、客户支持、销售或财务模型提供支持。同时,他们也能够为业务团队提供更深入、更高效、以及更有价值的自助服务。
总地说来,反向ETL可以协助企业实现:
购买与构建反向ETL
当数据团队采用第三方反向ETL工具时,他们可以快速实施运营分析,但到底是该购买,还是自行构建反向ETL?下面我们以设计和构建反向ETL的流程和平台为例,给出企业需要在做出决定之前,慎重考量的三个因素:
小结
译者介绍
陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;经常以线上、线下等方式,开展信息安全类培训与授课。
原文标题: ETL, ELT, and Reverse ETL ,作者:Wayne Yaddow
JAVA如何写XML文件
呵呵,你这个问题,其实写XML很简单的,氛围以下几步: 1.导入DOM4J包,在此我使用dom4j来做。 2.创建dom4j的实例:Document document = (); 3.一级一级的添加节点或者属性,这个具体参照dom4j帮助: Element rootGen = (root); 4.定义以下3个对象,然后进行操作: Writer writer = null; OutputFormat format = null; XMLWriter xmlwriter = null; *********************************************************************************** 附上代码: public void CreateXMl(StudentBean sn){ //创建document对象 Document document = (); //定义根节点Element Element rootGen = (root); //定义根节点ROOT的子节点们 Element nameGen = (Name); (name, 我是中文); Element ageGen = (Age); Element addrGen = (Address); Writer writer = null; OutputFormat format = null; XMLWriter xmlwriter = null; //将定义好的内容写入xml文件中 try { //使用这个writer也可以,只不过遇到中文会乱码哦// writer = new FileWriter(d:/); //进行格式化 format = (); //设定编码 (UTF-8); xmlwriter = new XMLWriter(new FileOutputStream(d:/), format); (document); (); (); (-----------Xmlfile successfully created-------------); } catch (Exception e) { (); (-----------Exception occured during of create xmlfile -------); } }
LGA和PGA封装多少针的AM2接口
PLGA是Plastic Land Grid Array的缩写,即塑料焊盘栅格阵列封装。 由于没有使用针脚,而是使用了细小的点式接口,所以PLGA封装明显比以前的FC-PGA2等封装具有更小的体积、更少的信号传输损失和更低的生产成本,可以有效提升处理器的信号强度、提升处理器频率,同时也可以提高处理器生产的良品率、降低生产成本。 目前Intel公司Socket 775接口的CPU采用了此封装。 CuPGA封装 CuPGA是Lidded Ceramic package Grid Array的缩写,即有盖陶瓷栅格阵列封装。 其与普通陶瓷封装最大的区别是增加了一个顶盖,能提供更好的散热性能以及能保护CPU核心免受损坏。 目前AMD64系列CPU采用了此封装。 FC-PGA封装是反转芯片针脚栅格阵列的缩写,这种封装中有针脚插入插座。 这些芯片被反转,以至片模或构成计算机芯片的处理器部分被暴露在处理器的上部。 通过将片模暴露出来,使热量解决方案可直接用到片模上,这样就能实现更有效的芯片冷却。 为了通过隔绝电源信号和接地信号来提高封装的性能,FC-PGA 处理器在处理器的底部的电容放置区域(处理器中心)安有离散电容和电阻。 芯片底部的针脚是锯齿形排列的。 此外,针脚的安排方式使得处理器只能以一种方式插入插座。 FC-PGA 封装用于奔腾 III 和英特尔 赛扬 处理器,它们都使用 370 针。 FC-PGA2封装 FC-PGA2 封装与 FC-PGA 封装类型很相似,除了这些处理器还具有集成式散热器 (IHS)。 集成式散热器是在生产时直接安装到处理器片上的。 由于 IHS 与片模有很好的热接触并且提供了更大的表面积以更好地发散热量,所以它显著地增加了热传导。 FC-PGA2 封装用于奔腾 III 和英特尔赛扬处理器(370 针)和奔腾 4 处理器(478 针)。 OOI封装 OOI 是 OLGA 的简写。 OLGA 代表了基板栅格阵列。 OLGA 芯片也使用反转芯片设计,其中处理器朝下附在基体上,实现更好的信号完整性、更有效的散热和更低的自感应。 OOI 有一个集成式导热器 (IHS),能帮助散热器将热量传给正确安装的风扇散热器。 OOI 用于奔腾 4 处理器,这些处理器有 423 针。 PPGA封装“PPGA”的英文全称为“Plastic Pin Grid Array”,是塑针栅格阵列的缩写,这些处理器具有插入插座的针脚。 为了提高热传导性,PPGA 在处理器的顶部使用了镀镍铜质散热器。 芯片底部的针脚是锯齿形排列的。 此外,针脚的安排方式使得处理器只能以一种方式插入插座。 S.E.C.C.封装 “S.E.C.C.”是“Single Edge Contact Cartridge”缩写,是单边接触卡盒的缩写。 为了与主板连接,处理器被插入一个插槽。 它不使用针脚,而是使用“金手指”触点,处理器使用这些触点来传递信号。 S.E.C.C. 被一个金属壳覆盖,这个壳覆盖了整个卡盒组件的顶端。 卡盒的背面是一个热材料镀层,充当了散热器。 S.E.C.C. 内部,大多数处理器有一个被称为基体的印刷电路板连接起处理器、二级高速缓存和总线终止电路。 S.E.C.C. 封装用于有 242 个触点的英特尔奔腾II 处理器和有 330 个触点的奔腾II 至强和奔腾 III 至强处理器。 S.E.C.C.2 封装S.E.C.C.2 封装与 S.E.C.C. 封装相似,除了S.E.C.C.2 使用更少的保护性包装并且不含有导热镀层。 S.E.C.C.2 封装用于一些较晚版本的奔腾II 处理器和奔腾 III 处理器(242 触点)。 S.E.P.封装“S.E.P.”是“Single Edge Processor”的缩写,是单边处理器的缩写。 “S.E.P.”封装类似于“S.E.C.C.”或者“S.E.C.C.2”封装,也是采用单边插入到Slot插槽中,以金手指与插槽接触,但是它没有全包装外壳,底板电路从处理器底部是可见的。 “S.E.P.”封装应用于早期的242根金手指的Intel Celeron 处理器。
WIN7中C盘SoftGrid Client文件是什么软件
这个是windows7中应用程序虚拟化软件!何谓程序虚拟化?就是将软件的实体变成虚拟技术!比如说网吧,大型企业可以用到,呵呵,我们一般用户用不到如果您想要删除,可以删除一下试试,删除不了,呵呵,就让他在上面吧
发表评论