从抽象的角度来看,企业调度系统管理的主要是在具体的时间下执行的某个ETL作业。从时间以及ETL作业这两个维度来看,企业调度系统必须包含对于时间以及ETL作业的管理,分别对应市面上的调度平台以及ETL作业平台。
从是否商业化的角度来看,调度平台可以分为商业化的调度平台以及开源的调度平台;从调度平台的集成度来看,调度平台可以分为集成ETL作业开发功能的调度平台以及纯调度平台(即只管理调度作业之间的关系);从ETL作业平台的友好程度来看,调度平台可以分为提供可视化组件的ETL作业开发平台以及基于配置文件或者代码的后台ETL作业平台。主流调度软件分布示意图如图4-1所示。
图4-1 主流调度软件分布示意图
从图4-1可以看出,商业化代表软件DataStage 以及 Informatica 既可以提供调度功能,也可以提供ETL作业开发的功能,而Kettle作为纯ETL开发工具并不具备调度功能(其只有非常基础的调度,忽略不计),它往往与一些调度工具一起构建企业调度系统,例如Jenkins。
Kettle最早是一个开源的ETL工具,全称为KDE Extraction,Transportation,Transformationand Loading Environment。在2006年,Pentaho公司收购了Kettle项目,从此,Kettle成为企业级数据集成及商业智能套件Pentaho的主要组成部分。Kettle也被重命名为Pentaho Data Integration。Kettle是基于Java编写的ETL工具,具有跨平台的能力(因为部署JDK就可以运行),扩展性相对较好。
DataStage以及Informatica是专业化的商用ETL工具,前者属于IBM旗下产品,部署时间较长;后者是Informatica公司的产品,需要安装服务端以及客户端。总体来看,二者相对Kettle来说依然较为复杂。此外,在数据量较大的情况下,Informatica与DataStage的处理速度比较快,也比较稳定。Kettle的处理速度相对较慢。DataStage的操作界面如图4-2所示。
图4-2 DataStage的操作界面
但是随着互联网技术的持续发展,开源软件逐步走进视野之中,各种开源调度以及ETL产品应运而生。例如,基于Python的调度平台Airflow,支持异构数据库快速同步的工具DataX,都逐步被一些技术相对雄厚的公司进行使用。