【原创】BI解决方案选型之ETL数据整合工具对比

1、背景

在企业BI平台建设过程当中,数据整合始终是一切的基础,简单BI项目能够经过存储过程来实现,而复杂、全面、多方异构数据来源等就大大增长了复杂性,存储过程的可管理性、可维护性、容错性等就没法很好的跟上企业的BI的发展脚步和须要。java

所以,一个完善的、健壮的、可视化的、易于开发和管理的ETL解决方案,就很是重要,而这其中,ETL工具的地位不言而喻,更是重中之重。选择一个优秀的ETL工具,不只能够加快异构数据整合的能力和效率,更能下降开发成本、人员手工维护等成本,好处多多。web

现今的ETL工具不少,大企业的有IBM、Oracle的,中小企业的有SSIS、kettle、talend。有开源的,也有收费的,那咱们改如何选择呢?数据库

2、对比方面

本人作过ETL开发也有小几年,对于一部分的ETL工具也有不少的接触,也看过其它企业的大型ETL解决方案,今天,就从以下几个我所经历过以及结合一些客户的选择方向来对比下不一样ETL工具之间的差别,给予一部分即将选择ETL工具的朋友一些辅助建议吧。windows

对比的ETL工具,选择这4款主要是我本身接触过,或是有客户采购过,相对比较了解。服务器

  1. talend
  2. kettle
  3. SSIS
  4. informatica

对比的方面主要有以下几方面,每一个方面总分都是10分架构

2.1、成本:软件成本+开发成本+维护成本。

这个是我所知道90%企业都第一考虑的,你们都知道,有多少钱办多少事儿。负载均衡

  • talend:8分
    1. 软件成本:talend有开源版本,免费,可是实际我用下来,以及一部分客户的实际状况,仍是建议买个企业版。由于开源版没有配备完善的自动化调度系统,这个若是开发好以后要按期运行起来,还须要借助其它的调度工具或者本身开发一套调度,估计这个开发也够呛。
    2. 开发成本:若是开源版,前期可能会省不少培训、咨询、售前等费用,可是后期的维护团队、自定义开发的调度平台估计也不会比买企业版花的少。
    3. 维护成本:talend是按照用户数收费的,因此若是开发用户不少的状况下,估计就不划算。
  • kettle:7分
    1. 软件成本、开发成本:和talend同样的,也是分开源和不开源,开源的依然是要自行调度管理。
    2. 维护成本:kettle国内的专业公司好像有点少,通常用的都是作作简单ETL,或者封装一套本身的,因此前期自我探索的成本也比较高。
  • SSIS:8分
    1. 软件成本:这是微软的,由于你只要采购了SQL SERVER,这个工具就是免费给你用的,微软家的产品都是简单、快速入门的,因此使用起来的难度不大。
    2. 开发成本:微软的MSDN是很强大的在线文档,看这个已经足够入门了,咨询几乎不用。
    3. 维护成本:微软系的出了名的好用、上手快。若是你已经采购了SQL SERVER并且仍是windows体系的,那我是推荐这个的。
  • informatica:5分
    1. 软件成本:企业级的产品,世界知名,固然软件采购成本也很贵,比上面的贵好多倍。
    2. 开发成本:拥有良好的GUI界面,开发也是脱拉拽,相对仍是比较块的。
    3. 维护成本:老牌厂商,软件稳定。

2.2、易用性

易用性能够下降使用人员专业技术水平,下降人员成本。eclipse

  • talend:9分
    1. 给予eclipse的GUI界面操做,并且结合了SVN/GIT的版本管理,开发快速、代码管理及时。可是GUI有时候不太稳定。
    2. 拖拉拽的设计风格。
    3. 开发的job直接能够build成jar包,而后部署,或者直接能够在tac后台服务进行部署(企业版才有)。
  • kettle:7分
    1. GUI的界面操做,能够和本身的知识库整合,将开发内容保存到后台元数据库中。
    2. 拖拉拽的设计风格。
  • SSIS:9分
    1. VS的GUI界面操做。
    2. 拖拉拽的设计风格。
    3. 给予GUI的job运行管理、调度平台。
  • informatica:8分
    1. GUI的界面操做。
    2. 拖拉拽的设计风格。

2.3、架构

架构的优劣,也决定的这个产品是否能有足够的能力支撑任何需求变动的挑战。jvm

  • talend:9分
    1. 基于Java体系的,每一个ETL job设计完成以后,最终都是编译成了一整个的jar包。
    2. 只要你有JVM环境你就能够运行talend job。
    3. 接收自定义的java代码,可使得一部分组件没法完成的功能,经过代码来实现。
  • kettle:8分
    1. 基于Java体系的。
    2. 可使用 job 做业方式或操做系统调度,来执行一个转换文件或做业文件。
    3. 能够经过集群的方式在多台机器上部署
  • SSIS:7分
    1. 基于XML的文件保存格式,基于Windows体系。
    2. 须要.NET FRAMEWORK的支持。
    3. 能够自定义开发.NET程序处理。
  • informatica:8分
    1. 基于他自己的server调度运行。

2.4、 数据源丰富性

ETL主要就是负责数据整合,数据源的丰富性越好,适应能力就越强。工具

  • talend:9分
    1. 支持各类数据库数据源、web services、文件、云产品等,很是丰富。
    2. 云计算、大数据的支持也是很是迅速的。
  • kettle:9分
    1. 支持各类数据库数据源、web services、文件、云产品等,很是丰富。
    2. 也能够经过本身开发插件来拓展。
    3. 有不少的第三方插件支持。
  • SSIS:7分
    1. 支持各类数据库数据源、web services、文件等
    2. 云产品的支持当前只是支持他自家的微软云。
    3. 有不少的第三方插件支持。
  • informatica:6
    1. 支持各类数据库数据源
    2. 分为不一样的版本,标准版,实时版,高级版,云计算版。同时,它还提供了多个可选的组件

