啥是ETL、ELT

 

 

ETL就是Extract、Transfrom、Load即抽取、转换、加载三个英文单词首字母的集合。抽取:就是从源系统抽取需要的数据,这些源系统可以是同构也可以是异构的:比如源系统可能是Excel电子表格、XML文件、关系型数据库,而目标系统通常都是关系型的数据仓库。
转换:源系统的数据按照分析目的,转换成目标系统要求的格式。其实这个名词并没有完全表达出这个步骤的目的,更准确的说法应该是数据清洗和数据加工。
加载:把转换后的数据装载到目标数据库。作为联机分析、数据挖掘的基础。
整个ETL过程就像是在源系统和目标系统之间构建一个管道,数据在这个管道里源源不断的流动。而设计一个ETL架构就是要建起起这个管道。这个管道的部署构建就涉及到三个环节,或者说三个位置。分别是Source、Stagearea、Target。对应关系如下:
E——————>   T ——————> L
Source————> Stagearea——> Target
E:抽取,这个活动毫无疑问发生在数据源上,这个节点也就叫做Souce。
T:转换,转换活动通常是ETL中最具伸缩性的环节,换句话说,这个环节的活动可繁可简。最简单的情形下,源系统的数据不需要任何转换,就直接进入目标,这时这个T实际就是没有的。而复杂的情形就多了,比如数据格式转化、数据精度转换、数据清洗、缺失数据补齐、异常数据排除等等。在这种情形下,通常会专门准备一个临时系统,提供足够的软硬件资源来支持这种转换。这个临时系统就叫做Stagearea,也叫做数据登台区,即数据到达终点之前的区域。
L:加载,这个活动毫无悬念的发生在目标数据库中,这个目标数据库叫做Target。
我们明白了什么是ETL,那么ELT就好理解了。ELT也是同样三个单词的首字母组合,只不过是把T、L颠倒了下顺序而已。可就是这个顺序的颠倒,差异就出来了。ETL强调的是先进性数据转换,然后再加载到目标。这个转换过程可能发生在任何地方,可以在原系统进行,也可以在Stagearea进行,也可以在目标系统进行。而ELT是把数据加载到数据仓库后再进行转化,发生的地点只能是目标系统。
这两种方式各有优缺点,如果源系统有多个,比如一个国际型公司,起源数据可能来自世界各地,这时就可以通过部署多个中间节点,从而分散数据转换的压力,有点类似分布式计算的味道,可以提高数据加载效率。因此,ETL非常适用于多个数据源对一个目标的拓扑结构。
而ELT把数据加载到数据仓库在进行转换,通常数据仓库都会部署在高性能主机上,显而易见,这种设计是要充分的利用目标系统的处理能力,大树底下好乘凉吗。ELT的另一个优点是可以充分利用产品的内置能力,如果ETL的源、目标都是相同的产品,比如都是Oracle数据库,现在RDBMS内置的数据处理引擎越来越强大,ELT能够充分利用这些内置引擎。
所以,ETL还是ELT其实并没有绝对的差异,也没有孰优孰劣,最终还是要根据现实环境选择最适合的。
ETL工具的选择   在数据仓库项目中该如何选择ETL工具呢?一般来说需要考虑以下几个方面:   (1)对平台的支持程度。   (2)对数据源的支持程度。   (3)抽取和装载的性能是不是较高,且对业务系统的性能影响大不大,侵入性高不高。   (4)数据转换和加工的功能强不强。   (5)是否具有管理和调度功能。   (6)是否具有良好的集成性和开放性。

转载于:https://www.cnblogs.com/sthinker/p/5941462.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python无法导入numpy_python – Pycharm无法导入numpy

我的系统是Mac OS X.我首先通过macport安装numpy然后下载Pycharm并发现无论我选择哪种解释器我都无法导入numpy.结果如下:/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 "/Users/erleye/Documents/Python/Pycharm Projects/test.py"T…

DOM Element对象的offsetXXX方法

原生js的offset***方法 c.offsetLeft 和 c.offsetTop 一般指当前元素的CSS边框相对于其offsetParent的X和Y坐标c.offsetHeight 和 c.offsetWidth 当前元素及其所有内容的高度&#xff0c;宽度。c.offsetParent 大多数元素都的都是指<body> 参考《javascript权威指南 第六…

weblogic10异常:org.hibernate.hql.ast.HqlToken

转自&#xff1a;http://www.programgo.com/article/68682994452/ 在做查询的时候&#xff0c;报出 org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken这 个错误&#xff08;是通过数据源连接的&#xff09; 解决方法如下&#xff1a;…

出现一个黑色框按不动_创意 | 这才是走心的衣架设计,给衣服一个高逼格的家!...

12月&#xff0c;来到了年底剁手的时节自己新买的秋冬衣服&#xff0c;加上以前的衣服几乎都要把你的衣橱给撑爆了只恨衣架不够用&#xff0c;够用也没有空间可以挂衣服了也许以前的衣架只是为了挂衣服&#xff0c;让空间变得整洁一些&#xff1b;现如今&#xff0c;衣架从样式…

windows搜索工具_加快搞定并替代 Windows 10 搜索框搜索文件速度的免费小工具

毫无疑问&#xff0c;Everything 搜索是 Windows 操作系统上可用的最快的搜索工具之一。它比内置的 Windows 搜索工具快得多&#xff0c;因为它几乎立即返回结果&#xff0c;并支持许多自定义选项以优化搜索。而今天大眼仔要给大家分享的是可以把 Everything 固定的任务栏上的免…

