1.本技术属于计算机技术领域,尤其涉及一种数据处理方法、统一数据处理器及可读存储介质。
背景技术:2.在人力成本上升、人口老龄化等大环境下,伴随着机器人技术的发展,商用服务机器人的市场需求持续陡增,投入到使用的商用服务机器人的数量日益增多。随着众多商用服务机器人的持续使用,每天都会产生大量的机器人数据,机器人将产生的数据上报到业务数据库或者文件服务器中。机器人不同类型的数据一般会分散在多个不同的业务数据库。
3.目前在对机器人数据进行分析时,应用系统或者客户端直接通过业务数据库查询获取数据,然后再针对获取的数据进行分析计算。这样的操作应用系统或者客户端需要先通过网络从业务数据库拉取数据再进行本地计算,因此数据处理效率低下;并且由于应用系统或者客户端的本地计算资源有限,在面临机器人海量数据时应用系统或者客户端可能会崩溃;并且应用系统或者客户端对业务数据库进行大量数据读取也会对业务数据库的数据存储产生影响。
4.因此,如何在减少对业务数据库数据存储业务的影响,并保证应用系统或者客户端运行顺畅的情况下,实现对多个业务数据库的海量机器人数据进行分析处理成为亟待解决的技术问题。
技术实现要素:5.本技术实施例提供了一种数据处理方法、统一数据处理器及可读存储介质。
6.第一方面,本技术实施例提供了一种数据处理方法,应用于统一数据处理器,所述统一数据处理器包括多个计算节点和至少一个管理节点,至少一个所述管理节点包括一个主管理节点,所述主管理节点通过统一接口与应用系统连接;其中所述主管理节点存储有各个所述计算节点的资源信息,多个所述计算节点同步存储有多个数据源中的数据;所述方法包括:
7.通过所述主管理节点接收所述应用系统发送的计算任务并根据所述计算任务确定计算信息;
8.根据所述计算任务和各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定第一目标计算节点,并将所述计算信息发送至所述第一目标计算节点;
9.根据所述计算任务,通过所述第一目标计算节点从多个所述计算节点和/或多个所述数据源获取初始数据,并基于所述初始数据进行计算完成所述计算任务。
10.上述实施例中,统一数据处理器设置多个计算节点和一个主管理节点,其中多个计算节点中同步存储有多个数据源(例如业务数据库和日志文件服务器)中的数据,而主管
理节点通过统一接口与应用系统连接。应用系统只需向统一数据处理器下发计算任务指令,统一数据处理器中的主管理节点和多个计算节点就可以根据计算任务指令进行相应的数据处理进而完成计算任务。应用系统只需要向统一数据处理器下发计算任务指令,而无需进行数据处理,从而可以降低应用系统的数据处理压力。并且由于多个计算节点同步存储有多个数据源中的数据,因此当计算任务指令所涉及的数据存储在多个计算节点中时,用于进行计算任务处理的第一目标计算节点可以直接从多个计算节点中获取需要的初始数据,从而减少数据处理过程中对数据源的访问,提高数据处理速率并减少对业务数据库数据存储业务的影响。
11.在第一方面的一种可能的实现方式中,所述计算任务包括n个计算子任务,所述计算任务信息还包括所述n个计算子任务的关联关系,每个所述计算子任务对应至少一个所述第一目标计算节点,n为大于1的正整数;
12.根据所述计算任务和各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定第一目标计算节点,包括:
13.根据所述n个计算子任务、所述关联关系和各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定每个所述计算子任务对应的所述第一目标计算节点。
14.在第一方面的一种可能的实现方式中,所述关联关系包括所述n个计算子任务的执行顺序;
15.所述主管理节点根据所述n个计算子任务、所述关联关系和各个所述计算节点的资源信息,从多个所述计算节点中确定每个所述计算子任务对应的所述第一目标计算节点,包括:
16.根据所述n个计算子任务、所述关联关系和各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定每个所述计算子任务对应的所述第一目标计算节点,包括:
17.根据所述n个计算子任务和所述关联关系,通过所述主管理节点确定所述计算任务所对应的计算代价;
18.若所述计算代价大于预设阈值,通过所述主管理节点按照所述执行顺序,从多个所述计算节点中依次为每个所述计算子任务确定对应的所述第一目标计算节点;
19.其中,在为所述n个计算子任务中的第i个所述计算子任务确定对应的所述第一目标计算节点时,根据第i个所述计算子任务和所述主管理节点当前存储的各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定第i个所述计算子任务对应的所述第一目标计算节点,i为大于2的正整数;
20.所述主管理节点当前存储的各个所述计算节点的资源信息为,在第i-1个所述计算子任务对应的所述第一目标计算节点执行完第i-1个所述计算子任务后,通过所述主管理节点对存储的各个所述计算节点的资源信息进行更新得到的;
21.在第i个所述计算子任务确定对应的所述第一目标计算节点执行完第i个所述计算子任务后,通过所述主管理节点对当前存储的各个所述计算节点的资源信息进行更新。在第一方面的一种可能的实现方式中,所述统一数据处理器还包括多个同步组件,所述主管理节点中存储有各个所述同步组件的任务数量;所述方法还包括:
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.第三方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如以上第一方面中任一实施方式中所述的方法中所述管理节点所执行的步骤或者所述计算节点所执行的步骤。
47.第四方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行以上第一方面中任一实施方式中所述的方法中所述管理节点所执行的步骤或者所述计算节点所执行的步骤。
48.可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
49.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1是本技术一实施例提供的统一数据处理器的构示意图;
51.图2是本技术一实施例提供的数据处理方法中的计算任务指令的处理过程交互图;
52.图3是本技术另一实施例提供的确定各个计算子任务对应的第一目标计算节点的方法流程图;
53.图4是本技术另一实施例提供的数据处理方法中的同步任务的处理过程交互图;
54.图5是本技术另一实施例提供的数据处理方法中的管理任务的处理过程交互图;
55.图6是本技术一实施例提供的数据处理装置的结构框图;
56.图7是本技术另一实施例提供的数据处理装置的结构框图;
57.图8是本技术另一实施例提供的数据处理装置的结构框图;
58.图9是本技术一实施例提供的数据处理设备的内部结构示意图。
具体实施方式
59.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
60.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
61.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关
联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
62.如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0063]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0064]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0065]
在目前的针对机器人数据的分析方法中,应用系统或者客户端直接通过业务数据库查询并获取数据,然后再利用获取到的数据进行分析计算。由于需要通过网络从业务数据库拉取数据后再计算,导致数据处理效率低下,而且业务数据库的数据存储也会受到拉取数据操作的影响;当需要用到大量机器人数据进行分析计算时,应用系统或者客户端的数据处理压力较大,甚至可能会出现系统崩溃而难以完成分析计算。
[0066]
为此,本技术提供一种统一数据处理器,示例性的,如图1所示,为本技术实施例提供的一种统一数据处理器的结构示意图,统一数据处理器包括多个计算节点和至少一个管理节点,图1实施例中至少一个管理节点包括主管理节点和其他管理节点,主管理节点通过统一接口与应用系统连接;其中主管理节点对各个计算节点的资源信息进行存储和更新,多个计算节点同步存储有多个数据源中的数据,多个计算节点之间通过通信接口相互连接,各个计算节点中存储的数据可以相互传输。
[0067]
本技术通过统一数据处理器来解决上述通过网络从业务数据库拉取数据后再计算,导致数据处理效率低下,而且业务数据库的数据存储也会受到拉取数据操作的影响;以及应用系统或者客户端的数据处理压力较大难以完成大量机器人数据的分析计算等问题。
[0068]
本技术提供一种基于上述统一数据处理器的数据处理方法,方法包括统一数据处理器中的主管理节点接收应用系统发送的计算任务指令并对指令进行解析获得计算任务信息,统一数据处理器中的主管理节点和多个计算节点根据计算任务信息进行相应的数据处理,从而完成计算任务。其中应用系统只需要向统一数据处理器下发计算任务指令,而无需进行实际的数据处理,从而可以降低应用系统的数据处理压力。并且由于多个计算节点同步存储有多个数据源中的数据,因此在计算任务指令所涉及的数据存储在多个计算节点中时,统一数据处理器可以直接从多个计算节点中获取计算需要的初始数据,从而减少数据处理过程中对数据源的访问,进而提高数据处理效率并减少对业务数据库数据存储业务的影响。
[0069]
如图1所示,该实施例中的统一数据处理器还包括多个同步组件,在主管理节点中存储有多个同步组件的任务数量信息。实施例中,同步组件用于对主管理节点下发的同步任务指令进行解析获得同步任务信息,并将同步任务信息下发至确定出的第二目标计算节
点。
[0070]
实施例中,每个管理节点和每个计算节点均可以运行在一个独立服务器上,其中每个同步组件也可以运行在一个独立服务器上,或者一个同步组件也可以运行在一个管理节点所在的服务器上或者一个计算节点所在的服务上。当同步组件在运行在管理节点所在的服务器或者计算节点所在的服务上时,同步组件和同在一个服务器的管理节点或计算节点为相互独立的两个程序,分别独立运行互不干扰。
[0071]
实施例中,管理节点可以有一个或多个,但是同一时刻只有一个管理节点为主管理节点,主管理节点负责统一数据处理器内部的管理以及与外界(例如应用系统、客户端等)连接。当主管理节点发生故障时,其他管理节点中的一个会成为主管理节点。多个管理节点的设置可以提高统一数据处理器的稳定性和安全性。
[0072]
示例性的,每个管理节点包括统一接口、元数据信息和任务管理服务。下面对其进行具体的说明:
[0073]
实施例中,当管理节点作为主管理节点时,其中的统一接口负责与外界对接,例如与应用系统、客户端等对接。采用统一接口,即对外只提供一个统一的连接协议,可以屏蔽上游应用系统或客户端的数据种类复杂性。
[0074]
实施例中,管理节点中的元数据信息可以为实时数据库中的各个节点(包括管理节点、计算节点、同步组件等)的参数信息,参数信息具体可以包括:(1)如各个节点的网络信息、cpu(central processing unit,中央处理器)信息、内存信息以及磁盘信息等资源信息(对于计算节点来说,资源信息还包括各个计算点中已经存储的同步数据的数据信息,例如已同步库表名称、数量、大小、表字段等信息);(2)各个节点中的任务信息,例如同步任务、计算任务等;(3)各个节点的数据统计信息等。
[0075]
其中,只有当管理节点为主管理节点才可以直接更新内部的元数据信息,当管理节点为其他管理节点时通过与主管理节点中的元数据信息进行同步来更新元数据信息。管理节点中的元数据的更新可以保证其能够体现统一数据处理器中的各个节点的最新信息,在保证任务信息或这任务指令的分配过程中可以结合各个节点的最新信息,进而保证任务信息或任务指令分配的均衡性,确保统一数据处理器的数据处理稳定性和效率。
[0076]
可以理解的是,统一数据处理器内部的管理工作包括:元数据的更新,接收任务指令,向同步组件分发同步任务指令,将计算任务指令解析为计算任务信息并分发至计算节点,将管理任务指令解析为管理任务信息并执行管理任务,对存储的元数据进行更新等。其中对存储的元数据进行更新,可以是主管理节点在完成管理任务后进行更新,或者主管理节点在接收到其他各个节点上报各自的数据信息后进行更新。
[0077]
实施例中,任务管理服务为管理节点中执行具体操作的应用程序,例如用于执行任务指令的解析、任务指令或任务信息的分配、元数据的更新或同步等。
[0078]
可选的,任务管理服务还可以用于监控计算节点中的计算任务的进程,当计算任务失败或异常退出时,任务管理服务负责在计算节点中尝试重启该计算任务的进程;当某个计算节点故障时,尝试在其它计算节点重新启动失败的任务的进程。
[0079]
示例性的,任务失败或异常退出的原因可以为计算任务指令对应的数据无法获取,或者同步任务指令对应的数据源崩溃无法连接。某个计算节点故障指定是执行这个任务的计算节点所在的服务器故障,例如服务器断电或者其他原因的不可用。
[0080]
实施例中,计算节点负责具体执行任务(例如计算任务或同步任务)。具体来说计算节点接收任务信息,并根据任务信息执行任务。若任务为计算任务,执行任务的计算节点则从各个计算节点或者数据源中获取数据进行相应的计算;若任务为同步任务,执行任务的计算节点则从数据源中获取需要同步的数据并存储。
[0081]
可以理解的是,计算节点可以扩展多个,每个计算节点运行在一个服务器上,因此计算节点的服务器可以有多个,多个服务器同时提供计算节点服务可以有效提升实时数据库的计算能力。
[0082]
示例性的,每个计算节点包括内部通信接口、跨源数据服务、批量数据同步服务、实时数据同步服务以及数据存储服务。
[0083]
其中,内部通信接口用于各个计算节点之间的相互连接,从而使得各个计算节点之间可以进行存储数据、中间计算结果等数据的传输。
[0084]
在计算节点中,数据计算服务、跨源数据服务、批量数据同步服务、实时数据同步服务以及数据存储服务均为设置在计算节点中具有不同的作用的应用程序。为了便于理解下面进行具体的说明:
[0085]
在计算节点中,数据计算服务是针对计算任务设置的,当计算节点接收到计算任务时启动数据计算服务来执行计算任务。
[0086]
在计算节点中,跨源数据服务使得计算节点可以直接与外部的数据源连接。计算节点在执行计算任务时,如果需要的数据在各个计算节点中没有存储(还未进行同步的数据或者不需要进行同步的数据),那么计算节点可以通过跨源数据服务直接从外部数据源中获取数据并进行计算。
[0087]
在计算节点中,批量数据同步服务和实时数据同步服务为针对同步任务而设置的,批量数据同步服务和实时数据同步服务是根据同步任务的不同的同步方式来划分的。其中批量数据同步服务用于执行批量同步任务,实时数据同步服务用于执行实时同步任务。可选的,每个批量数据同步服务和每个实时数据同步服务均可以分别执行多个对应的数据同步任务,以提升数据同步能力。
[0088]
可以理解的是,实时同步任务指的同步任务需要实时监听要同步数据文件的更新,每当要同步的数据文件有新增数据时,就会触发实时数据同步服务从数据源中拉取新增数据。而批量同步任务,指的是接收到同步任务时会确定同步的频次,进而后续根据设定的频次进行同步;例如同步的频次为间隔预设时长进行一次同步,或者也可以为定时进行一次同步(例如每天凌晨的固定时间进行同步)。
[0089]
示例性的,数据同步任务对应的同步方式具体为实时同步还是批量同步,主要取决于数据的实时性要求。实时性要求低的数据适合批量同步,例如机器人每天运行的时长和里程等数据,应用系统只关注每天最终的统计数据对比,这样的日志明细数据使用批量同步;实时性要求较高的数据适合实时同步,例如某一个机器的归属人发生了变化,应用系统希望能很快查看到机器人的归属,因此该类机器人归属关系数据就需要使用实时同步。
[0090]
在计算节点中,数据存储服务用于对实时数据同步服务和批量数据同步服务获取的数据进行具体的存储处理,以及存储针对存储的数据的读取操作。具体的数据存储过程中,数据存储服务对写入的数据进行编码、创建索引及压缩等操作后存储到本地磁盘。可选的,同一条数据可以在不同的计算节点的存在多个副本,从而保证高可用。
[0091]
可以理解的是,当同步任务是对同一条数据的更新时,数据存储服务会将数据打上版本号后直接写入,数据读取时会读取最新版本的数据。实施例中,数据存储服务会周期性的合并历史数据,并将老的版本数据删除。数据存储服务可以自动维护整个统一数据处理器的数据存储,从而实现高效的数据写入及数据读取。
[0092]
在统一数据处理器中,同步组件是针对同步任务设置的,同步组件只参与同步任务指令的相关数据处理。下面对同步组件进行示例性说明。
[0093]
其中,同步组件设置有多个,在管理节点的元数据中存储有同步组件的参数信息,例如参数可以包括各个同步组件中的任务情况信息。例如同步组件中的任务数量、任务状态等。管理节点根据元数据信息将同步任务指令在多个同步组件中进行分配。同步组件会向主管理节点上报自身的任务情况信息。
[0094]
可选的,如前文所述不同的数据可能会采用不同的数据同步方式,每种数据同步方式对应至少一个同步组件,同一个同步组件只能对应一种数据同步方式。可选的,为了保证统一数据处理器的高可用,每种数据同步方式对应多个同步组件。
[0095]
可以理解的是,对于批量同步任务指令来说,对应的同步组件为批量同步组件,批量同步组件仅仅用于对接批量同步任务指令,在进行数据同步时批量同步组件与计算节点中的批量数据同步服务对应。类似的,对于实时同步任务指令来说,对应的同步组件为实时同步组件,实时同步组件仅用于对接实时同步任务指令,在进行数据同步时实时同步组件与计算节点中的实时数据同步服务对应。
[0096]
下面结合具体实施例对本技术提供的一种数据处理方法进行示例性的说明。所述数据处理方法应用于图1所示的统一数据处理器上。
[0097]
图2示出了本技术一实施例中提供的数据处理方法中的计算任务指令的处理过程交互图。作为示例而非限定,所述数据处理方法包括以下步骤:
[0098]
步骤s201、主管理节点接收应用系统发送的计算任务指令并根据计算任务指令确定计算任务信息。
[0099]
实施例中,主管理节点通过统一接口与应用系统连接,进而通过统一接口接收应用系统发送的计算任务指令。应用系统可以为任何具有机器人数据分析需求的客户端。
[0100]
其中,统一接口为统一数据处理器与外界的唯一接口,即统一数据处理器对外只提供一个统一的连接协议,从而可以屏蔽上游数据种类复杂性。
[0101]
可选的,计算任务指令可以为sql(structured query language,结构化查询语言)命令,计算任务指令包括完成计算任务所需要的数据表及计算逻辑。根据计算任务指令确定计算任务信息具体来说是对sql语句进行解析生成计算任务信息。
[0102]
具体来说,对计算任务指令进行解析的过程可以包括:通过计算任务指令确定需要的数据文件(例如可以为数据表)、所需的数据文件所在的位置(各个计算节点或者数据源)和数据量的大小等;然后根据获取到的上述数据和计算任务指令中的计算逻辑,确定计算任务信息。其中计算任务信息中包括计算任务,计算任务为可执行的程序文件。
[0103]
步骤s202、主管理节点根据计算任务信息和各个计算节点的资源信息,从多个计算节点中确定第一目标计算节点,并将计算任务信息发送至第一目标计算节点。
[0104]
实施例中,确定第一目标计算节点的最基本的原则是该计算节点计算资源充足,可以承担对应的计算任务;其中第一目标计算节点可以包括一个或多个,第一目标计算节
点的个数有计算任务的复杂度决定。
[0105]
可选的,其中计算任务可以包括n个计算子任务,其中n为正整数。计算任务信息包括n个子任务之间关联关系,即n个计算子任务之间是相互关联的。其中关联关系可以包括n个计算子任务的执行顺序,计算中间结果在各个计算子任务之间的传输关系等。
[0106]
在一个实施例中,第一目标计算节点的确定方法包括:主管理节点根据n个计算子任务、关联关系和各个计算节点的资源信息,从多个计算节点中确定每个计算子任务对应的第一目标计算节点。其中,每个计算子任务可以对应一个或多个第一目标计算节点,同一个计算节点可以作为一个或多个计算子任务的第一目标计算节点。
[0107]
实施例中,计算子任务是对计算任务进行具体步骤的拆分得到的。为了便于理解,以举例的方式对计算子任务的获取进行说明。例如,假设计算任务为:统计每一个店铺中的所有机器人当天的运行里程数,并对每个店铺中的机器人运行里程数进行排序。该计算任务需要每个机器人的运行日志数据,以及将每个机器人与所在的店铺的关系数据。
[0108]
对计算任务进行拆分得到以下子任务:数据读取子任务、里程计算子任务、门店归属子任务和里程排序子任务。各个计算人子任务之间相互关联。具体关联关系如下:
[0109]
(1)数据读取子任务:负责机器人日志数据和机器人绑定门店的关系数据读取,完成数据读取后将数据传输给里程计算子任务;
[0110]
(2)里程计算子任务:负责计算每一台机器人的里程数,再将每一台机器人的里程数的统计结果发给门店归属子任务;
[0111]
(3)门店归属子任务:负责结合机器绑定门店的表数据将每台机器人归属到门店下,将划分归属后的数据发给里程排序子任务;
[0112]
(4)里程排序子任务:负责根据接收到的数据对每个门店中的机器人里程数进行排序。
[0113]
在确定不同的计算子任务后,主管理节点根据多个计算子任务、关联关系和各个计算节点的资源信息,确定执行每个计算子任务的第一目标计算节点。
[0114]
其中,对于不同的计算子任务的第一目标计算节点的确定,在计算节点计算资源(例如cpu、内存和磁盘等)充足的情况下,为了尽量减少数据传输的工作量,优先选择计算子任务所需数据所在的计算节点作为第一目标计算节点。其中,计算资源充足指的是计算节点的计算资源足以完成对应的计算子任务。计算系节点的计算资源是否充足可以根据计算节点的资源信息、计算子任务计算数量来确定。可选的,计算数据量可以由计算子任务执行中数据所占内存的大小来表征,数据所占内存越大计算数据量越大。
[0115]
步骤s203、第一目标计算节点根据计算任务信息从多个计算节点和/或多个数据源获取初始数据,并基于初始数据进行计算完成与计算任务信息对应的计算任务。
[0116]
实施例中,在确定第一目标计算节点之后,第一目标计算节点执行计算任务。执行计算任务需要用到的初始数据可能同步到了计算节点中,也可能未同步到计算节点中;第一目标计算节点优先从计算节点中获取初始数据,在计算节点中未同步初始数据的情况下,第一目标计算节点从数据源中获取初始数据。
[0117]
可选的,数据处理方法还包括:各个计算节点向主管理节点发送自身的资源信息;主管理节点根据接收到的各个计算节点的资源信息对存储的各个计算节点的资源信息进行更新。通过各个计算节点上报自身资源信息的方式,使得主管理节点中的各个计算节点
的资源信息得到更新,方法简单,便于实现。
[0118]
可选的,至少一个管理节点还包括至少一个其他管理节点,方法还包括:各个其他管理节点对主管理节点中存储的各个计算节点的资源信息进行同步。通过设置其他管理节点,并且其他管理节点同步主管理节点中的各个计算节点的资源信息,当主管理节点出现故障时,便于其他管理节点成为主管理节点来实现相应的作用。
[0119]
在一个实施例中,可以采用一次性编排的方法来确定各个计算子任务对应的第一目标计算节点,即在任务执行之前根据各个计算节点的资源信息、计算子任务的情况来性确定各个计算子任务对应的第一目标计算节点,然后再用确定好的第一目标计算节点依次执行各个计算子任务。一次性编排的方法,方法简单,编排速度较快,在编排好之后再具体执行各个计算子任务,处理效率较高。
[0120]
下面,以上述举例中的数据读取子任务、里程计算子任务、门店归属子任务和里程排序子任务对应的第一目标计算节点的确定,来对各个计算子任务的一次性编排的方法的过程进行示例性的说明,假设:计算节点a存储有机器人运行日志数据,计算节点b存储有机器人绑定门店的表数据。编排过程包括:
[0121]
(1)首先根据计算节点a和计算节点b的资源信息,对计算节点a和计算节点b的计算资源是否足以执行数据读取子任务。由于计算节点a和计算节点b的计算资源充足,因此选择计算节点a和计算节点b作为数据读取子任务的第一目标计算节点。
[0122]
(2)估算计算节点a在获取到机器人运行日志数据后是否有足够的计算资源来执行里程计算子任务,经过估算发现计算节点a计算资源充足,因此选择计算节点a作为里程计算子任务的第一目标计算节点。
[0123]
(3)估算计算节点a和计算节点b是否有充足的计算资源来执行门店归属子任务,经过估算法发现计算节点a和计算节点b均计算资源充足。在计算节点a和计算节点b均计算资源充足的情况下,对预测的里程数统计结果的数据量和预测的机器人绑定门店的表数据的数据量进行比较,预估结果显示预测的里程数统计结果的数据量会远远小于预测的机器人绑定门店的表数据的数据量,为了减少数据传输所用的时间选择计算节点b作为门店归属子任务的第一目标计算节点。
[0124]
(4)估算计算节点b是否具有足够的计算资源来处理里程排序子任务,经过估算计算节点b计算资源充足,选择计算节点b作为里程排序子任务的第一目标计算节点。
[0125]
经过上述一次性的编排,计算节点a和计算节点b均为数据读取子任务对应的第一目标计算节点;计算节点a作为里程计算子任务的第一目标计算节点;计算节点b作为门店归属子任务的第一目标计算节点;计算节点b作为里程排序子任务的第一目标计算节点。
[0126]
在执行上述的计算子任务时,具体过程包括:
[0127]
(1)主管理节点将数据读取子任务分别发送至计算节点a和计算节点b,将里程计算子任务发送至计算节点a,将门店归属子任务和里程排序子任务发送至计算节点b;
[0128]
(2)计算节点a执行数据读取子任务,从本地存储的数据中读取机器人运行日志数据;计算节点b执行数据读取子任务,从本地存储的数据中读取机器人绑定门店的表数据。
[0129]
(3)计算节点a执行里程计算子任务,根据机器人运行日志数据获得每一台机器人的里程数据统计结果,并将里程数据统计结果发送至计算节点b。
[0130]
(4)计算节点b执行门店归属子任务,将机器人的里程数据统计结果匹配到各个门
店。
[0131]
(5)计算节点b执行里程排序子任务,每个门店的机器人里程数据进行排序。
[0132]
在上述实施例中,计算资源充足的情况下,尽量选择在数据所在的计算节点上执行对应的计算子任务,进而减少计算节点之间的数据传输,提高处理效率。另外,当执行计算子任务需要用到多个计算节点上的数据时,在计算资源充足的情况下,尽量将数据量小的数据发送至数据量大的数据所在计算节点,由数据量大的计算节点来处理对应的计算子任务;从而缩短数据传输所用的时长,提高处理效率。
[0133]
在一种可能的场景中,为了更好地保证各个计算子任务均选用计算资源充足的第一目标计算节点,可以选择采用动态编排的方法来确定各个计算子任务对应的第一目标计算节点。关联关系包括n个计算子任务的执行顺序;动态编排的方法主要包括:主管理节点按照执行顺序,从多个计算节点中依次为每个计算子任务确定对应的第一目标计算节点;其中,主管理节点在为n个计算子任务中的第i个计算子任务确定对应的第一目标计算节点时,根据第i个计算子任务和主管理节点当前存储的各个计算节点的资源信息,从多个计算节点中确定第i个计算子任务对应的第一目标计算节点;
[0134]
主管理节点当前存储的各个计算节点的资源信息为,与第i-1个计算子任务对应的第一目标计算节点执行完第i-1个计算子任务后,主管理节点对存储的各个计算节点的资源信息进行更新得到的;
[0135]
第i个计算子任务确定对应的第一目标计算节点执行完第i个计算子任务后,主管理节点对当前存储的各个计算节点的资源信息进行更新。
[0136]
上述动态编排的方法是随着计算子任务的执行,逐个确定各个计算子任务的第一目标计算节点。在完成一个计算子任务后对各个计算节点的计算资源信息进行更新,在确定下一个计算子任务对应的第一目标计算节点时可以根据各个计算节点最新的计算资源信息来确定,保证了确定的第一目标计算节点有充足的计算资源来完成对应的计算子任务,进而更好地确保每个计算子任务可以顺利完成。
[0137]
图3为一个实施例中的确定各个计算子任务对应的第一目标计算节点的方法流程图,图3所示的方法根据计算任务的具体情况来选择一次性编排或动态编排,使得该方法同时兼具了一次性编排的简单方便,以及动态编排的稳定性。如图3所示,该方法包括:
[0138]
步骤s301、主管理节点根据n个计算子任务和关联关系,确定计算任务所对应的计算代价。
[0139]
实施例中,计算代价指的是完成相应的计算任务需要消耗的时间,本技术实施例中计算代价是根据各个计算子任务和关联关系估算得到的。
[0140]
可以理解的是,计算任务的计算代价由计算任务的计算复杂度和计算数据量的大小决定的。计算任务所对应的计算复杂度越高,计算数据量越大,计算任务的计算代价越大。
[0141]
其中,计算代价与计算复杂度成正比,而计算复杂度由计算子任务中的算子决定,算子的种类不同对应的计算复杂度就不同。因此可以按照算子种类预先标记同等数据量下的算子代价预设值(算子对应的计算代价的预设值)。例如同等数据量下,排序算子的计算耗时是求和算子的2倍,因此,可以将排序算子的复子代价预设值赋值为2,将求和算子的复子代价预设值赋值为1。
[0142]
由于各个计算子任务还未执行,无法获取除了第一计算子任务外的其他计算子任务的实际的计算数据量,但可以按照算子类型和执行顺序进行近似估算。例如,如果前一计算子任务的算子进行了数据汇总,那么数据量就会减少,即前一计算子任务对当前计算子任务的算子数据量影响系数小于1,若前一计算子任务的算子是数量增大,前一计算子任务对当前计算子任务的算子数据量影响系数大于1。
[0143]
示例性的,可以按照以下公式对计算任务的计算代价进行预估:
[0144]
t=a*(算子1代价预设值+算子1代价预设值*算子1数据量影响系数+算子3代价预设值*算子1数据量影响系数*算子2数据量影响系数+
……
+算子n代价预设值*算子1数据量影响系数*算子2数据量影响系数*
……
*算子(n-1)数据量影响系数)
[0145]
其中:*表示乘法计算符号;
[0146]
t,表示预估得到的计算任务的计算代价;
[0147]
a为标记数据量值,其中计算任务的读取初始数据的数据量为agb;
[0148]
算子1代价预设值,表示第1个计算子任务对应的算子的代价预设值;
[0149]
算子2代价预设值,表示第2个计算子任务对应的算子的代价预设值;
[0150]
……
[0151]
算子n代价预设值,表示第2个计算子任务对应的算子的代价预设值;
[0152]
算子1数据量影响系数,表示第1个计算子任务对数据量的影响系数;
[0153]
算子2数据量影响系数,表示第2个计算子任务对数据量的影响系数;
[0154]
……
[0155]
算子(n-1)数据量影响系数,表示第(n-1)个计算子任务对数据量的影响系数。
[0156]
步骤s302、若计算代价大于预设阈值,主管理节点按照动态编排的方法确定各个计算子任务对应的第一目标计算节点。
[0157]
实施例中,计算代价大于预设阈值时,说明完成所有计算子任务需要消耗的时长较长,因此采用动态编排的方法来确定各个计算子任务对应的第一目标计算节点,避免计算任务耗时较长导致的一次性编排确定的第一目标计算节点的计算资源状态发生变化而无法执行对应的计算子任务的情况。
[0158]
步骤s303、若计算代价小于预设阈值,主管理节点按照一次性编排的方法确定各个计算子任务对应的第一目标计算节点。
[0159]
实施例中,对于计算代价小于预设阈值的计算任务,可以按照一次性编排的方法确定各个计算子任务对应的第一目标计算节点。
[0160]
图4为本技术一个实施例提供的数据处理方法中的同步任务的处理过程交互图,如图4所示,同步任务的处理过程具体包括:
[0161]
步骤s401、主管理节点获取同步任务指令。
[0162]
实施例中,同步任务指令可以是应用系统下发到主管理节点的,也可以是后台客户端下发到主管理节点。
[0163]
可选的,同步任务指令可以为sql命令,不同的同步方式的同步任务指令所包括的具体内容不同。另外,不同的任务类型具有不同的任务类型的关键字,可以根据任务类型关键字来区分同步任务指令的同步方式。
[0164]
一般来说,批量同步任务指令包括数据源的连接方式(例如业务数据库地址、业务
数据库用户名及密码等),需要同步的库/表/字段,同步的数据写入到统一数据处理器中的库/表,批量同步任务时间信息(同步时间段的起始时间和结束时间,同步任务执行频次)等。而实时同步任务指令与批量同步任务指令的不同之处在于,不包括则包括批量同步任务的生命周期,其他部分相同。
[0165]
步骤s402、主管理节点根据各个同步组件的任务数量,将同步任务指令发送至多个同步组件中的目标同步组件。
[0166]
实施例中,在主管理节点中存储有各个同步组件的任务情况信息(例如任务数量和任务状态等),主管理节点根据各个同步任务组件的任务数量从多个同步组件中确定出目标同步组件,主管理节点在确定目标同步组件时主要是将同步任务指令均衡的分配到各个同步任务组件中,从而充分利用各个同步任务组件的资源,提高数据处理效率。
[0167]
实施例中,针对不同的同步方式,设置不同的同步组件。即多个同步组件中包括至少一个实时同步组件和一个批量同步组件。可选的,实时同步组件可以有多个,批量同步组件也可以有多个。实时同步组件仅仅用于接收和处理实时同步任务指令,批量同步组件仅仅用于接收和批量同步任务指令。
[0168]
步骤s403、目标同步组件根据同步任务指令确定同步任务信息。
[0169]
实施例中,目标同步组件对同步任务指令进行解析获得同步任务信息,同步任务信息。同步任务信息中包括同步任务,同步任务为可执行的程序文件。
[0170]
实施例中,对于同步任务指令的解析过程中,需要对同步任务指令进行校验,校验内容包括:同步任务指令中信息是否完整、测试数据源是否可以连通,如果同步任务指令为批量同步任务指令,校验内容还包括:校验批量同步任务时间信息是否正确。当所有校验内容均能通过时,根据同步任务指令获得同步任务信息。
[0171]
其中,校验批量同步任务时间信息正确主要要求为:同步时间段中的结束时间大于起始时间,时间格式正确(例如包括年月日时分秒等),执行频次具有可执行性(例如执行频次为正整数)等。
[0172]
步骤s404、目标同步组件根据同步任务信息和各个计算节点的资源信息,从多个计算节点中确定第二目标计算节点,并将同步任务信息发送至第二目标计算节点。
[0173]
实施例中,确定第二目标计算节点的最基本的原则是该计算节点计算资源充足,可以承担对应的同步任务。优先选用计算资源空闲较多的计算节点作为第二目标计算节点。
[0174]
可选的,第二目标计算节点在接收到同步任务信息时,启动对应的数据同步服务。例如,如果同步任务信息为实时同步任务信息,则第二目标表计算节点启动实时数据同步服务来执行实时同步任务;如果同步任务信息为批量同步任务信息,则第二目标表计算节点启动批量数据同步服务来执行批量同步任务。
[0175]
步骤s405、第二目标计算节点根据同步任务信息与多个数据源中的目标数据源建立连接,并从目标数据源获取并存储需要同步的数据。
[0176]
实施例中,第二目标计算节点执行对应的同步任务时,具体来说包括:第二目标计算节点首先根据同步任务信息中的数据源的连接方式,与目标数据源建立连接;然后根据同步任务信息中需要同步的库/表/字段等信息从目标数据源中获取需要同步的数据;最后将获取的需要同步的数据进行存储。
[0177]
其中,如果同步任务为实时同步任务,则第二目标计算节点与目标数据源建立连接后,获取目标数据源中需要同步的库/表/字段会对目标数据源进行监控,每当目标数据源中有新增数据时,获取新增数据并存储。如果同步任务为批量同步任务,则第二目标计算节点与目标数据源建立连接后,在同步时间段内按照同步任务信息中的同步频次,需要同步的数据并存储。
[0178]
可以理解的是,数据源中的数据,并非所有的数据都需要同步,一般需要进行同步的数据包括数据量超过第一阈值的数据(即数据量较大的数据),以及使用频率大于第二阈值的数据(即使用频率较高的数据)。
[0179]
对于数据量较大的数据来说,如果不进行同步而是在需要时通过网络从数据源获取,对网络的稳定性要求较高,并且需要花费大量的时间,造成数据处理效率较低。因此数据量较大的数据一般需要同步到统一数据处理器中。在比如,对于使用频率较高的数据来说,如果不进行同步,则需要频繁的通过网络从数据源获取数据,降低数据处理效率。因此使用频率较高的数据也需要同步到统一数据处理器中。
[0180]
图5为本技术一实施例提供的数据处理方法中的管理任务的处理过程流程图,管理任务的处理过程具体包括:
[0181]
步骤s501、主管理节点获取管理任务指令。
[0182]
实施例中,管理任务指令一般由系统管理员通过统一接口连接至统一数据处理器并下发的。例如管理指令可以是后台能客户端发送。
[0183]
步骤s502、主管理节点根据管理任务指令确定管理任务信息。
[0184]
可选的,管理任务指令可以为sql命令,管理任务指令的解析同步任务指令的解析过程相似,在此不做赘述。
[0185]
步骤s503、主管理节点根据管理任务信息来执行管理任务。
[0186]
实施例中,管理任务可以包括节点操作和系统操作,其中节点操作所对应的节点可以为计算节点、管理节点或者同步组件;节点操作为节点删除、节点增加、节点启动或节点停止;系统操作对应的为统一数据处理器,系统操作具体可以为系统启动或系统停止。
[0187]
可选的,主管理节点如果执行管理任务具体为针对计算节点的节点操作,那么在主管理节点执行完管理任务后,主管理节点根据节点操作结果更新各个计算节点的资源信息。
[0188]
实施例中,主管理节点在执行节点操作后,更新各个计算节点的资源信息,具来说是更新主管理节点中的元数据。
[0189]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0190]
对应于上文实施例所述的数据处理方法中管理节点所执行的步骤,图6示出了本技术实施例提供的数据处理装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0191]
参照图6,数据处理装置600包括:
[0192]
接收单元601,用于接收应用系统发送的计算任务指令并根据计算任务指令确定计算任务信息;
[0193]
第一确定单元602,用于根据计算任务信息和各个计算节点的资源信息,从多个计算节点中确定第一目标计算节点;
[0194]
发送单元603,用于将计算任务信息发送至第一目标计算节点,以使第一目标计算节点根据计算任务信息从多个计算节点和/或多个数据源获取初始数据,并基于初始数据进行计算完成与计算任务信息对应的计算任务。
[0195]
可选的,所述计算任务包括n个计算子任务,所述计算任务信息还包括n个所述计算子任务的关联关系,每个所述计算子任务对应至少一个所述第一目标计算节点,n为正整数;第一确定单元602用于根据计算任务信息和各个计算节点的资源信息,从多个计算节点中确定第一目标计算节点备时,具体包括:
[0196]
根据n个所述计算子任务、所述关联关系和各个所述计算节点的资源信息,从多个所述计算节点中确定每个所述计算子任务对应的所述第一目标计算节点。
[0197]
可选的,所述关联关系包括n个所述计算子任务的执行顺序;第一确定单元602在用于根据n个所述计算子任务、所述关联关系和各个所述计算节点的资源信息,从多个所述计算节点中确定每个所述计算子任务对应的所述第一目标计算节点时,具体包括:
[0198]
根据n个所述计算子任务和所述关联关系,确定所述计算任务所对应的计算代价;
[0199]
若所述计算代价大于所述预设阈值,按照所述执行顺序,从多个所述计算节点中依次为每个所述计算子任务确定对应的所述第一目标计算节点;
[0200]
其中,第一确定单元602在为n个所述计算子任务中的第i个所述计算子任务确定对应的所述第一目标计算节点时,根据第i个所述计算子任务和所述主管理节点当前存储的各个所述计算节点的资源信息,从多个所述计算节点中确定第i个所述计算子任务对应的所述第一目标计算节点;
[0201]
所述主管理节点当前存储的各个所述计算节点的资源信息为,与第i-1个所述计算子任务对应的所述第一目标计算节点执行完第i-1个所述计算子任务后,所述主管理节点对存储的各个所述计算节点的资源信息进行更新得到的;
[0202]
第i个所述计算子任务确定对应的所述第一目标计算节点执行完第i个所述计算子任务后,所述主管理节点对当前存储的各个所述计算节点的资源信息进行更新。
[0203]
可选的,所述统一数据处理器还包括多个同步组件,其中:
[0204]
所述接收单元601还用于获取同步任务指令;
[0205]
所述发送单元603还用于根据各个所述同步组件的所述任务数量,将所述同步任务指令发送至多个所述同步组件中的目标同步组件;以使目标同步组件根据所述同步任务指令确定同步任务信息,并根据所述同步任务信息和各个所述计算节点的资源信息,从多个所述计算节点中确定第二目标计算节点,并将所述同步任务信息发送至所述第二目标计算节点;从而使得所述第二目标计算节点根据所述同步任务信息从多个所述数据源中确定目标数据源,并从所述目标数据源获取并存储需要同步的数据。
[0206]
可选的,数据处理装置600还包括第二确定单元和执行单元,其中:
[0207]
所述接收单元601,还用于获取管理任务指令;
[0208]
第二确定单元,用于根据所述管理任务指令确定管理任务信息;
[0209]
执行单元,用于根据所述管理任务信息来执行管理任务。
[0210]
可选的,数据处理装置600还包括更新单元,其中:
[0211]
接收单元601,还用于接收各个所述计算节点发送的自身的资源信息。
[0212]
更新单元,用于根据接收到的各个所述计算节点的资源信息对存储的各个所述计算节点的资源信息进行更新。
[0213]
对应于上文实施例所述的数据处理方法中计算节点所执行的步骤,图7示出了本技术另一个实施例提供的数据处理装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0214]
参照图7,数据处理装置700包括:
[0215]
接收单元701,用于接收由主管理节点根据应用系统发送的计算任务指令确定的计算任务信息;
[0216]
处理单元702,用于根据所述计算任务信息从多个所述计算节点和/或多个所述数据源获取初始数据,并基于所述初始数据进行计算完成与所述计算任务信息对应的计算任务。
[0217]
可选的,接收单元701,还用于接收目标同步组件发送的同步任务信息,同步任务信息为目标同步组件根据由主管理节点发送的同步任务指令确定的。
[0218]
处理单元702,还用于根据所述同步任务信息从多个所述数据源中确定目标数据源,并从所述目标数据源获取并存储需要同步的数据。
[0219]
数据处理装置700还包括:发送单元,用于向所述主管理节点发送自身的资源信息,以使主管理节点根据接收到的各个所述计算节点的资源信息对存储的各个所述计算节点的所述资源信息进行更新。
[0220]
对应于上文实施例所述的数据处理方法中同步组件所执行的步骤,图8示出了本技术另一个实施例提供的数据处理装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0221]
参照图8,数据处理装置800包括:
[0222]
接收单元801,用于接收主管理节点根据各个所述同步组件的所述任务数量发送的同步任务指令,其中同步任务指令是由主管理节点获取的;
[0223]
确定单元802,用于根据所述同步任务指令确定同步任务信息;
[0224]
处理单元803,用于根据所述同步任务信息和各个所述计算节点的资源信息,从多个所述计算节点中确定第二目标计算节点,并将所述同步任务信息发送至所述第二目标计算节点,以使第二目标计算节点根据所述同步任务信息从多个所述数据源中确定目标数据源,并从所述目标数据源获取并存储需要同步的数据。
[0225]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0226]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单
元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0227]
基于同一发明构思,本技术一实施例还提供了一种数据处理设备。如图9所示,该实施例的数据处理设备900包括:处理器901、存储器902以及存储在存储器902中并可在处理器901上运行的计算机程序904。计算机程序904可被处理器901运行,生成指令903,处理器901可根据指令903实现上述各个设备智能化方法实施例中的步骤。或者,处理器901执行计算机程序904时实现上述各装置实施例中各模块/单元的功能。
[0228]
示例性的,计算机程序904可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器902中,并由处理器901执行,以完成本技术。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序904在数据处理设备900中的执行过程。
[0229]
处理器901可以是中央处理单元(central processing unit,cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0230]
存储器902可以是数据处理设备900的内部存储单元,例如数据处理设备900的硬盘或内存。存储器902也可以是数据处理设备900的外部存储设备,例如数据处理设备900上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器902还可以既包括数据处理设备900的内部存储单元也包括外部存储设备。存储器902用于存储计算机程序以及数据处理设备900所需的其它程序和数据。存储器902还可以用于暂时地存储已经输出或者将要输出的数据。
[0231]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的所述管理节点所执行的步骤、所述计算节点所执行的步骤或者所述同步组件所执行的步骤。
[0232]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行时可实现上述各个方法实施例中所述管理节点所执行的步骤、所述计算节点所执行的步骤或者所述同步组件所执行的步骤。
[0233]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/服务器的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信
号。
[0234]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0235]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0236]
在本技术所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0237]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0238]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
技术特征:1.一种数据处理方法,其特征在于,应用于统一数据处理器,所述统一数据处理器包括多个计算节点和至少一个管理节点,至少一个所述管理节点包括一个主管理节点,所述主管理节点通过统一接口与应用系统连接;其中所述主管理节点存储有各个所述计算节点的资源信息,多个所述计算节点同步存储有多个数据源中的数据;所述方法包括:通过所述主管理节点接收所述应用系统发送的计算任务并根据所述计算任务确定计算信息;根据所述计算任务和各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定第一目标计算节点,并将所述计算信息发送至所述第一目标计算节点;根据所述计算任务,通过所述第一目标计算节点从多个所述计算节点和/或多个所述数据源获取初始数据,并基于所述初始数据进行计算完成所述计算任务。2.如权利要求1所述的方法,其特征在于,所述计算任务包括n个计算子任务,所述计算信息还包括所述n个计算子任务的关联关系,每个所述计算子任务对应至少一个所述第一目标计算节点,n为大于1的正整数;根据所述计算任务和各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定第一目标计算节点,包括:根据所述n个计算子任务、所述关联关系和各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定每个所述计算子任务对应的所述第一目标计算节点。3.如权利要求2所述的方法,其特征在于,其特征在于,所述关联关系包括n个所述计算子任务的执行顺序;根据所述n个计算子任务、所述关联关系和各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定每个所述计算子任务对应的所述第一目标计算节点,包括:根据所述n个计算子任务和所述关联关系,通过所述主管理节点确定所述计算任务所对应的计算代价;若所述计算代价大于预设阈值,通过所述主管理节点按照所述执行顺序,从多个所述计算节点中依次为每个所述计算子任务确定对应的所述第一目标计算节点;其中,在为所述n个计算子任务中的第i个所述计算子任务确定对应的所述第一目标计算节点时,根据第i个所述计算子任务和所述主管理节点当前存储的各个所述计算节点的资源信息,通过所述主管理节点从多个所述计算节点中确定第i个所述计算子任务对应的所述第一目标计算节点,i为大于2的正整数;所述主管理节点当前存储的各个所述计算节点的资源信息为,在第i-1个所述计算子任务对应的所述第一目标计算节点执行完第i-1个所述计算子任务后,通过所述主管理节点对存储的各个所述计算节点的资源信息进行更新得到的;在第i个所述计算子任务确定对应的所述第一目标计算节点执行完第i个所述计算子任务后,通过所述主管理节点对当前存储的各个所述计算节点的资源信息进行更新。4.如权利要求1所述的方法,其特征在于,所述统一数据处理器还包括多个同步组件,所述主管理节点中存储有各个所述同步组件的任务数量;所述方法还包括:通过所述主管理节点获取同步任务指令;根据各个所述同步组件的所述任务数量,通过所述主管理节点将所述同步任务指令发
送至多个所述同步组件中的目标同步组件;根据所述同步任务指令,通过所述目标同步组件确定同步任务信息;根据所述同步任务信息和各个所述计算节点的资源信息,通过所述目标同步组件从多个所述计算节点中确定第二目标计算节点,并将所述同步任务信息发送至所述第二目标计算节点;根据所述同步任务信息通过所述第二目标计算节点与多个所述数据源中的目标数据源建立连接,并从所述目标数据源获取并存储需要同步的数据。5.如权利要求1所述的方法,其特征在于,所述方法还包括:通过所述主管理节点获取管理任务指令;根据所述管理任务指令,通过所述主管理节点确定管理任务信息;根据所述管理任务信息,通过所述主管理节点执行管理任务。6.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:通过各个所述计算节点向所述主管理节点发送自身的资源信息;根据接收到的各个所述计算节点的资源信息,通过所述主管理节点对存储的各个所述计算节点的资源信息进行更新。7.如权利要求1至5任一项所述的方法,其特征在于,至少一个所述管理节点还包括至少一个其他管理节点,所述方法还包括:通过各个所述其他管理节点对所述主管理节点中存储的所述资源信息进行同步。8.一种统一数据处理器,其特征在于,包括多个计算节点和至少一个管理节点,至少一个所述管理节点包括一个主管理节点,所述主管理节点通过统一接口与应用系统连接;其中所述主管理节点存储有各个所述计算节点的资源信息,多个所述计算节点同步存储有多个数据源中的数据,其中:所述主管理节点用于接收所述应用系统发送的计算任务指令并根据所述计算任务指令确定计算任务信息;所述主管理节点用于根据所述计算任务信息和各个所述计算节点的资源信息,从多个所述计算节点中确定第一目标计算节点,并将所述计算任务信息发送至所述第一目标计算节点;所述第一目标计算节点用于根据所述计算任务信息从多个所述计算节点和/或多个所述数据源获取初始数据,并基于所述初始数据进行计算完成与所述计算任务信息对应的计算任务。9.如权利要求8所述的统一数据处理器,其特征在于,还包括多个同步组件,所述主管理节点中存储有各个所述同步组件的任务数量;其中:所述主管理节点用于获取同步任务指令;所述主管理节点用于根据各个所述同步组件的所述任务数量,将所述同步任务指令发送至多个所述同步组件中的目标同步组件;所述目标同步组件用于根据所述同步任务指令确定同步任务信息;所述目标同步组件用于根据所述同步任务信息和各个所述计算节点的资源信息,从多个所述计算节点中确定第二目标计算节点,并将所述同步任务信息发送至所述第二目标计算节点;
所述第二目标计算节点用于根据所述同步任务信息与多个所述数据源中的目标数据源建立连接,并从所述目标数据源获取并存储需要同步的数据。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法中所述管理节点所执行的步骤或者所述计算节点所执行的步骤。
技术总结本申请适用于计算机技术领域,提供了数据处理方法、统一数据处理器及可读存储介质,方法应用于统一数据处理器,方法包括:通过主管理节点接收应用系统发送的计算任务并根据计算任务确定计算信息;根据计算任务信息和各个计算节点的资源信息,通过主管理节点从多个计算节点中确定第一目标计算节点,并将计算信息发送至第一目标计算节点;根据计算任务,通过第一目标计算节点从多个计算节点和/或多个数据源获取初始数据,并基于初始数据进行计算完成计算任务。上述方法可以降低应用系统的数据处理压力并减少数据处理过程对业务数据库数据存储业务的影响。据存储业务的影响。据存储业务的影响。
技术研发人员:曾庆勇
受保护的技术使用者:深圳市普渡科技有限公司
技术研发日:2022.06.16
技术公布日:2022/11/1