2.5、 ETL组件丰富性

ETL组件的完善,能够减小硬编码,提高开发效率和交付质量。

  • talend:9分
    1. talend组件很是多,他将不少的功能都拆分红了不一样的组件,大概是3000多个,这样子的组件细化,能够给出不一样的组合,知足不少不一样的任务须要。
    2. 尤为是对大数据、云计算组件的支持更是业内比较快、领先的。
  • kettle:8分
    1. 组件也是十分丰富。
    2. 本身能够拓展开发第三方组件。
    3. 对于云计算的支持也是比较好的。
  • SSIS:7分
    1. 组件相对比较丰富,并且结合了数据库维护的一些功能,使得不只仅局限于ETL这单块的内容。
    2. 能够自定义开发组件。
    3. 对于云计算、大数据等支持不是很快。
  • informatica:6分
    1. 组件相对也比较丰富。
    2. 对于云计算也有支持,可是在不一样的产品模块,无形中增长了软件成本。

2.6、 性能

性能是决定着数据刷新的频率,对于不少实时性要求较高的业务,这是重点。

  • talend:6分
    1. talend由于要先编译、后运行,所以第一次的运行来看,性能相对比较慢。
    2. talend是基于jvm的,因此不少方面须要调优。
  • kettle:7分
    1. kettle自己会有必定的优化在其中,因此总体运行效率会比talend快一些。
    2. 不少参数也是须要实际状况调优的。
  • SSIS:8分
    1. 若是针对于其自己的MS系产品,效率是杠杠的,微软的测试1TB只须要2小时。
    2. 可是针对其它家的数据库,也是须要优化的,可是综合来看,仍是比较块的。
  • informatica:8分
    1. 针对于自己的数据源,其内部就作了不少的调优,所以就会快不少。

2.7、 部署

部署主要是考虑是否能支持横向拓展,以便更快应对数据量的增加。

  • talend:8分
    1. 开发支持多人合做开发,经过SVN/GIT进行协做。
    2. 能够经过部署多个集群job server来负载均衡的运行job。
  • kettle:8分
    1. 支持集群式的部署方式。
  • SSIS:5分
    1. 暂时没有集群式的部署方式。
    2. 可是能够经过job之间的协调调度来实现,技术成本比较高。
  • informatica:6分
    1. 须要部署运行在其server上。

2.8、 监控

完善的监控体系,能够即便的发现ETL内部问题,提高运行稳定性,减小数据整合的错误。

  • talend:8分
    1. 拥有良好的后台运行监控和log日志记录。
  • kettle:8分
    1. 拥有良好的后台运行监控和log日志记录。
  • SSIS:9分
    1. 拥有良好的后台运行监控和log日志记录。
    2. 能够收集不一样的运行KPI,分析运行的效率问题。
  • informatica:8分
    1. 拥有良好的后台运行监控和log日志记录。

2.9、 数据质量管理

ETL中包含数据质量管理应该是将来的趋势,而不是简单将数据从A搬到B。

  • talend:8分
    1. 有数据质量管理的支持。
    2. 也能够经过本身代码实现。
  • kettle:8分
    1. 有数据质量管理的支持。
    2. 也能够经过本身代码实现。
  • SSIS:9分
    1. 有本身的数据质量检测组件。
    2. 也能够经过数据质量服务这个软件来实现(免费)可是整合起来的技术难度仍是有一些。
  • informatica:7分
    1. 专门有一个产品 Informatica Data Quality 来保证数据质量
    2. 可是这个软件成本有点高。

2.10、 技术支持and社区

主要考虑到将来的疑难问题解决。

  • talend:7分
    1. 在国内的社区和技术支持相对比较薄弱。
    2. 可是好在技术支持比较稳定,能够申请原厂的case,有人回复。(不买产品咨询,应该要收费的)
  • kettle:8分
    1. 国内的社区还不错,不少开源的小企业的人都是在使用的,也有不少的社群活跃。
  • SSIS:9分
    1. 微软的支持无处不在。
    2. MSDN、官方博客都几乎能够找到人,比较方便。
    3. 并且使用人员也不少。
  • informatica:8分
    1. 专业的人员却是挺多,可是咨询应该不是免费的。

3、总结

最总咱们来看得分

产品/考虑方面

成本:软件成本+开发成本+维护成本(10分)

易用性(10分)

架构(10分)

数据源丰富性(10分)

ETL组件丰富性(10分)

性能(10分)

部署(10分)

监控(10分)

数据质量管理(10分)

技术支持&社区(10分)

总分

建议

talend

8

9

9

9

9

6

8

8

8

7

83

一、若是你是java体系的爱好者。你但愿跨平台。

二、若是你将来但愿能更好接入大数据、云计算。

三、你更喜欢灵活控制每个ETL组件。

四、对于job调度的要求不是很高。

kettle

7

7

8

9

8

7

8

8

8

8

78

一、若是你是java体系的爱好者。你但愿跨平台。

二、若是你将来但愿能更好接入大数据、云计算。

三、大家将来是本身打算开发一套调度系统的。

SSIS

8

9

7

7

7

8

5

9

9

9

78

一、你是微软系的服务器、产品为主。

二、你渴望入门快、成果见效快。

三、你但愿易于维护、开发快捷,管理简单。

informatica

5

8

8

6

6

8

6

8

7

8

70

一、你有钱。

二、你有丰富的技术人才。

三、你有大量的维护团队。

若是您以为此文章对您有帮助,请点击右下方【推荐】让更多人看到,thanks!

相关文章
相关标签/搜索