ETL是数据仓库中的非常重要的一环,是承前启后的必要的一步。ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。下面给大家介绍一下什么是ETL以及ETL常用的三种工具(Datastage,Informatica,Kettle)!

1.ETL是什么?

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。(数据仓库结构)通俗的说法就是从数据源抽取数据出来,进行清洗加工转换,然后加载到定义好的数据仓库模型中去。目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节,其设计的好坏影响生成数据的质量,直接关系到BI项目的成败。

2.为什么要用ETL工具?

▶ 当数据来自不同的物理主机,这时候如使用SQL语句去处理的话,就显得比较吃力且开销也更大。

▶ 数据来源可以是各种不同的数据库或者文件,这时候需要先把他们整理成统一的格式后才可以进行数据的处理,这一过程用代码实现显然有些麻烦。

▶ 在数据库中我们当然可以使用存储过程去处理数据,但是处理海量数据的时候存储过程显然比较吃力,而且会占用较多数据库的资源,这可能会导致数据资源不足,进而影响数据库的性能。

上面所说的问题,我们用ETL工具就可以解决。它的优点有:

● 支持多种异构数据源的连接。(部分)

● 图形化的界面操作十分方便。

● 处理海量数据速度快、流程更清晰等。

3.ETL工具介绍

Informatica和Datastage占据国内市场的大部分的份额。

4.ETL工具差异

Kettle,Datastage,Informatica三个ETL工具的特点和差异介绍:

操作

都是属于比较简单易用,主要是开发人员对于工具的熟练程度。Informatica有四个开发管理组件,开发的时候我们需要打开其中三个进行开发,Informatica没有ctrl+z的功能,如果对job作了改变之后,想要撤销,返回到改变前是不可能的。相比Kettle跟Datastage在测试调试的时候不太方便。Datastage全部的操作在同一个界面中,不用切换界面,能够看到数据的来源,整个job的情况,在找bug的时候会比Informatica方便。Kettle介于两者之间。

部署

Kettle只需要JVM环境,Informatica需要服务器和客户端安装,而Datastage的部署比较耗费时间,有一点难度。

数据处理的速度

大数据量下Informatica 与Datastage的处理速度是比较快的,比较稳定。Kettle的处理速度相比之下稍慢。

服务

Informatica与Datastage有很好的商业化的技术支持,而Kettle则没有。商业软件的售后服务上会比免费的开源软件好很多。

风险

风险与成本成反比,也与技术能力成正比。

扩展

Kettle的扩展性无疑是最好,因为是开源代码,可以自己开发拓展它的功能,而Informatica和Datastage由于是商业软件,基本上没有。

Job的监控

三者都有监控和日志工具。在数据的监控上,个人觉得Datastage的实时监控做的更加好,可以直观看到数据抽取的情况,运行到哪一个控件上。这对于调优来说,我们可以更快的定位到处理速度太慢的控件并进行处理,而informatica也有相应的功能,但是并不直观,需要通过两个界面的对比才可以定位到处理速度缓慢的控件。有时候还需要通过一些方法去查找。

网上的技术文档

Datastage < Informatica < kettle,相对来说,Datastage跟Informatica在遇到问题去网上找到解决方法的概率比较低,kettle则比较多。

5.项目经验分享

多张表同步、重复的操作:在项目中,很多时候我们都需要同步生产库的表到数据仓库中。一百多张表同步、重复的操作,对开发人员来说是细心和耐心的考验。在这种情况下,开发人员最喜欢的工具无疑是kettle,多个表的同步都可以用同一个程序运行,不必每一张表的同步都建一个程序,而informatica虽然有提供工具去批量设计,但还是需要生成多个程序进行一一配置,而datastage在这方面就显得比较笨拙。

增量表:在做增量表的时候,每次运行后都需要把将最新的一条数据操作时间存到数据库中,下次运行我们就取大于这个时间的数据。Kettle有控件可以直接读取数据库中的这个时间置为变量;对于没有类似功能控件的informatica,我们的做法是先读取的数据库中的这个时间存到文件,然后主程序运行的时候指定这个文件为参数文件,也可以得到同样的效果。

有一句话说的好:世上没有最好的,只有适合的!每一款ETL工具都有它的优缺点,我们需要根据实际项目,权衡利弊选择适合的ETL工具,合适的就是最好的。当下越来越多公司及其客户更重视最新的数据(实时数据)展现,传统的ETL工具可能满足不了这样的需求,而实时流数据处理和云计算技术更符合。所以我们也需要与时俱进,学习大数据时代下的ETL工具

