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)是否具有良好的集成性和开放性。

啥是ETL、ELT的更多相关文章

  1. Kettle解决方案: 第一章ETL入门

    第一章ETL入门 1.1 OLPT和数据仓库对比 普通的事务系统和商业智能系统(BI)有什么区别? 1个独立的普通事务系统也被称为在线事务处理系统(OLTP) 商业智能系统也常被称为决策支持系统(DS ...

  2. 整理下.net分布式系统架构的思路

    最近看到有部分招聘信息,要求应聘者说一下分布式系统架构的思路.今天早晨正好有些时间,我也把我们实际在.net方面网站架构的演化路线整理一下,只是我自己的一些想法,欢迎大家批评指正. 首先说明的是.ne ...

  3. net分布式系统架构

    net分布式系统架构的思路 最近看到有部分招聘信息,要求应聘者说一下分布式系统架构的思路.今天早晨正好有些时间,我也把我们实际在.net方面网站架构的演化路线整理一下,只是我自己的一些想法,欢迎大家批 ...

  4. Oracle 数据集成的实际解决方案

    就针对市场与企业的发展的需求,Oracle公司提供了一个相对统一的关于企业级的实时数据解决方案,即Oracle数据集成的解决方案.以下的文章主要是对其解决方案的具体描述,望你会有所收获. Oracle ...

  5. .net分布式系统架构的思路

    首先说明的是.net下开源内容较少,并且也不是做并行数据库等基础服务,因此在这里什么Hadoop.Spark.ZooKeeper.dubbo等我们暂不去考虑. 一.最初假设的网站中,我们把应用系统网站 ...

  6. .NET分布式系统架构思路

    分布式系统是由一组通过网络进行通信.为了完成共同的任务而协调工作的计算机节点组成的系统.分布式系统的出现是为了用廉价的.普通的机器完成单个计算机无法完成的计算.存储任务.其目的是利用更多的机器,处理更 ...

  7. 【转】Talend作业设计模式和最佳实践-Part II

    转载地址:https://mp.weixin.qq.com/s?__biz=MzA3OTg1Mzk4Nw==&mid=2453261363&idx=1&sn=5674f1df8 ...

  8. Lakehouse: 统一数据仓库和高级分析的新一代开放平台

    1. 摘要 数仓架构在未来一段时间内会逐渐消亡,会被一种新的Lakehouse架构取代,该架构主要有如下特性 基于开放的数据格式,如Parquet: 机器学习和数据科学将被作为头等公民支持: 提供卓越 ...

  9. Azure Synapse Analytics Serverless

    数据湖仓 自从Databricks提出Lakehouse后,同时Snowflake的上市,湖仓一体成为数据领域最火热的话题. https://databricks.com/blog/2020/01/3 ...

  10. 使用Spark加载数据到SQL Server列存储表

    原文地址https://devblogs.microsoft.com/azure-sql/partitioning-on-spark-fast-loading-clustered-columnstor ...

随机推荐

  1. MySQL中InnoDB存储引擎中的哈希算法

    InnoDB存储引擎使用哈希算法来对字典进行查找,其冲突机制采用链表方式,哈希函数采用除法散列方式.对于缓冲池页的哈希表来说,在缓冲池中的Page页都有一个chain指针.它指向相同哈希函数值的页的. ...

  2. Linux CentOS使用yum安装Docker

    Docker支持以下的CentOS版本: 目前,CentOS仅发行版本中的内核支持Docker. Docker运行在CentOS7上,要求系统为64位.系统内核版本为3.10以上. Docker运行在 ...

  3. Activity重要函数

    一.onConfigurationChanged 与 android:configChanges Lists configuration changes that the activity will ...

  4. PyNest——part 2: populations of neurons

    part 2: populations of neurons introduction 在这篇讲义中,我们着眼于创建和参数化神经元批次,并将它们连接起来. 当你完成这些材料时,你会知道如何: 创建具有 ...

  5. Linux下安装Java环境配置

    1.下载安装文件 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2. ...

  6. STL之空间配置器

    在前面很多随笔里都有提到new对象是先分配内存然后初始化对象,主要是对operator new和placement new的使用 在SGI STL中内存的分配和初始化是分开的,分配内存是使用类模板,模 ...

  7. Overload and Override without Overwrite - Java

    Override(覆盖/覆写): 子类Override父类中的函数(方法).Overload(重载): 同一个类中包含多个同名的函数(方法), 但各个函数的参数列表不同. Override和Overl ...

  8. iOS 学习@autoreleasepool{}

    " ojc-c 是通过一种"referring counting"(引用计数)的方式来管理内存的, 对象在开始分配内存(alloc)的时候引用计数为一,以后每当碰到有al ...

  9. C# partial 关键字

    C# partial关键字详解 partial关键字允许把类.结构或接口放在多个文件中.一般情况下,一个类存储在单个文件中.但有时,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的 ...

  10. 04_Apache Hadoop 生态系统

    内容提纲: 1)对 Apache Hadoop 生态系统的认识(Hadoop 1.x 和 Hadoop 2.x) 2) Apache Hadoop 1.x 框架架构原理的初步认识 3) Apache ...