ETL工具选型

目前主流的ETL工具有Kettle、talend、NiFi、datastage、informatica、cogons、SSIS等,其中NiFi、kettle和talend是开源软件,其他均为商业软件。

成本

开源软件本身是不收费的,所以主要成本在培训和咨询方面,成本会维持在一个相对较低的水平。

商业软件本身收费较高,一般会提供几次免费的咨询服务或技术支持。

易用性

NiFi:有非常容易使用的WEB UI,社区活跃度较高。

Talend:有 GUI 图形界面但是以 Eclipse 的插件方式提供。

Kettle:有非常容易使用的 GUI,出现问题可以到社区咨询。

Informatica:有非常容易使用的 GUI,但是要专门的训练。

datastage:最专业的ETL工具,适合大规模的ETL应用,需要专门的培训,使用难度较大。

部署

NiFi:需要服务器,部署简单,可以搭建集群。

Kettle:只需要JVM环境

Talend:只需要JVM环境

Informatica:需要服务器和客户端安装

Datastage:需要服务器,部署比较耗费时间,有一点难度。

速度

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

服务

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

监控

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

数据源

Talend:各种常用数据库,文件,web service。

Kettle:非常广泛的数据库,文件,另外可以通过插件扩展。

NiFi:各种常用数据库,Excel文件,Kafka等消息队列

Informatica:各种数据源

Datastage:各种数据源

总结

建议目前采用NiFi作为ETL工具,原因如下

  1. NiFi为开源软件,成本低

  2. NiFI上手容易,社区活跃,组件种类繁多

  3. 目前数据量和并发性要求不高,对数据实时性也没有严格的要求,可以接受秒级延迟

  4. 可以部署集群模式,提高系统稳定性和并发量

  5. 拥有流程监控、失败重试,提供API接口供二次开发

附录

results matching ""

    No results matching ""