基于多源表时效性一致的下游任务触发方法及装置与流程

摘要: 本申请主要涉及大数据,尤其涉及一种基于多源表时效性一致的下游任务触发方法及装置。背景技术:1、在数据工场等数据处理平台中,下游任务通常依赖多张源表完成关联、聚合...
基于多源表时效性一致的下游任务触发方法及装置与流程

本申请主要涉及大数据,尤其涉及一种基于多源表时效性一致的下游任务触发方法及装置。

背景技术:

1、在数据工场等数据处理平台中,下游任务通常依赖多张源表完成关联、聚合或状态拼接等数据处理操作。例如,用户画像任务可能同时依赖用户主表、行为事件表和权益状态表;指标任务可能同时依赖曝光表、点击表和转化表;特征生产任务可能同时依赖事实表和多个维表。由于各源表的上游写入频率、cdc同步延迟、数据量大小以及失败重试等因素的差异,各表的处理边界推进速度通常不一致,部分表在特定时间片内可能不存在新增数据,且系统未将该时间片无新增数据的状态显式记录。

2、现有技术中,一种常见做法是在任一源表就绪后即触发下游任务。然而该方式导致下游任务读取到处于不同处理边界的多张源表数据,即输入数据存在时间面错位,直接影响多表关联、状态拼接、宽表生成及特征计算等任务的结果稳定性。

3、另一种常见做法是要求所有依赖表均推进至同一处理边界后再触发下游任务。该方式虽可减少输入错位,但整条数据处理链路会被推进速度最慢的源表阻塞。尤其当某张源表在特定时间片本不存在新增数据、且系统未显式确认该时间片无新增数据时,下游任务将持续等待,导致链路整体时效性显著下降。

4、此外,由开发人员人工判断是否补跑、放行或忽略某张源表的落后状态也是一种常见方式。但该方式依赖人工经验,不同下游任务的处理标准难以统一,且随链路规模扩大,维护成本持续增加。

技术实现思路

1、本申请的目的在于提供一种基于多源表时效性一致的下游任务触发方法及装置,用以解决多源表处理边界推进不一致时下游任务触发困难的问题。

2、在第一方面,本申请提供了一种基于多源表时效性一致的下游任务触发方法,包括:针对下游任务维护对应的依赖源表集合及一致性窗口,所述依赖源表集合包括所述下游任务执行时所需读取的至少一个源表,所述一致性窗口为针对所述至少一个源表的处理边界设定的差值阈值,所述处理边界用于表征所述源表在数据处理过程中的最新进展;在所述下游任务触发之前,读取所述至少一个源表各自的处理边界,确定各所述处理边界之间的差值集合,并判断所述差值集合中是否存在超过所述一致性窗口的差值,若不存在,则触发所述下游任务执行,否则,迭代执行边界推进步骤,并在每次迭代后重新判断所述差值集合中是否存在超过所述一致性窗口的差值,直至所述差值集合中不存在超过所述一致性窗口的差值,触发所述下游任务执行,所述边界推进步骤包括:将所述至少一个源表中的处理边界最小的源表作为落后表,检测所述落后表在目标处理边界是否存在未处理的真实增量,所述目标处理边界不大于所述至少一个源表中其他源表的最大处理边界,并且所述目标处理边界与所述最大处理边界之间的差值不大于所述一致性窗口;若存在,则等待真实批次消耗所述真实增量以推进所述落后表的处理边界;否则,生成对应所述落后表的不携带真实业务数据的空批次,并执行所述空批次以推进所述落后表的处理边界。

