无论是大数据领域,仍是传统的基础数据领域,为了解决数据的流转问题,都须要各类类型,适应异构环境的小程序来作支撑,一般咱们称之为ETL做业。
一想到作数据仓库项目,你们的第一反应就是去选型各类ETL工具。我我的以为并非全部的应用场景都须要ETL工具。以前接触过一个银行的数据仓库项目。他们是采用datastage作文本抽取,用oracle 存储过程作数据转换,还有一部分shell脚本作文件到达、磁盘清理和控制逻辑转发的功能。而后用datastage的 sequence job 作业务翻牌控制。
这样来看,他们的做业类型就相对单一。但datastage自己不太稳定,也知足不了他们的调度控制逻辑需求。因此他们采用了shell脚原本作一部分比较复杂的调度控制。
到最后datastage只做了一个文本抽取的功能。随着该银行业务系统的不断扩建和增长,做业数规模愈来愈大。更主要的矛盾表如今ETL做业自己的管理成本上。
他们意识到,能不能管理好这么多系统的做业,才是这些数据项目成功实施的关键。所以他们选用了国内的一款专业的ETL调度工具,来管理十几个系统和上万个做业。至于datastage的文本抽取做业,都被逐步改造为shell脚原本作了。
到最后¥80w采购的datastage基本上就闲置了。 实际上就是十几个系统和上万个shell脚本程序、oracle存储过程以及ftp做业,的调度监控管理问题。
因此,我以为若是做业类型单1、环境简单的场景,就没有必要用专门的ETL工具。做业数上规模的状况下,采购一款专业的ETL调度工具才是必要的。
若是企业内部做业类型过多、异构环境复杂、技术人员水平良莠不齐的状况下,采用专业的ETL工具就有必要了,由于它下降了技术门槛。也许简单的拖拽就能完成复杂的功能。
另外说一句,做业类型多、异构环境多从另外一方面说明企业的IT管理不够规范(或许是历史缘由)!在我看来ETL工具如同鸡肋 “食之无肉,弃之有味”shell