本申请涉及计算机领域,具体涉及数据调度方法、装置、电子设备及存储介质。
背景技术:
以轮询的方式进行数据调度是数据库系统最为常用的功能。一次数据调度过程为一次生成目标数据表中的最新的数据的过程。
目前,以轮询的方式进行数据调度时通常采用的方式为:在每一次数据调度过程中,通过执行对中间数据表进行更新的操作生成中间数据表中的最新的数据,通过执行对目标数据表进行更新的操作,从中间数据表中获取最新的数据,生成目标数据表中的最新的数据。每一次数据调度过程的时长为对中间数据表进行更新的操作的执行时长与对目标数据表进行更新的操作的执行时长之和。
每一次数据调度过程中参与数据调度的源数据的数据量均较大,每一次数据调度的时长均较长。如何减少以轮询的方式进行数据调度的总时长,提升以轮询的方式进行数据调度的效率,成为一个亟待解决的问题。
技术实现要素:
本申请实施例提供了数据调度方法、装置。
第一方面,本申请实施例提供了数据调度方法,该方法包括:
获取源数据;
在完成第一次执行的中间数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作;
在完成第n次执行的中间数据表更新操作并且完成第n-1次执行的目标数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作,n大于1并且n小于预设调度总次数;
其中,中间数据表更新操作用于基于获取到的所有源数据中的部分源数据,生成中间数据表中的最新的数据,拷贝操作用于将中间数据表中的最新的数据拷贝到拷贝数据表中,目标数据表更新操作用于基于从拷贝数据表获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据。
第二方面,本申请实施例提供了数据调度装置,该装置包括:
数据获取单元,被配置为:获取源数据;
并行执行单元,被配置为:在完成第一次执行的中间数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作;以及在完成第n次执行的中间数据表更新操作并且完成第n-1次执行的目标数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作,n大于1并且n小于预设调度总次数;其中,中间数据表更新操作用于基于获取到的所有源数据中的部分源数据,生成中间数据表中的最新的数据,拷贝操作用于将中间数据表中的最新的数据拷贝到拷贝数据表中,目标数据表更新操作用于基于从拷贝数据表获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据。
本申请的实施例提供的技术方案,通过获取源数据;在完成第一次执行的中间数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作;在完成第n次执行的中间数据表更新操作并且完成第n-1次执行的目标数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作,n大于1并且n小于预设调度总次数。实现了减少以轮询的方式进行数据调度的总时长,提升以轮询的方式进行数据调度的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1示出了本申请实施例提供的数据调度方法的一个的流程图;
图2示出了数据调度过程的一个流程图;
图3示出了本申请实施例提供的数据调度装置的一个结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1是本申请实施例提供的数据调度方法的一个的流程图。该方法的各个步骤可以由服务器执行,该方法包括以下步骤:
步骤101,获取源数据。
在本申请中,源数据存储在源数据表中。在以轮询方式进行数据时,可以获取多个源数据表,获取到的所有源数据表中的源数据组成所有源数据。每一次数据调度,利用所有数据表中的部分数据表中的源数据,生成目标数据表中的数据。每一次数据调度利用的源数据不同。
步骤102,在预设情况下,执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作。
在本申请中,一次数据调度过程为一次生成目标数据表中的最新的数据的过程。在以轮询方式进行数据调度的过程中,重复地执行步骤102,每一次执行步骤102利用获取到的所有源数据中的部分源数据,生成目标数据表中的相应的最新的数据,直到获取到的所有源数据均被利用去生成目标数据表中的相应的最新的数据,停止执行步骤102。
在本申请中,在以轮询方式进行数据调度的过程中,第一次执行步骤102时,预设情况为完成第一次执行的中间数据表更新操作这一情况。在第一次之后的每一次执行步骤102时,预设情况为完成第n次执行的中间数据表更新操作并且完成第n-1次执行的目标数据表更新操作这一情况。n大于1并且n小于预设调度总次数。
在本申请中,当以轮询方式进行数据调度,首先执行中间数据表更新操作。换言之,在整个以轮询方式进行数据调度中,第一个执行的操作为第1次执行的中间数据表更新操作。
在本申请中,在完成第1次执行的中间数据表更新操作的情况下,执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作。
在完成第1次执行的中间数据表更新操作的情况下,执行拷贝操作是指第1次执行拷贝操作,执行中间数据表更新操作并且执行目标数据表更新操作是指第2次执行中间数据表更新操作并且第1次执行目标数据表更新操作。第2次执行的中间数据表更新操作与第1次执行的数据表更新操作同时开始执行。
在本申请中,在完成第n次执行的中间数据表更新操作并且完成第n-1次执行的目标数据表更新操作的情况下,执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作。
在本申请中,n大于1并且n小于预设调度总次数。预设调度总次数为在以轮询方式进行数据调度时数据调度的总次数。以轮询方式进行数据调度时数据调度的总次数基于获取到的所有源数据的数据量确定。通过预设调度总次数次数据调度,使得获取到的所有源数据均被利用去生成目标数据表中的相应的最新的数据。
假设预设调度次数为t,n小于t,则n的最大值为t-1。在完成第t次执行的中间数据表更新操作并且完成第t-1次执行的目标数据表更新操作的情况下,第t次执行拷贝操作。在完成第t次执行的拷贝操作的情况下,第t次执行目标数据表更新操作。
通过第t次执行的目标数据表更新操作可以第t次生成目标数据表中的最新的数据,完成第t次执行的目标数据表更新操作,则完成第t次数据调度。在完成第t次执行目标数据表更新操作的情况下,则通过预设调度总次数次数据调度,使得获取到的所有源数据均被利用去生成目标数据表中的相应的最新的数据。因此,在完成第t次执行的中间数据表更新操作并且完成第t-1次执行的目标数据表更新操作的情况下,不会在第t次执行目标数据表更新操作同时第t 1次执行中间数据表更新操作。
在本申请中,在完成第n次执行的中间数据表更新操作并且完成第n-1次执行的目标数据表更新操作的情况下,执行拷贝操作是指第n次执行拷贝操作,执行中间数据表更新操作并且执行目标数据表更新操作是指第n 1次执行中间数据表更新操作并且第n次执行目标数据表更新操作。第n 1次执行的中间数据表更新操作与第n次执行的目标数据表更新操作同时开始执行。
例如,当n为2时,第2次执行的中间数据表更新操作与第1次执行的目标数据表更新操作同时开始执行,在完成第2次执行的中间数据表更新操作并且完成第1次执行的目标数据表更新操作的情况下,第2次执行拷贝操作;在完成第2次执行的拷贝操作的情况下,第3次执行中间数据表更新操作并且第2次执行目标数据表更新操作。
当n为3时,第3次执行的中间数据表更新操作与第2次执行的目标数据表更新操作同时开始执行,在完成第3次执行的中间数据表更新操作并且完成第2次执行的目标数据表更新操作的情况下,第3次执行拷贝操作;在完成第3次执行的拷贝操作的情况下,第4次执行目标数据表更新操作并且第3次执行目标数据表更新操作,依次类推。
假设预设调度次数为t,n的最大值为t-1,当n为t-1时,第t-1次执行的中间数据表更新操作与第t-2次执行的目标数据表更新操作同时开始执行,在完成第t-1次执行的中间数据表更新操作并且完成第t-2次执行的目标数据表更新操作的情况下,第t-1次执行拷贝操作;在完成第t-1次执行的拷贝操作的情况下,第t次执行中间数据表更新操作并且第t-1次执行目标数据表更新操作。
在完成第t次执行的中间数据表更新操作并且完成第t-1次执行的目标数据表更新操作的情况下,第t次执行拷贝操作。在完成第t次执行拷贝操作的情况下,第t次执行目标数据表更新操作。
在本申请中,每一次执行的中间数据表更新操作基于的源数据不同。
例如,在以轮询方式进行数据调度时,对获取到的所有源数据表进行分组,得到多个源数据表组,每一个源数据表组可以包括多个源数据表。每一次执行的中间数据表更新操作分别基于一个源数据表组中的每一个源数据表中的源数据,生成中间数据表中的最新的数据。第1次执行的中间数据表更新操作基于第1个源数据表组中的每一个源数据表中的源数据,生成中间数据表中的最新的数据,第2次执行的中间数据表更新操作基于第2个源数据表组中的每一个源数据表中的源数据,生成中间数据表中的最新的数据,以此类推。
在本申请中,每一次完成中间数据表更新操作,将通过中间数据表更新操作生成的数据加入到中间数据表中,通过中间数据表更新操作生成的数据作为中间数据表中的最新的数据。从而,每一次完成中间数据表更新操作,生成中间数据表中的最新的数据。
例如,在第t 1次执行中间数据表更新操作之前,中间数据表中的最新的数据为通过第t次执行中间数据表更新操作生成的数据。t的取值为1、2、3、4......。在完成第t 1次执行的中间数据表更新操作的情况下,将通过第t 1次执行的中间数据表更新操作生成的数据加入到中间数据表中,通过第t 1次执行的中间数据表更新操作生成的数据作为中间数据表中的最新的数据。
在本申请中,拷贝操作用于将中间数据表中的最新的数据拷贝到拷贝数据表中。每一次完成中间数据表更新操作,均执行拷贝操作,将中间数据表中的最新的数据拷贝到拷贝数据表中。
例如,在完成第t次执行的中间数据表更新操作的情况下,中间数据表中的最新的数据为通过第t次执行的中间数据表更新操作生成的数据。第t次执行拷贝操作用于将通过第t次执行的中间数据表更新操作生成的数据拷贝到拷贝表中。t的取值为1、2、3、4......。
在本申请中,目标数据表更新操作用于从拷贝数据表中获取中间数据表中的最新的数据,基于获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据。
在本申请中,每一次完成目标数据表更新操作,将通过目标数据表更新操作生成的数据加入到目标数据表中,通过目标数据表更新操作生成的数据作为目标数据表中最新的数据。从而,每一次完成目标数据表更新操作,生成目标数据表中的最新的数据。
例如,在第t 1次执行目标数据表更新操作之前,目标数据表中的最新的数据为通过第t次执行的目标数据表更新操作生成的数据。t的取值为1、2、3、4......。在完成第t 1次执行的目标数据表更新操作时,将通过第t 1次执行的目标数据表更新操作生成的数据加入到目标数据表中,通过第t 1次执行的目标数据表更新操作生成的数据作为目标数据表中的最新的数据。
在一些实施例中,基于获取到的所有源数据中的部分源数据,生成中间数据表中的最新的数据包括:对所有源数据中的部分数据进行整合处理,得到的中间数据表中的最新的整合数据;以及基于从拷贝数据表获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据包括:对从拷贝数据表获取到的中间数据表中的最新的整合数据进行汇总处理,得到目标数据表中的最新的汇总数据。
在本申请中,中间数据表中的数据可以为整合数据。中间数据表也可以称之为整合数据表。目标数据表中的数据可以为汇总数据,目标数据表也可以称之为汇总数据表。
在本申请中,每一次完成中间数据表更新操作,将通过中间数据表更新操作生成的整合数据加入到中间数据表中,通过中间数据表更新操作生成的整合数据作为中间数据表中的最新的整合数据。从而,每一次完成中间数据表更新操作,生成中间数据表中的最新的整合数据。
在本申请中,获取到的所有源数据可以由获取到的所有源数据表中的源数据组成。获取到的所有源数据中的部分源数据可以为由获取到的所有数据表中的部分数据表中的源数据组成。
在本申请中,对获取到的所有源数据中的部分源数据进行整合处理可以包括:从获取到的所有源数据中的部分源数据中选取出符合预设条件的源数据,将符合预设条件的源数据进行聚合,得到整合数据。
在本申请中,在本申请中,每一次完成目标数据表更新操作,将通过目标数据表更新操作生成的汇总数据加入到目标数据表中,通过目标数据表更新操作生成的汇总数据作为目标数据表中最新的汇总数据。从而,每一次完成目标数据表更新操作,生成目标数据表中的最新的汇总数据。
在本申请中,汇总处理包括:计算整合数据在一些指标上的统计值。
例如,整合数据是通过对多个源数据表中的源数据进行整合处理之后得到。每一个源数据表中的源数据为员工的业绩的数据。源数据表包括:表示员工的姓名的字段、表示员工销售的保单的月销售量、表示员工销售的保单的月销售额的字段等。多个源数据表中的每一个源数据表中的每一条数据包括员工的姓名、员工的保单月销售量、员工的保单月销售额等。整合数据中的每一条数据包括符合预设条件的姓名、员工销售的保单的月销售量、员工销售的保单的月销售额等。汇总处理包括:计算整合数据在员工销售的保单的月销售量、员工销售的保单的月销售额等指标上的平均值。汇总数据包括符合预设条件的员工的保单月销售量的平均值、符合预设条件的员工销售的保单月销售额的平均值等。
在一些实施例中,中间数据表更新操作的执行时长与目标数据表更新操作的执行时长相等。
中间数据表更新操作的执行时长与执行的中间数据表更新操作所基于的源数据的数据量相关。目标数据表更新操作的执行时长与在执行目标数据表更新操作时,从拷贝数据表获取到的中间数据表中的最新的数据的数据量相关。中间数据表中的最新的数据的数据量取决于执行的中间数据表更新操作所基于的源数据的数据量。
在本申请中,可以预先设置在执行的中间数据表更新操作所基于的源数据的数据量,使得中间数据表更新操作的执行时长与目标数据表更新操作的执行时长相等。从而,在每一次生成目标数据表中的最新的数据的过程中,同时开始执行中间数据表更新操作与目标数据表更新操作,同时完成中间数据表更新操作与目标数据表更新操作。
在一些实施例中,中间数据表更新操作的执行时长大于目标数据表更新操作的执行时长。
在本申请中,当中间数据表更新操作的执行时长大于目标数据表更新操作的执行时长时,在每一次调度数据调度中,在本次数据调度中执行的目标数据表更新操作完成之后,等待本次数据调度中执行的中间数据表更新操作完成,在本次数据调度中执行的目标数据表更新操作和本次数据调度中执行的中间数据表更新操作均完成之后,才开始进行下一次数据调度。
在一些实施例中,中间数据表更新操作的执行时长小于目标数据表更新操作的执行时长。
在本申请中,当中间数据表更新操作的执行时长小于目标数据表更新操作的执行时长时,在每一次调度数据调度中,在本次数据调度中执行的中间数据表更新操作完成之后,等待本次数据调度中执行的目标数据表更新操作完成,在本次数据调度中执行的中间数据表更新操作和本次数据调度中执行的目标数据表更新操作均完成之后,才开始进行下一次数据调度。
在一些实施例中,在执行拷贝操作之后,还包括:生成触发标识,触发标识用于触发中间数据表更新操作执行。
在本申请中,可以利用用于执行拷贝操作和目标数据表更新操作的线程执行拷贝操作和目标数据表更新操作,利用用于执行中间数据表更新操作的线程执行中间数据表更新操作。在利用用于执行拷贝操作和目标数据表更新操作的线程每一次完成拷贝操作的情况下,用于执行拷贝操作和目标数据表更新操作的线程直接执行目标数据表更新操作。在执行拷贝操作期间,用于执行中间数据表更新操作的线程处于睡眠状态。
因此,在每一次完成拷贝操作的情况下,为了使得用于执行中间数据表更新操作的线程可执行中间数据表更新操作,需要唤醒用于执行中间数据表更新操作的线程。
在本申请中,在完成一次拷贝操作的情况下,可以生成用于触发中间数据表更新操作执行的触发标识。将触发标识写入存储区域中的用于存储触发标识的位置上。负责唤醒用于执行中间数据表更新操作的线程的程序可以实时检测在存储区域中的用于存储触发标识的位置上是否存储有触发标识,当检测到有触发标识时,则唤醒用于执行中间数据表更新操作的线程,以执行中间数据表更新操作。
在一些实施例中,还包括:响应于中间数据表更新操作执行,删除该触发标识。
在本申请中,在每一次数据调度中,在完成拷贝操作的情况下,在通过触发标识唤醒用于执行中间数据表更新操作的线程,用于执行中间数据表更新操作的线程开始执行中间数据表更新操作之后,可以响应于中间数据表更新操作执行,删除该触发标识。
在本申请中,一次数据调度过程为一次生成目标数据表中的最新的数据的过程。每一次生成目标数据表中的最新的数据,可以视为一次数据调度过程完成。
在本申请中,由于在每一次数据调度过程中,执行目标数据表更新操作所基于的中间数据表中的最新的数据是从拷贝数据表中获取的。因此,在执行目标数据表更新操作期间,中间数据表的数据发生变化也不会对目标数据表更新操作的执行结果造成影响。在执行目标数据表更新操作期间,可以同时对中间数据表进行更新。换言之,在执行目标数据表更新操作期间,可以同时执行中间数据表更新操作。
在本申请中,对于在第一次数据调度过程之后的每一次数据调度过程,数据调度过程的时长即生成目标数据表中的最新的数据的时长为拷贝操作的执行时长与目标数据表更新操作的执行时长之和。
以下通过将本申请中的数据调度过程与现有技术的数据调度过程进行对比来说明本申请的有益效果:
在现有技术中,在每一次数据调度过程即每一次生成目标数据表中的最新的数据的过程中,均通过以下步骤完成一次数据调度过程:首先通过执行对中间数据表进行更新的操作生成中间数据表中的最新的数据。在完成对中间数据表进行更新的操作之后,通过执行对目标数据表进行更新的操作,从中间数据表中获取中间数据表中的最新的数据,根据从中间数据表中获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据。
在现有技术中,每一次数据调度过程的时长为对中间数据表进行更新的操作的执行时长 对目标数据表进行更新的操作的执行时长。
而在本申请中,由于在每一次数据调度过程中,在执行目标数据表更新操作时,是从拷贝数据表中获取中间数据表中的最新的数据。在执行目标数据表更新操作期间,对中间数据表的更新不会影响目标数据表更新操作的执行。
因此,在本申请中,在执行目标数据表更新操作期间,可以同时执行中间数据表更新操作。在本申请中,第t次执行的目标数据表更新操作与第t 1次执行的中间数据表更新操作可以同时开始执行,t的取值为1、2、3、4......。当目标数据表更新操作的执行时长与中间数据表更新操作的执行时长相等时,同时完成第t次执行的目标数据表更新操作与第t 1次执行的中间数据表更新操作。
在本申请中,只有第一次数据调度过程的时长即第一次生成目标数据表中的最新的数据所需的时长为中间数据表更新操作的执行时长 拷贝操作的执行时长 目标数据表更新操作的时长。
在本申请中,在第一次数据调度过程之后的每一次数据调度过程的时长均为拷贝操作的执行时长 目标数据表更新操作的执行时长。
本申请中的拷贝操作仅涉及将中间数据表中的最新的数据拷贝到目标数据表中,不涉及对数据的处理,生成新的数据,本申请中的拷贝操作的执行时长很小。现有技术中的对中间数据表进行更新的操作的执行时长涉及对大量的源数据进行处理。本申请中的拷贝操作的执行时长远小于现有技术中的对中间数据表进行更新的操作的执行时长。
因此,本申请中的第一次数据调度过程的时长仅比现有技术中的第一次数据调度的时长多拷贝时长这一很小的时长。本申请中的在第一次数据调度过程之后的每一次数据调度过程的时长均远小于现有技术的在第一次数据调度过程之后的每一次数据调度过程的时长,可以大幅度减小以轮巡方式进行数据调度的总时长。
请参考图2,其示出了数据调度过程的一个流程图。
对中间数据表进行更新的操作可以称之为a操作,对目标数据表进行更新的操作可以称之为b操作,拷贝操作可以称之为c操作。中间数据表为包括整合数据的整合数据表,目标数据表为包括汇总数据的汇总数据表。源数据表1-源数据表n中的源数据组成所有源数据。每一次执行a操作,基于所有源数据表中的部分源数据表中的源数据,生成整合数据表中的最新的整合数据。
在本申请汇中,对中间数据表进行更新的操作称之为中间数据表更新操作,对目标数据表进行更新的操作称之为目标数据表更新操作。
在图2中,示出的源数据表、整合数据表、汇总数据表的数量仅是示例性的。源数据表、整合数据表、汇总数据表的数量可以根据获取到的所有源数据的数据量进行调整。
每一次完成a操作,通过a操作生成的最新的整合数据可以加入到一个整合数据表中。每一次完成b操作,将通过b操作生成的最新汇总数据加入到一个汇总表中,也可以将通过b操作生成的最新的汇总数据划分为多个部分,将每一个部分分别加入到一个汇总表中。
在以轮巡方式进行数据调度时,a操作的执行时长为a,b操作的执行时长的执行时长为b,c操作的执行时长为c。
在现有技术中,调度过程不包括c操作。而在本申请中,由于调度过程中包括c操作,使得在每一次数据调度过程中,b操作可以从拷贝数据表中获取整合数据表中的最新的整合数据,基于从拷贝数据表中获取到的整合数据表中的最新的整合数据,生成目汇总数据表中的最新的汇总数据。因此,在执行b操作期间,可以同时执行a操作。c操作仅涉及拷贝数据,不涉及对数据的处理,c操作的时长c很小,而a操作涉及对多个源数据表中的每一个源数据表中的源数据进行整合处理,因此,c操作的时长c远小于a操作的执行时长a。
在本申请中,以轮询方式进行数据调度的过程为:
在以轮询方式进行数据调度时,首先执行的操作为a操作。
第1次执行的a操作对获取到的所有源数据中的一部分源数据进行整合处理,生成整合数据表中的最新的整合数据。
例如第1次执行的a操作对源数据表1和源数据表2中的源数据进行整合处理,生成整合数据表中的最新的整合数据。
在完成第1次执行的a操作的情况下,第1次执行拷贝操作,在完成第1次执行的拷贝操作的情况下,第2次执行a操作并且第1次执行b操作。第2次执行的a操作与第1次执行的b操作同时开始执行。当a操作的执行时长与b操作的执行时长相等时,同时完成第2次执行的a操作与第1次执行的b操作。
第2次执行的a操作对所有获取到的源数据中的一部分源数据进行整合处理,生成整合数据表中的最新的整合数据。
例如,第2次执行的a操作对源数据表3和源数据表4中的源数据进行整合处理,生成整合数据表中的最新的整合数据。
在完成第2次执行的a操作和第1次执行的b操作的情况下,第2次执行拷贝操作,在完成第2次执行的拷贝操作的情况下,第3次执行a操作并且第2次执行b操作。第3次执行的a操作与第2次执行的b操作同时开始执行。当a操作的执行时长与b操作的执行时长相等时,同时完成第3次执行的a操作与第2次执行的b操作。
依次类推,直到所有源数据表中的数据均被利用去生成汇总数据表中的相应的最新的汇总数据,完成以轮询方式进行数据调度。
在现有技术中,每一次数据调度的时长均为a b。
而在本申请中,只有第一次数据调度的过程的时长为a b c。本申请中的第一次数据调度过程的时长仅比现有技术中的第一次数据调度的时长多c这一很小的时长。
本申请中的在第一次数据调度过程之后的每一次数据调度过程的时长均为c b。c操作仅涉及拷贝数据,不涉及对数据的处理,c操作的执行时长c很小,远小于涉及对多个源数据表中的每一个源数据表中的源数据进行整合处理a操作的执行时长a。因此,相对于现有技术,本申请中的在第一次数据调度过程之后的每一次数据调度过程的时长均比现有技术中的在第一次数据调度过程之后的每一次数据调度过程的时长少a-c。可以大幅度减小以轮巡方式进行数据调度的总时长。
请参考图3,其示出本申请实施例提供的数据调度装置的一个结构示意图。本申请实施例提供的数据调度装置中的各个单元被配置为完成的操作的具体实现方式可以参考方法实施例中描述的相应的操作的具体实现方式。
如图3所示,数据调度装置包括:数据获取单元301,并行执行单元302。
数据获取单元301被配置为:获取源数据。
并行执行单元302被配置为:在完成第一次执行的中间数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作;以及在完成第n次执行的中间数据表更新操作并且完成第n-1次执行的目标数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作,n大于1并且n小于预设调度总次数;其中,中间数据表更新操作用于基于获取到的所有源数据中的部分源数据,生成中间数据表中的最新的数据,拷贝操作用于将中间数据表中的最新的数据拷贝到拷贝数据表中,目标数据表更新操作用于基于从拷贝数据表获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据。
在一些实施例中,中间数据表更新操作的执行时长与目标数据表更新操作的执行时长相等。
在一些实施例中,中间数据表更新操作的执行时长大于目标数据表更新操作的执行时长。
在一些实施例中,中间数据表更新操作的执行时长小于目标数据表更新操作的执行时长。
在一些实施例中,数据调度装置还包括:触发单元,被配置为:在完成拷贝操作的情况下,生成触发标识,所述触发标识用于触发中间数据表更新操作执行。
在一些实施例中,数据调度装置还包括:删除单元,被配置为:响应于中间数据表更新操作执行,删除所述触发标识。
在一些实施例中,所述基于获取到的所有源数据中的部分源数据,生成中间数据表中的最新的数据包括:对所述所有源数据中的部分数据进行整合处理,得到的中间数据表中的最新的整合数据;以及所述基于从拷贝数据表获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据包括:对从拷贝数据表获取到的中间数据表中的最新的整合数据进行汇总处理,得到目标数据表中的最新的汇总数据。
本申请还提供了一种电子设备,该电子设备可以配置有一个或多个处理器;存储器,用于存储一个或多个程序,一个或多个程序中可以包括用以执行上述实施例中描述的操作的指令。当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行上述实施例中描述的操作的指令。
本申请还提供了一种计算机可读介质,该计算机可读介质可以是电子设备中所包括的;也可以是单独存在,未装配入电子设备中。上述计算机可读介质承载有一个或者多个程序,当一个或者多个程序被服务器执行时,使得服务器执行上述实施例中描述的操作。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包括或存储程序的有形介质,该程序可以被消息执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多方面形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由消息执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包括的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行消息。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机消息的组合来实现。
以上描述仅为本请求的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术实施例,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术实施例。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术实施例。
1.一种数据调度方法,其特征在于,所述方法包括:
获取源数据;
在完成第一次执行的中间数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作;
在完成第n次执行的中间数据表更新操作并且完成第n-1次执行的目标数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作,n大于1并且n小于预设调度总次数;
其中,中间数据表更新操作用于基于获取到的所有源数据中的部分源数据,生成中间数据表中的最新的数据,拷贝操作用于将中间数据表中的最新的数据拷贝到拷贝数据表中,目标数据表更新操作用于基于从拷贝数据表获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据。
2.根据权利要求1所述的方法,其特征在于,中间数据表更新操作的执行时长与目标数据表更新操作的执行时长相等。
3.根据权利要求1所述的方法,其特征在于,中间数据表更新操作的执行时长大于目标数据表更新操作的执行时长。
4.根据权利要求1所述的方法,其特征在于,中间数据表更新操作的执行时长小于目标数据表更新操作的执行时长。
5.根据权利要求1-4之一所述的方法,其特征在于,所述方法还包括:
在完成拷贝操作的情况下,生成触发标识,所述触发标识用于触发中间数据表更新操作执行。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于中间数据表更新操作执行,删除所述触发标识。
7.根据权利要求6所述的方法,其特征在于,所述基于获取到的所有源数据中的部分源数据,生成中间数据表中的最新的数据包括:
对所述所有源数据中的部分数据进行整合处理,得到中间数据表中的最新的整合数据;以及
所述基于从拷贝数据表获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据包括:
对从拷贝数据表获取到的中间数据表中的最新的整合数据进行汇总处理,得到目标数据表中的最新的汇总数据。
8.一种数据调度装置,其特征在于,所述装置包括:
数据获取单元,被配置为:获取源数据;
并行执行单元,被配置为:在完成第一次执行的中间数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作;以及在完成第n次执行的中间数据表更新操作并且完成第n-1次执行的目标数据表更新操作的情况下,执行以下步骤:执行拷贝操作;在完成拷贝操作的情况下,执行中间数据表更新操作并且执行目标数据表更新操作,n大于1并且n小于预设调度总次数;
其中,中间数据表更新操作用于基于获取到的所有源数据中的部分源数据,生成中间数据表中的最新的数据,拷贝操作用于将中间数据表中的最新的数据拷贝到拷贝数据表中,目标数据表更新操作用于基于从拷贝数据表获取到的中间数据表中的最新的数据,生成目标数据表中的最新的数据。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
技术总结