3、在第二方面,本申请提供了一种基于多源表时效性一致的下游任务触发装置,包括:依赖关系管理模块,用于针对下游任务维护对应的依赖源表集合及一致性窗口,所述依赖源表集合包括所述下游任务执行时所需读取的至少一个源表,所述一致性窗口为针对所述至少一个源表的处理边界设定的差值阈值;边界管理模块,用于维护所述源表的处理边界,所述处理边界用于表征所述源表在数据处理过程中的最新进展;一致性判断模块,用于在所述下游任务触发之前,读取所述至少一个源表各自的处理边界,确定各所述处理边界之间的差值集合,并判断所述差值集合中是否存在超过所述一致性窗口的差值;落后表识别模块,用于当所述差值集合中存在超过所述一致性窗口的差值时,将所述至少一个源表中的处理边界最小的源表作为落后表;空推进判定模块,用于检测所述落后表在目标处理边界是否存在未处理的真实增量,所述目标处理边界不大于所述至少一个源表中其他源表的最大处理边界,并且所述目标处理边界与所述最大处理边界之间的差值不大于所述一致性窗口;空批次生成模块,用于当不存在未处理的真实增量时,生成对应所述落后表的不携带真实业务数据的空批次;边界推进模块,用于当存在未处理的真实增量时,等待真实批次消耗所述真实增量以推进所述落后表的处理边界,以及当已生成对应所述落后表的不携带真实业务数据的空批次时,执行所述空批次以推进所述落后表的处理边界,在每次推进后触发所述一致性判断模块重新判断;任务触发模块,用于当所述差值集合中不存在超过所述一致性窗口的差值时,触发所述下游任务执行。

4、第三方面,本申请提供了一种电子设备,包括:一个或多个处理器;以及耦合到一个或多个处理器并在其上存储指令的一个或多个存储器;当指令由一个或多个处理器单独或共同执行时,使所述电子设备执行上述第一方面的方法。

5、第四方面,本申请提供了一种存储有机器可执行指令的非瞬时计算机可读存储介质,所述机器可执行指令当被机器的一个或多个处理器执行时,使所述机器执行上述第一方面的方法。

6、与背景技术相比,本申请的技术方案具有以下的有益效果:

7、本技术方案通过针对下游任务维护对应的依赖源表集合及一致性窗口,实现了按下游任务独立判断一致性,不同下游任务各自管理自己的依赖关系和窗口阈值,避免了一张源表落后而阻塞所有下游任务;在下游任务触发之前,先读取各源表的处理边界并判断差值集合中是否存在超过一致性窗口的差值,避免了在输入数据时间面明显错位的情况下直接执行下游任务,从而减少了多表关联、状态拼接、宽表生成等下游任务因读取不同时间面数据导致的结果波动;当差值超过一致性窗口时,通过检测落后表在目标处理边界是否存在未处理的真实增量,区分真实落后与状态落后,避免了对所有落后表无差别等待;对于落后表,生成不携带真实业务数据的空批次并执行以推进处理边界,避免污染底层事实数据;通过迭代推进和重新判断的闭环机制,实现下游任务在多源表处理边界满足一致性要求后可被自动触发,从而解决了人工依赖的问题。

1.一种基于多源表时效性一致的下游任务触发方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述处理边界是根据所述下游任务的类型确定的,其中:

3.如权利要求1所述的方法,其特征在于,检测所述落后表在目标处理边界是否存在未处理的真实增量,包括:

4.如权利要求1所述的方法,其特征在于,所述空批次包括以下字段:

5.如权利要求4所述的方法,其特征在于,执行所述空批次以推进所述落后表的处理边界,包括:

6.如权利要求1所述的方法,其特征在于,执行所述空批次以推进所述落后表的处理边界之后,还包括:

7.如权利要求1所述的方法,其特征在于,所述差值集合包括各所述处理边界的最大处理边界与最小处理边界之间的差值;或者,所述至少一个源表包括主表和从表,所述差值集合包括所述主表的处理边界与各所述从表的处理边界之间的差值。

8.一种基于多源表时效性一致的下游任务触发装置,其特征在于,包括:

9.一种电子设备,其特征在于,包括:一个或多个处理器;以及耦合到一个或多个处理器并在其上存储指令的一个或多个存储器;当指令由一个或多个处理器单独或共同执行时,使所述电子设备执行如权利要求1-7中任一项所述的方法。

10.一种存储有机器可执行指令的非瞬时计算机可读存储介质,其特征在于,所述机器可执行指令当被机器的一个或多个处理器执行时,使所述机器执行如权利要求1-7中任一项所述的方法。