数据仓库之任务调度。
概述
随着数据仓库的开发,ETL作业会越来越多,怎么把这些作业有序的运行起来,就需要一个健壮的调度系统来保证数据能够准确、及时的提供给BI应用程序。
调度系统架构
- ETL作业
数据仓库的ETL作业可能不至一种,需要把各种作业再次进行封装,建立作业的标准格式,统一作业的输入参数、输出参数和参数格式,达到所有的作业调度方式一致。
- 作业管理
提供便捷的作业配置和依赖关系配置页面。
- 作业调度
根据作业调度算法进行自动执行,如果发生异常情况可以进行人工重启和停止。
- 作业监控
对作业运行情况进行监控,发送邮件或者提供监控页面
常用的调度组件
组件名 | 属性标签 | 特性 | 使用场景 |
---|---|---|---|
azkaban | 调度工具 | 处理有依赖关系的复杂任务调度,只支持mysql存储基本信息 | 常用调度工具之一 |
crontab | linux自带调度工具 | 简单任务调度 | 适用日常少量调度 |
ooize | 调度工具 | 处理复杂任务调度,但好像并不好用 | 大数据领域调度工具之一(Oozie, Azkaban,Cascading,Hamake) |
作业调度状态
初始化:把新添加的作业加入到执行计划中。
待运行:根据时间和依赖关系把可执行的任务更新为待运行。
运行中:把待运行的任务执行,更新为运行中。
结束:作业运行完成,分为成功和失败。