DataLeap以项目作为任务开发、管理的基本单位。创建项目后,才能使用DataLeap进行任务开发。
一个工作项目支持绑定E-MapReduce(EMR)、LAS等多种类型的计算引擎实例。绑定引擎实例后,即可在项目中开发和调度引擎任务。
任务是对数据执行的操作的定义。
您可以执行如下操作:
进入 任务开发 页面,新建、编辑任务的配置信息。
进入 运维中心 页面,对任务进行单个、批量关闭、开启、移动等操作。
新建的任务提交上线后,才可以按照配置执行。
已经上线过的任务改动后,需要重新提交上线,新的配置才会生效。
任务上线后不会自动终止已经生成的实例,手动重跑后,实例才会按照修改后的任务执行。
具体的任务状态如下:
任务状态 | 任务名称前图标颜色 | 具体说明 |
---|---|---|
草稿未上线 | 任务没有上线过 | |
草稿与线上版本不一致 | 任务上线过,草稿与线上配置不一致 | |
任务已上线,无草稿版本 | 任务上线了,草稿与线上配置一致 | |
说明:当任务为关闭/下线状态时,任务名称前的图标会有一个关闭图标。 |
实例是某个任务在某一时刻执行的一个快照。任务经过系统调度、手动触发运行后,会生成一个实例。实例中会有任务的运行时间、运行状态和运行日志等信息。
可以进入 运维中心-> 实例运维 页面,查询实例的相关信息。
在任务上线运行前,可通过调试运行确认任务配置、数据处理结果是否符合预期。
说明:
任务执行需同时满足以下两个条件:
在任务调度设置中,设定的执行时间到达。
在实例DAG中,任务依赖的所有上游任务的对应实例执行成功。
执行时间:由您设定,任务在哪个时间开始执行。
业务日期:任务本次运行,处理的是哪一天/小时/分钟的数据。
不同执行频率的任务的业务时间代表含义如下:
天/周/月任务的业务时间=执行日期前一天0点
小时任务的业务时间=执行时间前一个小时
同一天执行的小时任务和天任务,业务时间的日期部分相差一天。 当小时任务和天任务彼此依赖时,通过 依赖预览 ,可以确认依赖配置是否符合预期。
${date}等更多时间变量请参见:平台时间变量与常量说明。
可以在DataLeap中通过界面管理资源和函数。请参见:资源库和函数库。
任务上线后,有两种调度类型:周期调度和手动调度。
周期调度:系统按照您设定的执行频率、执行时间,自动触发任务执行。
手动调度:手动触发任务执行。
定时任务的本质是数据处理,在处理数据过程中,可能会涉及数据输入和数据输出两个过程。任务在读入数据时,会形成任务之间的依赖,其实质即为表之间的依赖,数据开发使用任务依赖,来形成数据工作流的上下游关系。
月任务:本月任务的执行,依赖上月的运行结果。
周任务:本周任务的执行,依赖上周的运行结果。
天任务:当天任务的执行,依赖昨天的运行结果。
小时任务:当前小时的任务执行,依赖上一个小时的运行结果。
分钟任务:当前分钟的任务实例执行,依赖上一个分钟任务实例的运行结果。
说明:M-月执行频率,W-周执行频率,D-天执行频率,H-小时执行频率
类型 | 实际案例 | 偏移设置(区间/集合 偏移量 偏移单位) |
---|---|---|
D依赖D | 依赖上游任务当天的实例 | 集合 0 天 |
D依赖D | 依赖上游任务前一天的实例 | 集合 -1 天 |
D依赖D | 依赖上游任务最近3天的实例 | 区间 [-2,0] 天 |
D依赖H | 依赖上游任务同一业务日期24个小时的实例 | 区间 [-23,0] 小时 |
D依赖H | 依赖上游任务同一业务日期业务日期为0点、8点、16点的实例 | 集合 [-23,-15,-7] 小时 |
D依赖W | 依赖上游任务上周的实例 | 集合 -1 周 |
D依赖M | 依赖上游任务上月的实例 | 集合 -1 月 |
Sensor任务包括以下两种类型:
Hive-sensor任务:监控指定表数据分区数据是否就绪。
HDFS-sensor任务:监控指定HDFS路径下数据是否存在。
在数据开发中,当数据表存在以下情况时,可利用sensor任务检测表指定分区数据是否存在。
目标任务运行前,需要确认所需表分区数据是否存在。
没有任务定时更新目标任务使用的数据表。