开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks小时任务依赖天任务时,为什么小时任务只执行了一个实例,这个怎么解决?

DataWorks小时任务依赖天任务时,为什么小时任务只执行了一个实例,这个怎么解决?

展开
收起
真的很搞笑 2023-11-06 13:41:04 50 0
3 条回答
写回答
取消 提交回答
  • 【跨周期依赖】

    背景描述:节点依赖可以分为同周期依赖和跨周期依赖,即依赖上游节点上一周期实例还是当天的实例。

    同周期依赖在运维中心展示为实线,跨周期依赖在运维中心展示为虚线,自动解析默认解析的是同周期依赖。

    做了跨周期依赖,记得将同周期依赖去掉,否则会同时依赖该节点昨天和今天的实例。

    如果不清楚如何去除依赖回复机器人:删除输入
    image.png

    【三种跨周期依赖】

    1.一层子节点

    节点依赖关系:依赖当前节点的下游。例如节点A存在B、C、D三个下游节点,依赖一层子节点是指节点A依赖B、C、D三个节点的上一周期,即本次节点是否运行取决于上一周期下游节点是否运行成功。

    业务场景:本次(本周期)节点的运行,依赖下游节点上一周期对本节点上一周期结果表(即本节点输出表)的数据清洗结果是否成功(如果需要查看下游节点对当前节点数据清洗结果是否符合预期,可以对下游节点产出的结果表配置数据质量规则)。

    2.本节点

    节点依赖关系:跨周期自依赖(依赖当前节点的上一周期),即本次节点是否运行取决于上一周期本节点是否运行成功。

    业务场景:本周期节点运行依赖上一周期该节点业务数据的产出情况。(如果需要查看节点数据清洗结果是否符合预期,可以对节点产出的结果表配置数据质量监控规则。)

    3.自定义:

    手动输入需要依赖的其他节点,此处需要输入节点ID。如果存在多个节点,需用逗号(,)分隔,例如12345,23456。

    节点依赖关系:手动输入需要依赖的节点,本周期节点运行取决于自定义依赖的节点上一周期该是否运行成功。

    业务场景:业务逻辑上需要依赖其他业务的数据正常产出,但本节点中没有操作该业务数据。
    说明: 依赖上一周期和依赖本周期的区别:在运维中心中查看节点依赖关系时,所有跨周期依赖的节点都会以虚线的形式展示。

    注意:下线节点时需要删除节点依赖关系,需要下线的依赖关系包括同周期依赖及跨周期依赖。

    【节点自依赖对当前节点任务运行的影响】
    假设小时任务0点开始调度,每6小时调度一次。
    image.png

    不设置自依赖情况下,所有实例同时调起。

    设置自依赖情况下,前一个实例执行成功,下一个实例才会执行。
    image.png

    【节点设置自依赖后对下游节点执行时间影响---天任务依赖小时任务】
    场景一:天任务直接依赖小时任务
    天任务依赖小时任务:直接依赖时,需要小时任务当天所有实例运行完天任务才会运行;
    image.png

    场景二:天任务依赖某一个小时具体实例
    如果需要依赖小时任务第几个实例的话,需要小时任务设置自依赖(依赖上一周期配置项选择:本节点),天任务定时时间和需要依赖的小时任务的第几个实例的定时时间保持一致。
    image.png

    【依赖配置 FAQ】
    【场景一】:我的上游A是小时任务,下游B是日调度,B任务每天在A任务全部执行完成之后要汇总执行一次,这样可以设置依赖关系吗?
    天任务可以直接依赖小时任务,A任务为小时调度任务,B任务为日调度不定时,B任务直接依赖A任务场景下,B任务会依赖当天A任务所有小时实例。也就是等小时任务最后一个任务执行完成后,天任务才会执行。每个任务的调度周期都是任务本身时间属性决定。

    【场景二】我的需求是A任务每天每小时整点执行一次,B任务每天跑一次,但是希望A任务每天第一次跑成功后B任务就跑起,这样可以怎么配置?
    A任务配置时,需要勾选“依赖上一周期” 选“本节点”,然后B任务的定时时间为0点,这样每天自动调度实例里B任务实例就只依赖A任务0点实例即A任务第一个实例。

    注意:天依赖小时任务,需要将小时任务设置为依赖自己上一周期,这样天任务就能找到离自己最近的一个小时实例,等这个小时实例运行完成后,天任务就会触发了。

    【场景三】
    A任务每周一跑一次,B任务依赖A任务,也希望跟A任务一样每周1跑一次怎么配置?
    B任务的时间属性跟A任务一模一样即可,也就是调度周期也要选“周调度”“周一”。

    【相关语料】
    依赖的父节点输出不存在 依赖的上游

    【DAG图出现虚线:,什么原因?】

    运维中心DAG图出现虚线节点且同名,节点设置自依赖
    image.png

    如果自依赖的节点没有运行,请找到任务最开始出错的节点,修复错误重跑。

    如果不需要自依赖,到数据开发的调度配置界面将依赖上一周期勾选框去掉再重新发布即可。,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-11-07 21:47:42
    赞同 展开评论 打赏
  • 如果DataWorks中的小时任务仅运行一个实例并且依赖天任务,则可能需要配置跨周期依赖以解决此问题。
    一种可能的解决方案是在上游小时任务中配置“依赖上一周期>本节点”。这样,当天任务到达其计划的时间点(例如每天中午12点)时,它将等待直至该小时任务的所有实例完成,然后开始运行自身实例。
    此外,还需要确保所有相关任务的启动条件和触发器都已正确设置,以便它们能够按预期运行。

    2023-11-06 21:59:44
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果您的 DataWorks 小时任务只执行了一个实例,则可能的原因有:

    • 当前天任务尚未运行完畢,因此无法触发后续小时任务;
    • 天任务和小时任务的调度频率不匹配;
    • 小时任务设置了固定的运行时刻,使得运行时间错位;
    • 小时任务仅在一个时间段内触发过一次。

    为了修复这个问题,可以尝试以下解决方案:

    1. 检查天任务是否仍在运行,若尚未运行完毕,则等待天任务完成;
    2. 根据您的业务需求,调整天任务和小时任务的调度频率;
    3. 核实小时任务是否设置了固定的时间段,如果存在,则重新设置;
    4. 检查小时任务是否有条件触发限制,如有,则查看是否满足触发条件。
    2023-11-06 13:47:21
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 热门讨论

    热门文章

    相关电子书

    更多
    DataWorks数据集成实时同步最佳实践(含内测邀请)-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载

    相关实验场景

    更多