zoukankan      html  css  js  c++  java
  • ETL常用的三种工具介绍及对比Datastage,Informatica和Kettle

    原文转发自:https://zhuanlan.zhihu.com/p/73102112

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

    ETL是数据仓库中的非常重要的一环,是承前启后的必要的一步。ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。

    下面给大家介绍一下什么是ETL以及ETL常用的三种工具——Datastage,Informatica,Kettle。

    一、什么是ETL?

    ETL,Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。

    数据仓库结构

    通俗的说法就是从数据源抽取数据出来,进行清洗加工转换,然后加载到定义好的数据仓库模型中去。目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。

    ETL是BI项目重要的一个环节,其设计的好坏影响生成数据的质量,直接关系到BI项目的成败。

    二、为什么要用ETL工具?

    在数据处理的时候,我们有时会遇到这些问题:

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

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

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

    而上述遇到的问题,我们用ETL工具就可以解决。ETL工具具有以下几点优势:

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

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

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

    三、ETL工具介绍

    1、Datastage

    IBM公司的商业软件,最专业的ETL工具,但同时价格不菲,适合大规模的ETL应用。

    使用难度:★★★★

    2、Informatica

    商业软件,相当专业的ETL工具。价格上比Datastage便宜一点,也适合大规模的ETL应用。

    使用难度:★★

    3、Kettle

    免费,最著名的开源产品,是用纯java编写的ETL工具,只需要JVM环境即可部署,可跨平台,扩展性好。

    使用难度:★★

    四、三种ETL工具的对比

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

    1、操作

    这三种ETL工具都是属于比较简单易用的,主要看开发人员对于工具的熟练程度。

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

    Kettle介于两者之间。

    2、部署

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

    3、数据处理的速度

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

    4、服务

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

    5、风险

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

    6、扩展

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

    7、Job的监控

    三者都有监控和日志工具。

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

    8、网上的技术文档

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

    五、项目经验分享

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

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


  • 相关阅读:
    Leetcode Excel Sheet Column Number
    AlgorithmsI PA2: Randomized Queues and Deques Subset
    AlgorithmsI PA2: Randomized Queues and Deques RandomizedQueue
    AlgorithmsI PA2: Randomized Queues and Deques Deque
    AlgorithmsI Programming Assignment 1: PercolationStats.java
    hdu多校第四场 1003 (hdu6616) Divide the Stones 机智题
    hdu多校第四场 1007 (hdu6620) Just an Old Puzzle 逆序对
    hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到
    hdu多校第三场 1007 (hdu6609) Find the answer 线段树
    hdu多校第三场 1006 (hdu6608) Fansblog Miller-Rabin素性检测
  • 原文地址:https://www.cnblogs.com/JavaScriptNO1/p/14124088.html
Copyright © 2011-2022 走看看