liteflow整体分为两个模块,控制台以及执行者;其中控制台负责任务的关系以及执行的调度,执行者负责任务的具体执行。控制台中主要的功能围绕在任务以及任务流。
一、主要功能介绍
1.任务
1)任务创建需要根据任务的周期(分、时、天等)来设置,同时需要指定任务执行的cron表达式;其中任务周期是用来任务上下游间关联的依据,例如用来计算一周的pv总量(即上游任务为天,下游任务为周),这时会依据周期,下游任务会自动关联上上游任务周一到周日的任务,只有上游的七个任务都执行成功后下游才会执行,这样就能保证数据不会出现漏掉的情况
2)选择任务运行的插件,即任务执行类型(hive、Python、shell等),任务的执行插件主要是执行者来实现,通过容器、插件、任务详情来实现任务的执行,这个后续会有具体介绍
从表单中可以看出,任务需要指定是否可以并发,并发指的是同一时间同一个任务的不同任务版本是否可以同时运行,如果为否,需要指定运行策略。1)忽略:即忽略正在运行的任务,将其设置为成功状态,然后当前任务版本再执行,这种情况适合任务运行一次和多次没有区别的情况,例如统计统计某网站当天的pv数时。2)等待:需要等待上一个任务版本执行完成后,再执行当前任务,这种情况适合任务执行以来上一次任务执行后产生的数据,例如统计每个小时环比变化数据时。
二、任务流
1.创建任务流
在大数据ETL相关工作中,需要依赖任务流来保证各种数据层的计算,也就是我们现在提到的任务流,任务流的核心是DAG原理来保证任务的按一定的规则来运行,任务流创建后,需要将已添加的任务通过图形界面建立好关联
1)通过图形界面编辑任务流
通过将鼠标在任务节点上右键可以添加任务,来实现任务的上下游关系
2)任务流修复
在日常工作很多情况下需要对任务进行再一次修复,通过图形界面可以实现任务流中所有任务、从某个节点、仅某个任务的修复;任务流的修复会根据主节点任务来完成数据的展示,依据主节点任务的任务版本以及任务流中任务关系来完成某个版本下任务流下的任务实例关系
总结:
liteflow整个的核心其实是通过任务流来保证各个任务按照DAG的关系实现任务的顺序执行,以保证每个任务对应能够在上游任务数据ready的前提下再去执行,从而保证数据的一致性