Kettle学习系列之数据仓库、数据整合、ETL、ELT和EII之间的区别?
不多说,直接上干货!
在数据仓库领域里,的一个重要概念就是数据整合(data intergration)。数据整合它就是把不同数据库中的数据整合到一起,对外提供统一的数据视图。
数据整合最典型的案例就是整合存货数据和订单数据。数据整合的另一个案例就是把各个部门的客户关系管理系统中的客户信息整合到公司客户关系管理系统中。
数据整合是一个比ETL更加广泛的概念,ETL是指从一个或多个数据源抽取数据,经过一个或多个转换步骤后,物理地存储到目标环境中,目标环境通常是数据仓库。
ETL是data integration中的一种而已。
1、抽取:一般抽取过程需要连接到不同的数据源,以便为随后的步骤提供数据。这一部分看上去简单而繁琐,实际上它是ETL解决方案成功实施的一个主要障碍。
2、转换:在抽取和加载之间的,任何对数据的处理过程都是需要转换。这些处理过程通常包括(但不局限于)下面的这些操作:
移动数据
根据规则验证数据
数据内容和数据结构的修改
集成多个数据源的数据
根据处理后的数据计算派生值和聚集值
3、加载:将数据加载到目标系统的所有操作。
一图胜千言!

数据仓库典型架构图
在上图中,有多个业务源系统,一个数据中转区,一个保存了所有历史数据的数据仓库和多个可以由终端用户访问的数据集市。
这些组成部分都是由数据整合过程来完成的,就是上图中显示的ETL。
在源系统和数据仓库之间,有一个数据中转区,也可以叫做数据缓冲区。它仅用来快速地从源数据系统中获取数据,并暂时保留这些数据。它不一定是一个数据仓库,在很多情况下,将数据保存在ASCII文件中比插入数据库表中还要快。
ELT和ETL的区别
ELT,(即抽取、加载和转换的简称),在同ETL在数据整合的方法上有略微不同。在ETL的情况下,数据首先从源数据(可能是多个)进行抽取、加载到目标数据库中,再转换为所需的格式。所有大数据量处理全部放在目标数据库中进行。这种做法的好处在于,一般情况下,数据库系统更适合处理负荷在百万级以上的数据集成。
ELT工具需要知道,如何使用目标数据库平台和相应的SQL语言。这就是在市面ELT解决方案较少的原因,类似Kettle这样的通用ETL工具也同样缺少这些功能。
EII是虚拟数据整合,为什么要提出呢?因为啊,ETL和ELT都属于物理数据整合。即都是以物理方式将数据从OLTP移动或复制到数据仓库。

有些情况啊,没有必要移动或复制数据。实际上,大多数用户并不关心ETL过程和数据仓库:他们只是想获得他们想要的数据!好比,我把上图比喻成饭店的厨房吧,我作为一个顾客并不关心饭菜是如何做出的,我只是希望能准时并且味道口可就行,什么厨房里发生事情跟我顾客身份无关。
那么,这个生活里的道路,也适合在数据仓库里:即有些用户并不关心数据是如何处理的,他们紫红色想快速而容易访问到数据就行。
即,除了属于物理数据集成方式里的ETL和ELT外,还有属于虚拟数据集成方式的EII。
虚拟数据集成和物理数据集成的比较

当然,我这系列博客,是定位于Kettle,目前最流行、功能最强大的数据整合工具是Kettle,也被称为Pentaho Data Integration。
同时,大家可以关注我的个人博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/ http://www.cnblogs.com/sunnyDream/
详情请见:http://www.cnblogs.com/zlslch/p/7473861.html
人生苦短,我愿分享。本公众号将秉持活到老学到老学习无休止的交流分享开源精神,汇聚于互联网和个人学习工作的精华干货知识,一切来于互联网,反馈回互联网。
目前研究领域:大数据、机器学习、深度学习、人工智能、数据挖掘、数据分析。 语言涉及:Java、Scala、Python、Shell、Linux等 。同时还涉及平常所使用的手机、电脑和互联网上的使用技巧、问题和实用软件。 只要你一直关注和呆在群里,每天必须有收获
对应本平台的讨论和答疑QQ群:大数据和人工智能躺过的坑(总群)(161156071)






