如何复用ETL的数据处理功能进行定制化服务开发(二)
上节回顾
上篇文章从客户需求,业务场景详细介绍了为何要使用ETL进行定制化服务开发。本问将详细介绍如何进行技术选型,以及如何进行整体设计,从使用者的角度进行剖析。
ETL技术调研
ETL 工具的比较(Kettle,Talend,Informatica 等)
- 成本:
软件成本包括多方面,主要包括软件产品, 售前培训, 售后咨询, 技术支持等。
开源产品本身是免费的,成本主要是培训和咨询,所以成本会一直维持在一个较低水平。
商业产品本身价格很高,但是一般会提供几次免费的咨询或支持,所以采用商用软件最初成本很高,但是逐渐下降。
手工编码最初成本不高,主要是人力成本,但后期维护的工作量会越来越大。 - 风险:
项目都是有风险的尤其是大项目。
项目的风险主要包括:超出预算,项目延期,没有达到用户的满意和期望
开源产品由于价格上的优势,可以在很大程度上降低项目的风险。 - 易用性:
Talend:有 GUI 图形界面但是以 Eclipse 的插件方式提供。
Kettle:有非常容易使用的 GUI,出现问题可以到社区咨询。
Informatica:有非常容易使用的 GUI,但是要专门的训练。
Inaplex Inaport:没有GUI - 技术支持:
Talend:主要在美国
Kettle:在美国,欧洲(比利时,德国,法国,英国),亚洲(中国,日本,韩国)都可以找到相关技术支持人员。
Informatica:遍布全世界
Inaplex Inaport:主要在英国 - 部署:
Talend:创建 java 或perl 文件,并通过操作系统调度工具来运行
Kettle:可以使用 job 作业方式或操作系统调度,来执行一个转换文件或作业文件,也可以通过集群的方式在多台机器上部署。
Informatica:需要有 Server
Inaplex Inaport:需要 .net 2.0
6.速度:
Talend:需要手工调整,对特定数据源有优化知识。
Kettle:比 Talend 快,不过也需要手工调整,对 Oracle 和 PostGre 等数据源做了优化,同时也取决于转换任务的设计。
Informatica:是最快的
Inaplex Inaport:没有使用什么优化技术。 - 数据质量:
Talend:在 GUI 里有数据质量特性,可以手工写 SQL 语句。
Kettle:在 GUI 里有数据质量特性,可以手工写 SQL 语句、java脚本、正则表达式来完成数据清洗。
Informatica:专门有一个产品 Informatica Data Quality 来保证数据质量
Inaplex Inaport:因为只处理特定数据,所以比较容易进行数据清洗。 - 监控:
Talend:有监控和日志工具
Kettle:有监控和日志工具
Informatica:有非常详细的监控和日志工具
Inaplex Inaport:有监控和日志工具 - 连接性:
Talend:各种常用数据库,文件,web service。
Kettle:非常广泛的数据库,文件,另外可以通过插件扩展。
Informatica:各种数据源
Inaplex Inaport:ODBC 连接
技术选型
经过以上ETL工具对比,kettle是以java最为源码进行开发的,对于java技术栈的开发人员,无疑是一个福利。并且kettle是支持图形化操作的,可以以拖拉拽的形式就行快速的服务编排操作。除此之外,kettle是可扩展的,支持插件开发的。所以这个定制化服务平台就选用kettle作为服务编排的执行引擎。
官网如下:kettle官网
整体设计
设计图如下:
各个模块的功能分工如下:
- 服务定制模块
是系统的核心模块,专注于实现服务编排功能,以及服务的可视化操作。 - 服务配置模块
主要用于支持服务定制的动态插拔。实现服务上下线的实时性。 - 服务监控模块
是对定制化服务平台的性能监控,支持问题的快速定位,保证服务的高可用。
总结
本文主要介绍了ETL的攻击选型,以及整体设计构想。下篇文章将从整体设计入手,将各个模块进行详细设计,从而步步完成整个平台的详细设计。