数据处理方法及装置与流程

文档序号:32866860发布日期:2023-01-07 02:13阅读:26来源:国知局
数据处理方法及装置与流程

1.本技术涉及数据处理技术领域,更具体的说,是涉及一种数据处理方法及装置。


背景技术:

2.在数据处理领域,具备着批处理和流处理两种处理方式,其中,批处理方式通常是指收集并存储t日的数据,并在t+1日批量处理t日的数据,流处理方式是实时处理接收到的数据。
3.为同时实现批处理方式和流处理方式,需要存储两份数据,并布设两个数据处理系统以便两系统分别执行批处理和流处理,需要消耗两套资源、编写并维护两种程序,实现成本较高。


技术实现要素:

4.鉴于上述问题,提出了本技术以便提供一种数据处理方法及装置,以降低实现批处理和流处理的成本。
5.具体方案如下:
6.第一方面,提供了一种数据处理方法,包括:
7.配置不同种类的数据表之间的加工依赖关系;
8.生成被依赖表的处理日志,其中,所述处理日志包括用于表征本表的数据处理周期的数据处理开始时间和数据处理结束时间;
9.根据所述加工依赖关系确定依赖于所述被依赖表进行数据处理的目标依赖表;
10.判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,若均加工完毕,则利用所述目标依赖表所依赖的全部被依赖表加工所述目标依赖表,在所述目标依赖表加工完毕后,将所述目标依赖表转化为新的被依赖表,并返回执行所述生成被依赖表的处理日志的步骤,直至根据所述加工依赖关系无法确定出目标依赖表为止;
11.其中,初始时刻生成的被依赖表为由源系统数据生成的时间拉链表,所述时间拉链表的处理日志中的数据处理开始时间和数据处理结束时间分别是所述时间拉链表的数据生效开始时间和生效结束时间。
12.可选的,所述被依赖表的处理日志是在所述被依赖表生成之后,利用所述被依赖表的加工线程生成的处理日志;
13.所述判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,包括:
14.利用所述目标依赖表的加工线程执行下述步骤:
15.获取所述被依赖表的处理日志中的数据处理周期,得到目标数据处理周期;
16.根据所述加工依赖关系,确定所述目标依赖表所依赖的全部被依赖表;
17.判断确定的全部被依赖表在所述目标数据处理周期内是否均加工完毕。
18.可选的,所述利用所述目标依赖表所依赖的全部被依赖表加工所述目标依赖表,包括:
19.利用所述确定的全部被依赖表在所述目标数据处理周期内的数据,加工所述目标依赖表的增量数据,根据所述增量数据生成所述目标依赖表。
20.可选的,所述根据所述加工依赖关系确定依赖于所述被依赖表进行数据处理的目标依赖表,包括:
21.利用所述被依赖表的加工线程将所述被依赖表的处理日志发送到消息中间件,以供目标依赖表的加工线程获取,其中,所述目标依赖表是所述加工依赖关系中的需要依赖所述被依赖表进行数据处理的表;
22.所述判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,包括:
23.在所述目标依赖表的加工线程获取到所述被依赖表的处理日志的情况下,利用所述目标依赖表的加工线程判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕。
24.可选的,所述时间拉链表是通过下述步骤生成的:
25.通过消息中间件获取源系统数据库中的操作日志,根据所述操作日志生成源系统的时间拉链表。
26.第二方面,提供了一种数据处理装置,包括:
27.依赖关系配置单元,用于配置不同种类的数据表之间的加工依赖关系;
28.处理日志生成单元,用于生成被依赖表的处理日志,其中,所述处理日志包括用于表征本表的数据处理周期的数据处理开始时间和数据处理结束时间,初始时刻生成的被依赖表为由源系统数据生成的时间拉链表,所述时间拉链表的处理日志中的数据处理开始时间和数据处理结束时间分别是所述时间拉链表的数据生效开始时间和生效结束时间;
29.依赖表加工进程启动单元,用于根据所述加工依赖关系确定依赖于所述被依赖表进行数据处理的目标依赖表,在根据所述加工依赖关系无法确定出目标依赖表的情况下,结束数据处理;
30.依赖表加工单元,用于判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,若均加工完毕,则利用所述目标依赖表所依赖的全部被依赖表加工所述目标依赖表,在所述目标依赖表加工完毕后,将所述目标依赖表转化为新的被依赖表,并令所述处理日志生成单元执行所述生成被依赖表的处理日志的步骤,直至根据所述加工依赖关系无法确定出目标依赖表为止。
31.可选的,所述被依赖表的处理日志是在所述被依赖表生成之后,利用所述被依赖表的加工线程生成的处理日志;
32.所述依赖表加工单元判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕的过程,包括:
33.利用所述目标依赖表的加工线程执行下述步骤:
34.获取所述被依赖表的处理日志中的数据处理周期,得到目标数据处理周期;
35.根据所述加工依赖关系,确定所述目标依赖表所依赖的全部被依赖表;
36.判断确定的全部被依赖表在所述目标数据处理周期内是否均加工完毕。
37.可选的,所述依赖表加工单元利用所述目标依赖表所依赖的全部被依赖表加工所述目标依赖表的过程,包括:
38.利用所述确定的全部被依赖表在所述目标数据处理周期内的数据加工所述目标依赖表的增量数据,根据所述增量数据生成所述目标依赖表。
39.可选的,所述依赖表加工进程启动单元根据所述加工依赖关系确定依赖于所述被依赖表进行数据处理的目标依赖表的过程,包括:
40.利用所述被依赖表的加工线程将所述被依赖表的处理日志发送到消息中间件,以供目标依赖表的加工线程获取,其中,所述目标依赖表是所述加工依赖关系中的需要依赖所述被依赖表进行数据处理的表;
41.所述依赖表加工单元判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕的过程,包括:
42.在所述目标依赖表的加工线程获取到所述被依赖表的处理日志的情况下,利用所述目标依赖表的加工线程判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕。
43.可选的,该装置还包括时间拉链表生成单元,用于通过消息中间件获取源系统数据库中的操作日志,根据所述操作日志生成源系统的时间拉链表。
44.借由上述技术方案,本技术预先配置了数据表间的加工依赖关系,由源系统数据预先生成了初始时刻的被依赖表,在本轮数据处理的过程中,每生成一个被依赖表,即生成一个被依赖表的处理日志,启动一次目标依赖表的数据加工进程,其中,所述目标依赖表是根据预设的加工依赖关系确定的依赖所述被依赖表进行数据处理的表,所述目标依赖表的数据加工进程包括判断所述目标依赖表加工所需的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,若均加工完毕,则利用其加工所需的全部被依赖表进行数据加工,得到加工完毕的所述目标依赖表,将所述目标依赖表转化为新的被依赖表,并生成所述新的被依赖表的处理日志,以便依赖所述新的被依赖表进行数据处理的各个依赖表启动各自的数据加工进程,直到根据所述加工依赖关系无法确定出目标依赖表,结束本轮数据处理,实现了数据的批量处理。并且本方案将根据源系统数据生成的时间拉链表作为初始时刻的被依赖表,即本轮数据处理以所述时间拉链表为最底层的被依赖表,在上述的情况下,即使某一依赖表依赖于除所述时间拉链表之外的被依赖表进行数据处理,其利用的数据也是所述时间拉链表中的数据的处理结果。对于一个确定的数据处理周期的时间拉链表,本方案可以基于所述时间拉链表进行一次数据的批量处理,生成一系列被依赖表,因此通过为时间拉链表配置小于一天的数据处理周期,甚至是为其配置分钟级的数据处理周期,可以提高数据处理的实时性,从而由一套系统实现实时和批量的数据处理需求,避免了由两套系统分别进行数据流处理和批处理导致的数据指标不一致的情况的发生,降低了实现流处理和批处理的成本。
附图说明
45.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
46.图1为本技术实施例提供的一种数据处理方法的流程示意图;
47.图2为本技术实施例提供的一种数据处理装置结构示意图。
具体实施方式
48.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.本技术提供了一种数据处理方法及装置,可以降低实现批处理和流处理的成本。
50.图1是根据本技术实施例示出的一种数据处理方法的流程示意图。结合图1所示,该方法可以包括如下步骤:
51.步骤s101、配置不同种类的数据表之间的加工依赖关系。
52.示例性的,一组加工依赖关系可以包括被依赖表a和依赖表b,其中,在对依赖表b进行数据处理时,需要利用到被依赖表a的数据,并且还可能会利用到除被依赖表a以外的其他被依赖表的数据。需要说明的是,可以将欲进行数据处理的表称为依赖表,将用于为其他表的数据处理提供数据的表称为被依赖表。
53.步骤s102、生成被依赖表的处理日志。
54.其中,所述处理日志可以包括用于表征本表的数据处理周期的数据处理开始时间和数据处理结束时间,需要说明的是,在处理日志中记录数据处理的开始时间和数据处理结束时间,可以用于确定该被依赖表中的数据是否为有效数据,具体的,所述被依赖表的处理日志可以供依赖所述被依赖表进行数据处理的依赖表判断所述被依赖表是否加工完毕。此外,被依赖表的处理日志可以是在本表生成之后记录生成的处理日志,可以表征本表已经加工完成,以及其他依赖于本表进行数据处理的依赖表可以启动各自的加工线程。
55.示例性的,所述处理日志可以由本表的表名、本表的数据处理开始时间和数据处理结束时间以及本表的数据处理周期组成,其中,所述数据处理周期可以是进行所述被依赖表的数据处理所花费的时间。
56.需要说明的是,所述被依赖表可以是初始时刻的被依赖表,也可以是由依赖所述被依赖表进行数据处理得到的依赖表转化来的被依赖表,其中,初始时刻生成的被依赖表可以为由源系统数据生成的时间拉链表,所述时间拉链表的处理日志中的数据处理开始时间和数据处理结束时间分别是所述时间拉链表的数据生效开始时间和生效结束时间。
57.步骤s103、根据所述加工依赖关系,判断是否存在依赖于所述被依赖表进行数据处理的目标依赖表,若是,则执行步骤s104,否则执行步骤s107。
58.需要说明的是,可能存在着多个依赖于所述被依赖表进行数据处理的目标依赖表,若存在多个确定的目标依赖表,则对每一个目标依赖表执行后续步骤。
59.步骤s104、判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,若是,则执行步骤s105。
60.需要说明的是,对于步骤s104的判断结果为否的情况,可以在该情况下等待并重复执行步骤s104,直到判断结果为是,也可以在该情况下直接结束,并在所述目标依赖表所依赖的任一其他被依赖表加工完毕、生成所述其他被依赖表的处理日志之后,重新触发执
行步骤s103及后续的步骤,其中,所述其他被依赖表是除所述步骤s102所提及的被依赖表以外的表。
61.也就是说,生成所述目标依赖表所依赖的任一被依赖表的处理日志,是启动所述目标依赖表的加工进程的触发条件,而所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内均加工完毕,是开始进行所述目标依赖表的数据处理的触发条件。
62.步骤s105、利用所述目标依赖表所依赖的全部被依赖表加工所述目标依赖表。
63.步骤s106、在所述目标依赖表加工完毕后,将所述目标依赖表转化为新的被依赖表,并返回执行步骤s102、生成被依赖表的处理日志。
64.需要说明的是,返回执行步骤s102后,所生成的处理日志是所述步骤s106中生成的新的被依赖表。
65.步骤s107、结束循环,完成数据处理。
66.需要说明的是,若根据所述加工依赖关系无法确定出依赖于所述被依赖表进行数据处理的目标依赖表,则可以表征在本轮数据处理中,所有数据表均加工完毕,本轮数据处理已完成。
67.上述的数据处理方法可以应用于数据仓库,示例性的,所述数据仓库可以是基于大规模并行处理架构(massively parallelprocessing,mpp)或分布式系统基础架构hadoop搭建起数据仓库。本技术预先配置了数据表间的加工依赖关系,由源系统数据预先生成了初始时刻的被依赖表,在本轮数据处理的过程中,每生成一个被依赖表,即生成一个被依赖表的处理日志,启动一次目标依赖表的数据加工进程,其中,所述目标依赖表是根据预设的加工依赖关系确定的依赖所述被依赖表进行数据处理的表,所述目标依赖表的数据加工进程包括判断所述目标依赖表加工所需的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,若均加工完毕,则利用其加工所需的全部被依赖表进行数据加工,得到加工完毕的所述目标依赖表,将所述目标依赖表转化为新的被依赖表,并生成所述新的被依赖表的处理日志,以便依赖所述新的被依赖表进行数据处理的各个依赖表启动各自的数据加工进程,直到根据所述加工依赖关系无法确定出目标依赖表,结束本轮数据处理,实现了数据的批量处理。并且本方案将根据源系统数据生成的时间拉链表作为初始时刻的被依赖表,即本轮数据处理以所述时间拉链表为最底层的被依赖表,在上述的情况下,即使某一依赖表依赖于除所述时间拉链表之外的被依赖表进行数据处理,其利用的数据也是所述时间拉链表中的数据的处理结果。对于一个确定的数据处理周期的时间拉链表,本方案可以基于所述时间拉链表进行一次数据的批量处理,生成一系列被依赖表,因此通过为时间拉链表配置小于一天的数据处理周期,甚至是为其配置分钟级的数据处理周期,可以提高数据处理的实时性,从而由一套系统实现实时和批量的数据处理需求,避免了由两套系统分别进行数据流处理和批处理导致的数据指标不一致的情况的发生,降低了实现流处理和批处理的成本。
68.在本技术提供的一些实施例中,所述时间拉链表可以是通过下述步骤生成的:
69.通过消息中间件获取源系统数据库中的操作日志;
70.根据所述操作日志生成源系统的时间拉链表。
71.具体的,所述源系统数据库的操作日志(binlog)可以是由所述消息中间件采集、解析并发送到应用本技术方案的数据仓库的操作日志;此外,本技术方案无需生成源表,即
可根据源系统的操作日志生成时间拉链表,提高了数据处理的效率。
72.在本技术提供的一些实施例中,所述被依赖表的处理日志可以是在所述被依赖表生成之后,利用所述被依赖表的加工线程生成的处理日志。
73.在上述的基础上,所述判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,可以包括利用所述目标依赖表的加工线程执行下述步骤:
74.步骤s01、获取所述被依赖表的处理日志中的数据处理周期,得到目标数据处理周期。
75.步骤s02、根据所述加工依赖关系,确定所述目标依赖表所依赖的全部被依赖表。
76.步骤s03、判断确定的全部被依赖表在所述目标数据处理周期内是否均加工完毕。
77.需要说明的是,各依赖表均具备各自的加工线程,可以允许不同的依赖表同时进行数据加工,不同的加工线程同时工作;此外,对于由依赖表转化而来的被依赖表,该被依赖表的加工线程是转化前的依赖表的加工线程。
78.在本技术提供的一些实施例中,所述利用所述目标依赖表所依赖的全部被依赖表加工所述目标依赖表,可以包括:
79.步骤s11、利用所述确定的全部被依赖表在所述目标数据处理周期内的数据,加工所述目标依赖表的增量数据。
80.需要说明的是,对于非初始时刻的被依赖表而言,所述确定的全部被依赖表在所述目标数据处理周期内的数据也可以是增量数据。
81.步骤s12、根据所述增量数据生成所述目标依赖表。
82.具体的,所述步骤s12可以包括根据所述增量数据采取数据更新或插入操作,生成所述目标依赖表。
83.上述的数据处理方法可以基于增量数据进行的数据处理,而无需获取全量数据,再进行全量数据的加工,因此,本技术提供的数据处理方法减少了数据处理所需花费的时间,提升了数据处理的性能。
84.在本技术提供的一些实施例中,所述根据所述加工依赖关系确定依赖于所述被依赖表进行数据处理的目标依赖表,可以包括:
85.利用所述被依赖表的加工线程将所述被依赖表的处理日志发送到消息中间件,以供目标依赖表的加工线程获取,其中,所述目标依赖表是所述加工依赖关系中的需要依赖所述被依赖表进行数据处理的表。
86.需要说明的是,所述加工依赖关系中可能不存在需要依赖所述被依赖表进行数据处理的表,即无法确定出目标依赖表,也就是说,在本轮数据处理中,全部的数据表均加工完成,则在上述情况下,结束循环,完成本轮数据处理。
87.在上述的基础上,所述判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,可以包括:
88.在所述目标依赖表的加工线程获取到所述被依赖表的处理日志的情况下,利用所述目标依赖表的加工线程判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕。
89.具体的,目标依赖表的加工线程可以通过所述消息中间件订阅所述目标依赖表所
依赖的全部被依赖表的消息,所述消息可以是所述处理日志,借由消息中间件可以在被依赖表生成或加工完毕后,通过所述被依赖表的处理日志主动通知所述被依赖表的目标依赖表,以便各个依赖表进行各自的数据处理。
90.下面对本技术实施例提供的数据处理装置进行描述,下文描述的数据处理装置与上文描述的数据处理方法可相互对应参照。
91.参见图2,图2为本技术实施例公开的一种数据处理装置结构示意图。
92.如图2所示,该装置可以包括:
93.依赖关系配置单元11,用于配置不同种类的数据表之间的加工依赖关系;
94.处理日志生成单元12,用于生成被依赖表的处理日志,其中,所述处理日志包括用于表征本表的数据处理周期的数据处理开始时间和数据处理结束时间,初始时刻生成的被依赖表为由源系统数据生成的时间拉链表,所述时间拉链表的处理日志中的数据处理开始时间和数据处理结束时间分别是所述时间拉链表的数据生效开始时间和生效结束时间;
95.依赖表加工进程启动单元13,用于根据所述加工依赖关系确定依赖于所述被依赖表进行数据处理的目标依赖表,在根据所述加工依赖关系无法确定出目标依赖表的情况下,结束数据处理;
96.依赖表加工单元14,用于判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕,若均加工完毕,则利用所述目标依赖表所依赖的全部被依赖表加工所述目标依赖表,在所述目标依赖表加工完毕后,将所述目标依赖表转化为新的被依赖表,并令所述处理日志生成单元执行所述生成被依赖表的处理日志的步骤,直至根据所述加工依赖关系无法确定出目标依赖表为止。
97.在本技术提供的一些实施例中,所述被依赖表的处理日志可以是在所述被依赖表生成之后,利用所述被依赖表的加工线程生成的处理日志。
98.在上述的基础上,所述依赖表加工单元14判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕的过程,可以包括:
99.利用所述目标依赖表的加工线程执行下述步骤:
100.获取所述被依赖表的处理日志中的数据处理周期,得到目标数据处理周期;
101.根据所述加工依赖关系,确定所述目标依赖表所依赖的全部被依赖表;
102.判断确定的全部被依赖表在所述目标数据处理周期内是否均加工完毕。
103.在本技术提供的一些实施例中,所述依赖表加工单元14利用所述目标依赖表所依赖的全部被依赖表加工所述目标依赖表的过程,可以包括:
104.利用所述确定的全部被依赖表在所述目标数据处理周期内的数据加工所述目标依赖表的增量数据,根据所述增量数据生成所述目标依赖表。
105.在本技术提供的一些实施例中,所述依赖表加工进程启动单元13根据所述加工依赖关系确定依赖于所述被依赖表进行数据处理的目标依赖表的过程,可以包括:
106.利用所述被依赖表的加工线程将所述被依赖表的处理日志发送到消息中间件,以供目标依赖表的加工线程获取,其中,所述目标依赖表是所述加工依赖关系中的需要依赖所述被依赖表进行数据处理的表。
107.在上述的基础上,所述依赖表加工单元14判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕的过程,可以包括:
108.在所述目标依赖表的加工线程获取到所述被依赖表的处理日志的情况下,利用所述目标依赖表的加工线程判断所述目标依赖表所依赖的全部被依赖表在所述被依赖表的数据处理周期内是否均加工完毕。
109.在本技术提供的一些实施例中,该装置还可以包括时间拉链表生成单元,用于通过消息中间件获取源系统数据库中的操作日志,根据所述操作日志生成源系统的时间拉链表。
110.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
111.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
112.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1