Kettle学习系列之数据仓库、数据整合、ETL、ELT和EII之间的区别?的更多相关文章
- 大数据学习系列之九---- Hive整合Spark和HBase以及相关测试
前言 在之前的大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 中介绍了集群的环境搭建,但是在使用hive进行数据查询的时候会非常的慢,因为h ...
- Kettle学习系列之Kettle能做什么?(三)
不多说,直接上干货! PDI(Kettle) 都能做什么? 可以说凡是有数据整合.转换.迁移的场景都可以使用PDI,他代替了完成数据转换任务的手工编码,降低了开发难度. 同时,我们可以在自己实际业务里 ...
- PyQt(Python+Qt)学习随笔:QTextEdit的setText、setHtml、setPlainText之间的区别
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 QTextEdit中提供了三个设置编辑器文本的方法,分别是setTex ...
- Kettle学习系列之Kettle的起源
不多说,直接上干货! Kettle起源于十年以前,本世纪初.当时啊,ETL工具千姿百态,比较流行的工具有50个左右,ETL框架数量比工具还要多些. 根据这些工具的各自起源和功能可以分为以下4种类型,如 ...
- Kettle学习系列之kettle的下载、安装和初步使用(windows平台下)(图文详解)
不多说,直接上干货! kettle的下载 Kettle可以在http://kettle.pentaho.org/网站下载 http://sourceforge.n ...
- Caffe学习系列(13):数据可视化环境(python接口)配置
caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较 ...
- ClickHouse学习系列之八【数据导入迁移&同步】
背景 在介绍了一些ClickHouse相关的系列文章之后,大致对ClickHouse有了比较多的了解.它是一款非常优秀的OLAP数据库,为了更好的来展示其强大的OLAP能力,本文将介绍一些快速导入大量 ...
- Caffe学习系列(2):数据层及参数
要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成.所有的参数都定义在caffe.proto这个文件 ...
- 转 Caffe学习系列(2):数据层及参数
http://www.cnblogs.com/denny402/p/5070928.html 要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个 ...
随机推荐
- ORACLE查询闪回
在Oracle中如果错误地提交了修改操作,然后想查看修改前的值,这时候可以使用查询闪回(query flashback). 查询闪回可以根据根据一个时间值或者系统变更号(SCN)进行. 执行闪回操作, ...
- Java-SpringCloud:目录
ylbtech-Java-SpringCloud:目录 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:htt ...
- ROS-opencv-人脸识别-物体追踪-二维码识别
前言:人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术.用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术,通常也叫做 ...
- ROS-VIM
在终端输入:vimtutor,进入学习教程. 常用快捷键: a 编辑模式; 编辑状态下 回车 换行; Ctrl+n 补全命令; x剪切; p复制; u撤销; :q!不保存退出; :wq保存并退出; 以 ...
- 多元一次方程解法 C++
#include<iostream> #include<math.h> #include<fstream> #include<stdlib.h> usi ...
- 微信公众号测试账号-redirect_uri域名与后台配置不一致,错误代码:10003
微信公众号测试账号-redirect_uri域名与后台配置不一致,错误代码:10003 进入公众平台测试账号. 登录公众账号--"开发者中心"--"公众平台测试账号&qu ...
- 关于获取WebForm控件的问题
遇到这样的一个问题: 在GridView加载了数据之后,GridView的个别列被设置为TextBox单元格,就是可以修改数量了,单价什么的: 这样就触发了TextChanged事件: 现在要记录谁修 ...
- ZBrush软件中Brush特性
在ZBrush里给用户提供了上百种用于雕刻的笔刷,每种笔刷的显示模式是以红色的两个圆圈,外面的圆圈表示笔刷在进行绘制和雕刻实际影响的范围,而内圆是表示笔刷强度到外圆的衰减的起始位置,可以在Focal ...
- luogu P2000 拯救世界 生成函数_麦克劳林展开_python
模板题. 将所有的多项式按等比数列求和公式将生成函数压缩,相乘后麦克劳林展开即可. Code: n=int(input()) print((n+1)*(n+2)*(n+3)*(n+4)//24)
- js单体内置对象
js单体内置对象:js的内置对象,是ECMAScritp提供的.不依赖于宿主环境的对象,我的理解就是在我们开发之前js里面就已经存在的对象.单体内置对象就是是不需要通过new来实例化的,例如我们的st ...