我眼中的kettle ETL工具

Posted on Posted in kettle经验分享
  • “生产工具的进步是生产力发展的标志”-我第一次用Kettle(其实是Akettle版本,至今仍旧在用,而且我目前项目完全基于Akettle开发实现)时候我的感受。和传统的编写代码相比,ETL工具在效率(包括代码复用)、可靠性、低出错率、可维护性上面绝对都是巨大的进步;
  • 对于程序员而言,使用ETL工具意味着很多习惯的改变,这个需要适应!我相信在ETL领域,编程语言的工作未来可能会减少到总任务量的10%,剩下90%均需要借助ETL工具来实现;
  • 和任何工具一样,导入期都比较漫长,但是请各位务必坚持下去,因为回报会非常丰厚!
  • 和任何工具一样,ETL工具也有自己的局限性,了解工具,熟悉工具的局限的领域是学习工具的目的之一;
  • 使用ETL工具实现会非常容易,因此重要的就是大家的设计思路了。不要轻言ETL实现不了而轻易转到脚本或者其他编程语言,我本人就经历了多次,本来打算放弃ETL工具了结果再想想,发现另外一条设计路径完全可以用ETL实现;
  • Kettle作为一个开源的产品,支持不是很好,主要还是靠社区支持, ;
  • 在一定程度上Kettle的运行效率的确不如脚本,但是说实话从易用性和可维护性角度,以及日益便宜的硬件(内存,CPU),我觉得这点运行效率的损失完全不是问题;
  • 特殊针对企业内部IT的人员:ETL工具队企业内部IT(尤其是针对很多开发的工作已经外包的情况)一个很好的选择,毕竟维护性和开发效率都很高,而且又不会把自己拖入繁复的代码维护和修改之中(改个ETL跟打游戏差不多,前提是你的设计思路很清晰)。
  • 学习和使用ETL的最重要的基础我相信是对数据库的了解和感觉。毕竟很懂ETL的step都和数据库密切相关,例如Kettle里面的DB Lookup步骤在MySQL数据库表建索引后效率可以提升10倍以上。输出表的结构设计和关联因此非常重要;