同步和异步简述

同步&#xff1a;执行当前进程&#xff0c;当进程执行到某个请求时&#xff0c;若该请求需要一段时间才返回信息&#xff0c;那么这个进程将会一直等待下去直到请求返回。 异步&#xff1a;与同步相反&#xff0c;他不会等到直到信息返回才继续执行下去&#xff0c;而是直接执行…

计算鼠标移动的精确速度

效果 要达到无论在什么机器上&#xff0c;算出来的速度是一样的。 思路&#xff1a; 计算两次mousemove之间的位移和时间&#xff0c;就可以算出精确的速度 不要将onMousemove的调用时间间隔看成是均等的&#xff0c;事实上也不是均等的&#xff0c;而是根据机器的运行状况…

python数组元素复制_python的numpy数组 的复制问题?

还是一句一句来分析吧第一句vector numpy.array([5, 10, 15, 20])用numpy生成一个array对象 &#xff1a; vector然后第二句equal_to_ten_or_five (vector 10) | (vector 5)这里有个或操作首先 vector10 这个其实是把vector里面的所有对象与10对比&#xff0c;相同为True&a…

如何提高生产力(二)、软件的开发与采购

随着薪酬上升、劳动力人口萎缩以及文化变迁&#xff0c;公司利用廉价并卖力工作的员工获得优势的日子已经过去了。对于工厂制造企业连招聘一个技工都是很困难的事情&#xff0c;而软件企业招聘一个熟练技术的程序员更是很难。 人工成本的上升已经让行业感受到了很大的压力&…

threejs中坐标系转换和实现物体跟随鼠标移动

坐标系转换 下面函数可以将鼠标所在点的屏幕坐标转化成一个Threejs三维坐标&#xff1a; convertTo3DCoordinate(clientX,clientY){var mv new THREE.Vector3((clientX / window.innerWidth) * 2 - 1,-(clientY / window.innerHeight) * 2 1,0.5 );mv.unproject(this.camera…

excel线性拟合的斜率_协方差分析:方差分析与线性回归的统一

转自个人微信公众号【Memo_Cleon】的统计学习笔记&#xff1a;协方差分析&#xff1a;方差分析与线性回归的统一。在进行数据分析时&#xff0c;有时候我们会遇到数据基线不平的情况&#xff0c;比如两样本的t检验的示例&#xff0c;比较Labe和Meto用药13周的降压效果&#xff…

解决Jenkins打不开浏览器问题

参考&#xff1a;http://blog.csdn.net/achang21/article/details/45096003 1.控制面板禁用掉jenkins服务 2.java -jar jenkins.war提示需要高级别的jdk 去下载jdk 因为本机已经存在了1.6&#xff0c;需要1.8 并没有卸载原有的1.6版本&#xff0c;直接网上下载的1.8并安装 解决…

状态模式和策略模式的区别

区别主要体现在行为上&#xff0c;而不是结构上&#xff0c;所以&#xff0c;看时序图就能很好的看出两者的区别。 状态模式 看1.4&#xff0c;状态B是状态A创建的&#xff0c;也就是由系统本身控制的。调用者不能直接指定或改变系统的状态转移 所以&#xff0c;状态是系统自…

如何截获打印机文件_打印、复印还不会,如何在办公室里混?全程详细教学

我们在职场中&#xff0c;经常需要用到打印机&#xff0c;相信很多人都还不会打印、复印文件&#xff0c;求人不如求己&#xff0c;今天就来详细教学&#xff0c;一起来学习吧。如何使用打印机&#xff1f;首先用一根电源线和一根USB线&#xff0c;将电脑主机与打印机连接&…

外观模式案例分析

策划案 要实现选中和未选中功能&#xff1a; 未选中状态&#xff1a;点击图形进入选中状态 选中状态&#xff1a;点击<按钮进入未选中状态 实现代码 请问这是什么模式&#xff1f; import TransformController from ./TransformController //操作框控制器类 import To…

UICollectionView reloadData后cell被隐藏

在使用UICollectionView的页面执行: [self.collectionView reloadData]; 执行后&#xff0c;页面变为空白页&#xff0c;调试发现&#xff0c;执行reloadData 后UICollectionView的cell的hidden都变为YES. stackoverflow上很多人说这是UICollectionView的一个bug, 有人给出了解…

len在python_len在python

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

【leetcode❤python】172. Factorial Trailing Zeroes

#-*- coding: UTF-8 -*-#给定一个整数N&#xff0c;那么N的阶乘N&#xff01;末尾有多少个0&#xff1f; 比如&#xff1a;N10&#xff0c;N&#xff01;3628800,N&#xff01;的末尾有2个0。#所有的尾部的0可以看做都是2*5得来的&#xff0c;所以通过计算所有的因子中2和5的个…

input ios问题 小程序_小程序可以解决哪些问题??

小程序是近几年移动互联网领域的热点&#xff0c;随着移动互联网在消费端逐渐进入到了存量时代&#xff0c;小程序成为了互联网平台向各个领域垂直发展的重要策略&#xff0c;而广大的中小创业者要想充分利用大型互联网平台的流量资源&#xff0c;小程序也是一个非常重要的渠道…

切换dns批处理模板

网速慢有时候是dns造成的。我们默认使用公司的dns&#xff0c;公司很可能只有两台dns服务器&#xff0c;很容易成为单点&#xff0c;当访问人数多的时候&#xff0c;延迟会变高&#xff0c;所以网址解析很慢&#xff0c;上网就慢。 可以设置成阿里的dns,有些情况下就会变快。但…