=====这是一个广告位,招租中,联系qq 78315851====
3 条回复 A 作者 M 管理员
  1. 在阿里云 DataWorks 中,跨周期依赖是指一个周期内的某个任务依赖于另一个周期内的任务输出结果。通常情况下,DataWorks 中的任务调度是基于周期的,即按照指定的调度周期(例如每天、每周、每月等)执行任务。如果一个任务依赖于另一个周期内的任务输出结果,就涉及到了跨周期依赖的问题。
    跨周期依赖在数据处理中比较常见,例如某个任务需要在每天的凌晨执行,但是它的输入数据来源于前一天的任务输出结果。这种情况下,就涉及到了跨周期依赖。如果不处理跨周期依赖,可能会导致任务执行失败或者输出结果不正确。
    为了解决跨周期依赖的问题,DataWorks 提供了丰富的任务调度和依赖配置功能。例如,可以通过配置任务的依赖关系,将当前周期的任务设置为依赖于上一个周期的任务输出结果,以确保任务的执行顺序和正确性。同时,还可以通过配置调度参数和数据分片等参数,优化任务的执行效率和稳定性。
    需要注意的是,跨周期依赖涉及到任务的状态管理、数据传输和存储等多个方面,需要仔细设计和调试,以确保任务的正确性和可靠性。同时

  2. Dataworks 中的「跨周期依赖」是指在数据开发工作流程中,一个节点依赖于另一个周期内的节点的输出结果。这种依赖关系允许数据开发人员在不同的周期内(例如天、周、月)对数据进行处理和分析。

    通常情况下,数据开发工作流程中的节点是按照特定的周期(如天)顺序执行的。每个周期内的节点会使用上一个周期的输出结果作为输入。然而,在某些情况下,可能需要跨越不同周期的节点之间建立依赖关系,以实现更复杂的数据处理逻辑。

    使用跨周期依赖功能,可以在 Dataworks 中设置节点与其他周期内节点之间的依赖关系。这样,可以确保在当前周期的节点执行之前,依赖节点已经完成并产生了所需的输出结果。这种方式可以实现数据处理的灵活性和复杂性,同时确保数据的准确性和一致性。

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

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

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

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

    【三种跨周期依赖】

    1.一层子节点

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

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

    2.本节点

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

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

    3.自定义:

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

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

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

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

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

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

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

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

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

    【依赖配置 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图出现虚线节点且同名,节点设置自依赖

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

    如果不需要自依赖,到数据开发的调度配置界面,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

  4. 跨周期依赖是针对小时任务的,也就是小时任务依赖同一天的上一个周期。

    比如每个节点按照小时进行调度,那当前的节点能否调度起来需要依赖于上一个周期是否成功返回了。另外一部分就是跨版本依赖,这种依赖就是针对于天依赖的任务做的,比如今天任务能否成功运行依赖于昨天的任务能否成功返回,这里更多的会有一些数据的先后依赖关系,因此在这部分需要做跨版本的依赖配置。而自依赖可以理解成为跨周期和跨版本的依赖,针对于天任务,如果配置了自依赖,那么就是会依赖于昨天版本的实例。针对于小时任务,就会依赖于每天的最后一个周期。

    DataWorks支持三种跨周期依赖模式(依赖上一周期):

    一层子节点:依赖当前节点的下游。例如,节点A存在b、c、d三个下游节点,依赖一层子节点是指节点A依赖   b、c、d三个节点的上一周期。 本节点:依赖当前节点的上一周期(即自依赖)。 自定义:手动输入需要依赖的节点id,多个节点间英文逗号分隔,依赖该id节点的上一周期。

    不要重复配置依赖,调度配置中配置了“依赖上一周期”后,在“父节点输出”那里,不要重复配置依赖,否则会出现依赖上游“昨天+今天”两天的实例等情况。