ETL是英文Extract-Transform-Load的缩写,用来描述将数据从源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程,它能够对各种分布的、异构的源数据(如关系数据)进行抽取,按照预先设计的规则将不完整数据、重复数据以及错误数据等“脏"数据内容进行清洗,得到符合要求的“干净”数据,并加载到数据仓库中进行存储,这些“干净”数据就成为了数据分析、数据挖掘的基石。

ETL是实现商务智能(Business Intelligence,BI)的核心。一般情况下,ETL会花费整个BI项目三分之一的时间,因此ETL设计得好坏直接影响BI项目的成败。

企业中常用的ETL实现有多种方式,常见的方式如下。

(1)借助ETL工具(如Pentaho Kettle、Informatic等)。

(2)编写SQL语句。

(3)将ETL工具和SQL语句结合起来使用。

上述3种实现方式各有利弊,其中第1种方式可以快速建立ETL工程,屏蔽复杂的编码任务、加快速度和降低难度,但是缺少灵活性:第2种方式使用编写SQL语句的方式优占是灵活,可以提高ETL的运行效率,但是编码复杂,对技术要求比较高;第3种方式综合了前面两种方法的优点,可以极大地提高ETL的开发速度和效率。

ETL体系结构

ETL主要是用来实现异构数据源数据集成的。多种数据源的所有原始数据大部分未作修改就被载人ETL,因而,无论数据源在关系型数据库、非关系型数据库,还是在外部文件.集成后的数据都将被置于数据库的数据表或数据仓库的维度表中,以便在数据库内或数据仓库中作进一步转换(因此,一般会将最终的数据存储到数据库或者数据仓库中)。ETL的体系结构如图下所示。

ETL体系结构

在上图中,若数据源1和数据源2均为功能较强大的DBMS(数据库管理系统),则可以使用SQL语句完成一部分数据清洗工作。但是,如果数据源为外部文件,就无法使用SQL语句进行数据清洗工作了,只能直接从数据源中抽取出来,然后在数据转换的时候进行数据清洗的工作。因此,数据仓库中的数据清洗工作主要还是在数据转换的时候进行。清洗好的数据将保存到目标数据库中,用于后续的数据分析、数据挖掘以及商业智能

什么是ETL技术?

ETL就是抽取、转换、加载这三个单词的缩写,所以顾名思义主要的工作就是把数据从哪块儿抽过来,然后进行一个清洗、加工,最后再存到哪块儿。

ETL工作流程

ETL工作的环节也是见名知意。

抽取:这个环节可能主要是比如说Sqoop、Flume、Kafka、还有Kettle、DataX、Maxwell这些都是抽取工具。离线可能主要是用的Sqoop或者是DataX去进行离线数据的抽取,像实时可能会采用比如说Flume或者是Kafka、Maxwell,还有Kettle去进行抽取。

转换:转换包括清洗、合并、拆分、加工等等,可以用Hadoop生态的东西, MapReduce、Spark、Flink、Hive等去进行数据方面的清洗。

加载:抽取转换之后,就是将数据加载到目标数据库。可能会用到Hbase去存储一些大数据方面的东西,或者HDFS等等这些工具。

ETL工程师的岗位价值

ETL的工作主要是对数仓的底层建设, ETL这个岗位是非常重要的,因为它属于是一个基础,如果ETL工作做好的话会有事半功倍的效果。

如果做不好可能后续会有很多的一些问题, 比如说数据如果没有清洗好,后续分析起来可能会有很多的脏数据等等。而且数据使用起来也非常的不方便。

ETL工程师进阶指南

任何岗位都会有初、中、高级的一个划分,不管是在业务理解还是技术能力、需求理解沟通交流,以及在项目中的位置等等。ETL工程师的进阶方向也以此划分。

初级:对业务理解的不是特别的深入,技术上也就是会使用,出现一些问题可能不能独立解决或者是独立解决的问题数量会比较少,需要去咨询大牛之类的。

中级:对业务相对来说比较熟悉,另一方面就是理解能力也比较强,技术上可能已经比较熟练了,而且还对框架、原理都有一些了解,也会调优。而且中级可能会参与到管理中,分一个小组,做一些比较小的项目或者需求。

高级:对业务就是非常熟悉,技术是服务于业务的,所以熟悉业务非常重要,我们现在实现的功能,其实就是建立在业务的基础上去做的,另一方面高级的ETL工程师对各项技术、系统架构都非常熟悉或者是会设计这样的架构,同时具有管理能力,可以带领团队完成项目。

如何入门ETL工程师?

对于应届的同学来说一方面要喜欢大数据这方面的,另一方面就是喜欢技术、喜欢钻研。 应届从专业上来说可能是 计算机、数学这些都比较合适。

对于 转行的小伙伴来说首先要能 沉下心来学习,另一方面如果会一些Java、Linux这些技术,有一些开发的基础,也做过完整的系统,接触过数据库这些,相对来说就会比较容易。

另外 有python基础,或者之前做过大数据运维或者数据库运维的都可以。

对想要从事ETL工程师的小伙伴们,我建议还得是多看、多学、多练

