作者简介:王春波,《高效使用Greenplum:入门、进阶和数据中台》作者,“数据中台研习社”号主,十年数据开发从业者,资深零售数仓项目实施专家。
以下内容摘自《高效使用Greenplum:入门、进阶和数据中台》第14章。
京东购买链接:https://search.jd.com/Search?keyword=%E9%AB%98%E6%95%88%E4%BD%BF%E7%94%A8Greenplum
调度平台是指可以串联ETL任务并按照指定的依赖和顺序进行自动执行的工具。调度平台一般用Java语言开发,平台实现难度小,因此大多数数据仓库实时厂商都有自研的调度平台软件。
在早期银行业的数据仓库项目中,大多数据ETL过程都是通过Datastage、Informatica或者存储过程实现的,因此调度平台的核心任务就是围绕DS job、PROC、Shell等任务进行的。其中,我接触过最好用的产品就是先进数通公司的Moia Control。Moia Control定位于企业统一调度管理平台,致力于为企业的批处理作业制定统一的开发规范、运维方法,对各系统的批量作业进行统一管理、调度和监控。Moia Control的系统架构如图13-3所示,系统分为管理节点和Agent节点,管理节点负责调度任务的配置和分发作业,Agent节点负责任务的执行和监控。Moia Control在金融领域具有非常广泛的应用。
在开源领域,伴随着大数据平台的崛起,先后涌现了Oozie、Azkaban、AirFlow等深度融合Hadoop生态的产品,但都是昙花一现,目前已经逐步被DolphinScheduler取代。DolphinScheduler于2019年8月29日由易观科技捐赠给Apache并启动孵化。DolphinScheduler的产品架构如图13-4所示。
DolphinScheduler是全球顶尖架构师与社区认可的数据调度平台,把复杂性留给自己,易用性留给用户,具有如下特征。
1) 云原生设计:支持多云、多数据中心的跨端调度,同时也支持Kubernetes Docker部署与扩展,性能上可以线性增长,在用户测试情况下最高已经支持10万级的并行任务控制。
2) 高可用:去中心化的多主从节点的工作模式,可以自动平衡任务负载,自动高可用,确保任务在任何节点死机的情况下可以具有完整性完成整体调度。
3) 用户友好的界面:可视化DAG图,包括子任务、条件调度、脚本管理、多租户等功能,可以让运行任务实例与任务模板分开,让平台维护人员和数据科学家都有一个方便易用的开发和管理平台。
4) 支持多种数据场景:支持流数据处理,批数据处理,暂停、恢复、多租户等,对于Spark、Hive、MR、Flink、Clickhouse等平台都可以直接调用。
此外,Kettle本身包含调度平台的功能,我们可以直接在KJB文件中定义定时调度任务,也可以通过操作系统定时任务来启动Kettle,还可以去Kettle中文网申请KettleOnline在线调度管理系统。
Kettle通过KJB任务里面的START组件可以设置定时调度器,操作界面如图13-5所示。
此外,在Kettle中文网还提供了功能更为强大的KettleOnline工具,非常适合较大型Kettle项目使用。具体功能这里就不展开了,如图13-6所示是KettleOnline设置定时任务的页面。
除了上述调度工具以外,还有一些小众的WEB调度工具,例如Taskctl、XXL-JOB等。总的来说,都能满足基本的需求。有研发实力的公司可以在开源版本的基础上进一步完善功能,打造属于自己公司的调度平台。
更多书中内容,请关“数据中台研习社”公众号或者移步京东购买(链接:https://search.jd.com/Search?keyword=%E9%AB%98%E6%95%88%E4%BD%BF%E7%94%A8Greenplum)。