ETL常用的三种工具介绍及对比Datastage,Informatica相关推荐

  1. ETL常用的三种工具介绍及对比 Datastage,Informatica 和 Kettle

    大家好,我是梦想家 Alex ~ ETL是数据仓库中的非常重要的一环,是承前启后的必要的一步.ETL负责将分布的.异构数据源中的数据如关系数据.平面数据文件等抽取到临时中间层后进行清洗.转换.集成,最 ...

  2. etl常用的三种工具介绍_Adobe Photoshop常用修图插件+屏幕模式+内容感知移动工具介绍...

    PS教学第27期 第一篇 1.5 Photoshop的三种屏幕模式 [Ps教程] 1. 本节课将为您演示,系统的三种屏幕显示模式.首先依次点击[文件 > 打开]命令,打开一张示例图片. imag ...

  3. 前端常用60余种工具方法(上)

    1.邮箱 export const isEmail = (s) => {return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2, ...

  4. STM32芯片烧录的三种方式介绍,串口、STM32 ST-LINK Utility以及STM32CubeProgrammer

    STM32芯片烧录的三种方式介绍,串口.STM32 ST-LINK Utility以及STM32CubeProgrammer 1 概述 1.1资源概述 1.2 STM32串口烧录方式 2.KEIL软件 ...

  5. spring入门之Spring 常用的三种注入方式

    Spring 常用的三种注入方式 Spring 通过 DI(依赖注入)实现 IOC(控制反转),常用的注入方式主要有三种:构造方法注入,set 方法注入,基于注解的注入. 一.通过构造方法注入 先简单 ...

  6. 手机怎么查看已经记住的WiFi密码?手机查看wifi密码三种方法介绍(图文)

    有时候用过的wifi密码手机自动保存了,但在想知道wifi密码是多少,相信很多人都不记得了,或者在使用其他人的WiFi时,密码突然忘记了.怎么办呢?手机怎么查看已经记住的WiFi密码?下面脚本之家小编 ...

  7. 静电放电(ESD)最常用的三种模型及其防护设计

    ESD:Electrostatic Discharge,即是静电放电,每个从事硬件设计和生产的工程师都必须掌握 ESD 的相关知识.为了定量表征 ESD 特性,一般将 ESD 转化成模型表达方式,ES ...

  8. vi和vim常用的三种模式

    文章目录 1. vi 和 vim 的基本介绍 2. vi 和 vim 常用的三种模式 2.1 正常模式 2.2 插入模式 2.3 命令行模式 3. vi 和 vim 基本使用 4. 各种模式的相互切换 ...

  9. 统计内表行数常用的三种方法

    以下是统计内表行数常用的三种方法, 如下:   1.LOOP AT it_itab.    g_lines2 = g_lines2 + 1.    ENDLOOP.    该方法是通过循环内部表自己累 ...

最新文章

  1. 简明python教程 --C++程序员的视角(九):函数式编程、特殊类方法、测试及其他...
  2. SpringBoot+SpringSecurity前后端分离+Jwt的权限认证(改造记录)
  3. 第三模块:面向对象(目录)
  4. vmware-vmx.exe无法结束进程_?进程的状态转换
  5. 武汉超级计算机中心,加快打造“五个中心” 武汉率先开建人工智能计算中心...
  6. layui 在springboot2.x 时,页面展示不了layui的问题
  7. python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据
  8. C语言islower函数介绍、示例和实现
  9. 2019-06-13-vim配色步骤
  10. CentOS7 - 给VMwear Workstation 15安装VMwear tools
  11. 关于编程开发的最小系统学习法
  12. Android练手——分贝计
  13. 考研如何设置桌面倒计时,便签设置桌面倒计时方法
  14. 仿网易评论盖楼的留言板插件demo
  15. 【Python】通过 Python 设置电脑代理端口
  16. Android NDK不得不说的秘密
  17. FTP到主机上删除文件
  18. 实验3-1 求一元二次方程的根 (20分)
  19. ubuntu 下如何下载linux内核源码
  20. 从0到1教你设计业务系统

热门文章

  1. Wikioi 1017 乘积最大
  2. 【wikioi】1041 Car的旅行路线
  3. a2.ansible 生产实战案例 -- 系统初始化playbook
  4. 字符串拼接的6种方式
  5. 你们还记得张江男、张江女两张图片吗?-装饰模式
  6. SlimDX.dll安装之后所在位置
  7. java 如何添加背景图片_JAVA界面设计怎么插入背景图片?
  8. theBrain(思维导图工具)的使用知识浅析入门
  9. linux centos yum源配置为nexus镜像源
  10. 【数据库索引背后的数据结构】一个常见的面试题,详解B+树结构