学习一些编程语言,比如刚才提到的java,如果java基础扎实的话,对大数据的学习是有很大的帮助的。

另一方面的话可能需要对linux比较熟。因为后面大数据所有的操作基本上都是在linux上面去操作。同时我还是建议就是往实时的方向走一走,虽然现在离线用的场景会很多,但是我觉得未来的话实时还是一个趋势。

什么是ETL?ETL是什么技术?相关推荐

  1. 什么是ETL,ETL是什么技术?

    ETL是英文Extract-Transform-Load的缩写,用来描述将数据从源端经过抽取(extract).转换(transform).加载(load)至目的端的过程,它能够对各种分布的.异构的源 ...

  2. ETL - ETL工具介绍

    上篇文章我们介绍了ETL的概念和ETL的整个过程 .那么今天我们给大家介绍一下ETL的常用工具:DataX.Datastage.Informatica.Kettle.DataPipeline. 为什么 ...

  3. 【ETL】ETL介绍与ETL工具比较

    本文转载自:http://blog.csdn.net/u013412535/article/details/43462537 ETL,是英文 Extract-Transform-Load 的缩写,用来 ...

  4. ELT和ETL分不清楚?2张图就能理解透彻

    ETL 和 ELT 有很多共同点,从本质上讲,每种集成方法都可以将数据从源端抽取到数据仓库中,两者的区别在于数据在哪里进行转换. 接下来,我们一起详细地分析一下 ETL 和 ELT各自的优缺点,看看在 ...

  5. 【转】ETL介绍与ETL工具比较

    本文转载自:http://blog.csdn.net/u013412535/article/details/43462537 ETL,是英文 Extract-Transform-Load 的缩写,用来 ...

  6. etl构建数据仓库五步法_ETL构建数据仓库五步法

    ETL构建企业级数据仓库五步法 在数据仓库构建中,ETL贯穿于项目始终,它是整个数据仓库的生命线,包括了从数据清洗,整合,到转换,加载等的各个过程,如果说数据仓库是一座大 厦,那 么ETL就是大厦的根 ...

  7. ETL VS ELT

    文章目录 什么是ETL 什么是ELT ETL vs ELT 相关框架-kestra介绍 参考 ETL和ELT是两种数据集成方法,它们主要的任务就是将数据从一个地方转移到另一个地方.两者最大的区别是:E ...

  8. 你真的了解ELT和ETL吗?

    作者:数据一哥 来源:数据社 全文共1700个字,建议6分钟阅读 大家好,我是一哥. ETL 和 ELT 有很多共同点,从本质上讲,每种集成方法都可以将数据从源端抽取到数据仓库中,两者的区别在于数据在 ...

  9. ETL:WJLYZQWDD

    Q:介绍一下最近的项目 / 最近项目的工作内容 回答思路: 让你介绍最近的项目不是让你说你们项目是做什么的,而是想知道你在项目中的工作内容或者你在工作中如何使用ET.L工具或者 可视.化工具的. 参考 ...

  10. 学习数据分析、数据挖掘、大数据ETL工程师到什么程度可以找工作?

    首先: 在互联网IT技术研发运维岗存在一个用男不用女的现象,尤其是Java开发岗几乎是不招女生:大都觉得女孩在工作中的抗压和自我调节能力不够好,在项目中赶需求压力大的时候让本来就发量稀疏的头顶更是雪上 ...

最新文章

  1. 5.25. Spring boot with Git version
  2. python最基本的两种循环结构_Python基础 — 分支和循环
  3. WebRTC 音视频开发之路
  4. node函数 node路由
  5. 我的docker随笔18:阿里云docker仓库的使用
  6. 6-Arco大讲堂(一)
  7. 【IT】使用gdb调试code
  8. 刚刚,华为发布全球首款 5G 基站核心芯片!
  9. jstack分析CPU高的问题
  10. 实时判断数据流中的第K大元素
  11. 天正安装autocad启动失败_天正cad启动失败
  12. 申请软件著作权有哪些好处,你知道吗?
  13. 地震观测仪器的历史和发展趋势(一)
  14. 能量收集技术能为利用环境能源的应用带来巨大优势
  15. 北京区块链技术应用协会第一届第四次会员大会顺利召开
  16. 输入一个正整数n,计算并输出n的阶乘
  17. 全连接网络:实现第一个全连接网络
  18. 【畅购商城】购物车模块之添加购物车
  19. Android Fragment 实现状态栏透明(沉浸式)
  20. 复旦计算机学硕上岸,复旦大学工程与应用技术研究院电子信息2020年考研上岸前辈经验指导...

热门文章

  1. Python 之 PyCharm + selenium 163邮箱登录详解
  2. 区块链搭建联盟链及控制台安装
  3. 使用Excel批量生成sql,包括日期格式
  4. 私域流量运营和微商有什么区别?
  5. CDMA(Code Division Multiple Access码分多址)
  6. windows10看不到网络计算机,今天分析Win10看不到局域网电脑的详尽解决手段
  7. 中国软件企业上市透析(上)
  8. GET 和POST的用法
  9. JavaScript实现富文本编辑器
  10. 设计模式篇(六)——观察者模式