作为一个IT从业不满三年的菜鸟,可能写类似总结性的文章还是比较费力,但是我还是想尝试写一篇比较出色总结,那么我讲从数据调度N个方面依次详细讲述ETL调度问题。
回答内容如下:
1.什么是数据调度
2.数据调度的
3.数仓调度的工具
- crontab
- quartz
- airflow
- azkaban
- oziee
4.数据仓库的架构
5.寻找合适数仓架构
1.什么是数据调度
调度在运筹学中被定义为”分配一组资源来执行一组任务,以获得生产任务执行时间或成本的最优‘’。数据调度和运筹学中的调度还是有明显的差异,数据调度强调的是触发条件,时间触发和条件触发。
这里明显区别于资源调度系统。虽说都是调度,但是两者有本质的区别:任务调度系统负责一个任务何时运行,何时结束以及正确的处理任务之间的依赖关系。流程的正确性是核心;资源调度系统更关注系统物理资源的分配,例如CPU、内存等的使用。系统资源的最大化利用才是核心。
而调度在计算机任务的实现可以依赖操作系统的定时任务进行触发(例如Linux系统的Crontab),主要针对单任务机制的触发,调度最基本的需要能够按时或者按照事件进行触发(At-least-once),
如果任务不符合预期,还需要在应用端进行重试,最大可能保证任务被按时执行,并且成功执行,同时不能多次执行(Exactly once);但是在业务场景能保证可重复执行、一致性操作情况下对于争取能正常调度执行多次执行也是不可或缺的。
大多数人都以为是才智成就了科学家,他们错了,是品格。---爱因斯坦