本申请涉及计算机数据处理领域,具体而言,涉及一种分布式数据处理方法、装置、服务器及可读存储介质。
背景技术:
在软件工程研发过程中,引入一种数据存储介质通常需要引入对应的sdk(softwaredevelopmentkit,软件开发工具包)。例如,使用java调用mysql数据库,需要使用到mysql-connector-java包。而对于不同语言、每种数据存储介质会都提供不同的sdk,而且在很多情况下会出现版本兼容性的问题。在企业级分布式系统中,存在多语言协作场景,数据处理试用python,核心业务流程使用go或者java等。那么在与存储介质进行交互的时候就需要根据具体的语言、版本、和对应的存储介质类型引入不同skd包,数据源处理无法统一。比如,mysql用的sql数据,mongodb用的是json数据,elasticsearch使用http数据查询,不便于进行统一查询处理。
技术实现要素:
本申请实施例的目的在于提供一种分布式数据处理方法、装置、服务器及可读存储介质,有利于对异构数据进行统一查询处理。
为了实现上述目的,本申请的实施例通过如下方式实现:
第一方面,本申请实施例提供一种分布式数据处理方法,应用于包括数据执行引擎的分布式服务器,所述方法包括:
通过所述执行引擎中的统一数据接口获取异构数据;
通过所述执行引擎中的语言转换模块将所述异构数据转换为预设格式的操作语句,并得到所述异构数据的参数变量;
通过所述语言转换模块,基于所述操作语句与数据源的数据格式的对应关系,将所述操作语句转换为与目标数据源对应的目标数据格式的待处理数据,所述目标数据源为任一数据源;
通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,所述操作结果包括所述异构数据的所述参数变量。
在上述的实施方式中,通过将异构数据转换为同一预设格式的操作语句,有利于提取得到异构数据的参数变量。然后,在将操作语句转换为待处理数据,有利于执行引擎对待处理数据进行数据处理。其中,参数变量有利于作为索引条件实现异构数据的统一查询处理。
结合第一方面,在一些可选的实施方式中,通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,包括:
通过所述解析执行模块根据所述待处理数据中的附加信息,确定所述待处理数据的处理策略,所述附加信息包括所述待处理数据与处理策略的对应关系,所述处理策略包括同步处理策略或异步处理策略;
当所述待处理数据的所述处理策略为所述同步处理策略时,基于所述同步处理策略执行处理所述待处理数据,得到所述操作结果;
当所述待处理数据的所述处理策略为所述异步处理策略时,基于所述异步处理策略执行处理所述待处理数据,得到所述操作结果。
结合第一方面,在一些可选的实施方式中,当所述待处理数据的所述处理策略为所述同步处理策略时,基于所述同步处理策略执行处理所述待处理数据,得到所述操作结果,包括:
根据所述同步处理策略执行处理所述待处理数据,并在得到所述操作结果时,将所述操作结果发送至用户终端。
在上述的实施方式中,同步处理策略有利于快速将得到的处理结果反馈给用户终端。
结合第一方面,在一些可选的实施方式中,当所述待处理数据的所述处理策略为所述异步处理策略时,基于所述异步处理策略执行处理所述待处理数据,得到所述操作结果,包括:
根据所述异步处理策略执行处理所述待处理数据;
轮询查找是否得到所述操作结果,并在得到所述操作结果时,将所述操作结果发送至用户终端。
在上述的实施方式中,异步处理策略通常所需的处理时间较长,通过轮询查找是否存在操作结果,有利于快速将得到操作结果发送至用户终端。
结合第一方面,在一些可选的实施方式中,通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,包括:
通过所述解析执行模块判断是否存在与所述待处理数据对应的三方插件;
当存在所述三方插件,且所述三方插件为前置操作插件时,热加载所述前置操作插件,当所述前置操作插件运行第一预设时长后,通过所述解析执行模块对所述待处理数据进行执行处理,得到所述操作结果;
当存在所述三方插件,且所述三方插件为后置操作插件时,通过所述解析执行模块对所述待处理数据进行执行处理,得到所述操作结果,并热加载所述后置操作插件并运行第二预设时长。
在上述的实施方式中,通过热加载三方插件,可以无需重启服务器,能够使得三方插件直接运行。
结合第一方面,在一些可选的实施方式中,所述方法还包括:
在接收到查询指令时,基于所述查询指令中的第一参数变量,从所有所述操作结果中确定与所述第一参数变量匹配的结果数据,其中,当所述操作结果中的第二参数变量与所述第一参数变量相同时,确定所述操作结果为所述结果数据;
将所述结果数据发送至用户终端。
结合第一方面,在一些可选的实施方式中,所述方法还包括:
基于统一数据接口、语言转换模块、解析执行模块及创建策略,创建所述执行引擎。
第二方面,本申请实施例还提供一种分布式数据处理装置,应用于包括数据执行引擎的分布式服务器,所述装置包括:
数据获取单元,用于通过所述执行引擎中的统一数据接口获取异构数据;
格式转换单元,用于通过所述执行引擎中的语言转换模块将所述异构数据转换为预设格式的操作语句,并得到所述异构数据的参数变量;
所述格式转换单元还用于通过所述语言转换模块,基于所述操作语句与数据源的数据格式的对应关系,将所述操作语句转换为与目标数据源对应的目标数据格式的待处理数据,所述目标数据源为任一数据源;
执行单元,用于通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,所述操作结果包括所述异构数据的所述参数变量。
第三方面,本申请实施例还提供一种服务器,所述服务器包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述服务器执行时,使得所述服务器执行上述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的服务器的结构示意图。
图2为本申请实施例提供的执行引擎的功能框图。
图3为本申请实施例提供的分布式数据处理方法的流程示意图。
图4为本申请实施例提供的分布式数据处理装置的结构示意图。
图标:10-服务器;11-处理模块;12-存储模块;13-通信模块;20-执行引擎;21-统一数据接口;22-语言转换模块;23-解析执行模块;24-三方插件;100-分布式数据处理装置;110-数据获取单元;120-格式转换单元;130-执行单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,本申请实施例提供一种分布式系统,可以包括多个分布式的服务器10。在分布式系统中,多个服务器10之间建立有通信连接,用于进行数据交互。
在分布式系统中,单个服务器10可以包括处理模块11及存储模块12。存储模块12内存储计算机程序,当计算机程序被所述处理模块11执行时,使得服务器10能够执行下述方法中的各步骤。
当然,服务器10还可以包括其他模块,例如,服务器10还可以包括用于建立通信连接的通信模块13。另外,服务器10还可以包括执行引擎20、分布式数据处理装置100等软件功能模块。
处理模块11、存储模块12以及通信模块13等各个元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
请参照图2,执行引擎20可以包括统一数据接口21、语言转换模块22、解析执行模块23及三方插件24。
其中,统一数据接口21可以为在对外接收或传输数据时,采用http(hypertexttransferprotocol,超文本传输协议)接口或https(hypertexttransferprotocoloversecuresocketlayer,超文本传输安全协议)接口作为接口,与外部设备进行数据交互。其中,统一数据接口21从各类外部设备接收的数据,通常为异构数据。异构数据即为数据类型不同的数据,包括但不限于mysql关系型数据、hbase列数据、mongokey-value数据。外部设备可以为其他服务器或用户终端。用户终端包括但不限于智能手机、个人电脑等。
语言转换模块22可以将统一数据接口21接收的异构数据转换为预设格式的操作语句,另外,还可以将预设格式的操作语句转换为原格式的待处理数据。其中,预设格式可以根据实际情况进行确定,包括但不限于json格式、freemaker格式、thymeleaf格式。原格式即为异构数据自身的数据格式,可以根据实际情况进行确定。
解析执行模块23可以用于对待处理数据进行相应的解析处理。解析处理的方式包括但不限于在数据库中根据需求进行增加数据、删除数据、修改数据、查找数据等操作。数据库为存储参数变量及待处理数据的数据库。
三方插件24可以包括前置操作插件、后置操作插件中的至少一种,为本领域技术人员所熟知的插件。其中,前置操作插件及后置操作插件的功能可以根据实际情况进行设置。
请参照图3,本申请实施例还提供一种分布式数据处理方法,可以应用于上述的服务器10,服务器10中安装有上述的执行引擎20,可以执行下述方法的各步骤。方法可以包括以下步骤:
步骤s210,通过执行引擎中的统一数据接口获取异构数据;
步骤s220,通过所述执行引擎中的语言转换模块将所述异构数据转换为预设格式的操作语句,并得到所述异构数据的参数变量;
步骤s230,通过所述语言转换模块,基于所述操作语句与数据源的数据格式的对应关系,将所述操作语句转换为与目标数据源对应的目标数据格式的待处理数据,所述目标数据源为任一数据源;
步骤s240,通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,所述操作结果包括所述异构数据的所述参数变量。
在上述的实施方式中,通过将异构数据转换为同一预设格式的操作语句,有利于提取得到异构数据的参数变量。然后,在将操作语句转换为待处理数据,有利于执行引擎对待处理数据进行数据处理。其中,参数变量有利于作为索引条件实现异构数据的统一查询处理。
下面将对方法的各步骤进行详细阐述,如下:
在步骤s210中,分布式系统中的服务器可以通过统一数据接口,接收外部设备发送的异构数据。异构数据包括但不限于上述的mysql关系型数据、hbase列数据、mongokey-value数据等数据。统一数据接口可以为上述的http接口或者为https接口。例如,统一数据接口可以支持两种查询方式:一种是基于http的restful协议查询。另外一种可以通过引擎的ui界面进行直接查询。统一数据接口可以采用固定的json数据格式,request为查询请求体、result为查询数据、timeout为查询耗时(数据执行耗时、数据解析耗时),stacktrace为过程中的详细debug信息,用于问题排查。
在步骤s220中,语言转换模块可以对异构数据进行数据提取,然后将提取得到的数据转换为预设格式的操作语句,另外,还可以得到异构数据的参数变量。其中,参数变量包括但不限于异构数据的名称、数据来源等信息、生成异构数据时的时间戳等。在将异构数据转换为预设格式的操作语句的过程中,可以提取得到异构数据的参数变量,该参数变量可以作为索引条件,便于后续基于参数变量进行精准的查询处理。
在步骤s230中,服务器可以在异构数据进行格式转换前,存储记录异构数据的数据格式,该数据格式通常为异构数据的数据源的数据格式。服务器的存储模块可以存储记录异构数据转换后的操作语句与数据源的数据格式的对应关系。数据源即为产生异构数据的数据库或设备,可以根据实际情况进行确定。例如,数据源可以是但不限于influxdb数据库、elasticsearch数据库、hbase列数据库、redis数据库、mongodb数据库。基于上述的对应关系,语言转换模块可以将预设格式的操作语句转换为原格式的待处理数据。即,待处理数据的数据格式与异构数据的数据格式相同。
在步骤s240中,解析执行模块可以对待处理数据进行相应的执行处理。执行处理可以是由服务器自动设置的处理规则,定时对待处理数据进行执行处理,或者为在接收到操作指令时,根据操作指令对待处理数据进行执行处理。执行处理的方式包括但不限于删除待处理数据、增加新数据、修改待处理数据等。
作为一种可选的实施方式,步骤240可以包括:
通过所述解析执行模块根据所述待处理数据中的附加信息,确定所述待处理数据的处理策略,所述附加信息包括所述待处理数据与处理策略的对应关系,所述处理策略包括同步处理策略或异步处理策略;
当所述待处理数据的所述处理策略为所述同步处理策略时,基于所述同步处理策略执行处理所述待处理数据,得到所述操作结果;
当所述待处理数据的所述处理策略为所述异步处理策略时,基于所述异步处理策略执行处理所述待处理数据,得到所述操作结果。
在本实施例中,待处理数据中的附加信息可以为解析执行模块预估执行待处理数据所需的时长确定得到的。待处理数据可以为一个数据或者或多个数据。当待处理数据的数据量为多个时,待处理数据的数据格式或数据类型可以相同,待处理数据的数据格式或数据类型可以不同,可以根据实际情况进行确定。
解析执行模块预估执行完所有待处理数据所需的时长的方式可以根据实际情况进行确定。例如,基于处理单个相同待处理数据所耗的平均时长以及相同类的待处理数据的数据量,预估处理完所有待处理数据的时长。该时长即为处理各类待处理数据的时长之和,其中,处理每类的待处理数据所需的时长为:处理单个相同待处理数据所耗的平均时长与相同类的待处理数据的数据量的乘积。其中,执行完所有待处理数据的过程可以理解为:在执行一个业务期间,通过解析执行模块对该期间的所有异构数据得到的待处理数据进行处理,并不包括该业务期间的时间范围之外的待处理数据。执行一个业务期间的时段可以根据实际情况进行确定,为本领域技术人员所熟知,这里不再赘述。
当执行完所有待处理数据所需的时长大于指定时长时,确定附加信息的处理策略为异步处理策略,此时,附加信息包括待处理数据与异步处理策略的对应关系;当执行完所有待处理数据所需的时长小于或等于指定时长时,确定附加信息的处理策略为同步处理策略,此时,附加信息包括待处理数据与同步处理策略的对应关系。指定时长可以根据实际情况进行确定,例如,指定时长可以为10秒钟、20秒钟、1分钟等时长。
可理解地,在采用处理策略执行处理待处理数据时,异步处理策略所需要的时长通常大于同步处理策略所需要的时长。
在本实施例中,当所述待处理数据的所述处理策略为所述异步处理策略时,基于所述异步处理策略执行处理所述待处理数据,得到所述操作结果,包括:
根据所述异步处理策略执行处理所述待处理数据;
轮询查找是否得到所述操作结果,并在得到所述操作结果时,将所述操作结果发送至用户终端。
其中,轮询查找操作结果的间隔时长可以根据实际情况进行确定。例如,间隔时长可以为500毫秒、1秒钟等较短时长,如此,有利于在解析执行模块得到操作结果后,及时将得到的操作结果发送至用户终端。
在采用异步处理策略执行待处理数据时,可以通过异步回调接口(异步回调接口可以是但不限于接口可以是httpapi、rpc或者tcp服务接口),回调待处理数据,由后台对待处理数据进行解析处理。可理解地,若需要异步处理策略处理待处理数据时,通常表示处理完待处理数据所需要的时间较长,通过异步回调接口回调待处理数据,然后由后台进行数据的处理,可以避免待处理数据占用当前的主线程而影响当前其他的业务处理进度。
在本实施例中,当所述待处理数据的所述处理策略为所述同步处理策略时,基于所述同步处理策略执行处理所述待处理数据,得到所述操作结果,包括:
根据所述同步处理策略执行处理所述待处理数据,并在得到所述操作结果时,将所述操作结果发送至用户终端。
在本实施例中,在采用同步处理策略处理数据时,通常表示处理完所有的待处理数据所需要的时长较短,解析执行模块可以在较短时间内得到待处理数据的操作结果,然后通过统一数据接口将得到的操作结果发送至用户终端,以供用户进行查看。
作为一种可选的实施方式,步骤s240可以包括:
通过所述解析执行模块判断是否存在与所述待处理数据对应的三方插件;
当存在所述三方插件,且所述三方插件为前置操作插件时,热加载所述前置操作插件,当所述前置操作插件运行第一预设时长后,通过所述解析执行模块对所述待处理数据进行执行处理,得到所述操作结果;
当存在所述三方插件,且所述三方插件为后置操作插件时,通过所述解析执行模块对所述待处理数据进行执行处理,得到所述操作结果,并热加载所述后置操作插件并运行第二预设时长。
在本实施例中,第一预设时长和第二预设时长通常为较短的时长,可以相同后不同。例如,第一预设时长和第二预设时长可以均为3秒。前置操作插件和后置操作插件的功能可以根据实际情况进行设置。
例如,前置操作插件可以为数据过滤插件、数据筛选插件等,用于对待处理数据进行过滤、筛选,然后由解析执行模块对过滤筛选后的待处理数据进行解析处理,得到操作结果。
又例如,后置操作插件可以为初始化插件,用于在解析执行模块完成数据处理后,将操作环境或数据源恢复至执行操作前的初始状态。
在本实施例中,通过热加载三方插件,无需重启服务器便可以使得三方插件生效并运行。
作为一种可选的实施方式,在步骤s240之后,方法还可以包括:
在接收到查询指令时,基于所述查询指令中的第一参数变量,从所有所述操作结果中确定与所述第一参数变量匹配的结果数据,其中,当所述操作结果中的第二参数变量与所述第一参数变量相同时,确定所述操作结果为所述结果数据;
将所述结果数据发送至用户终端。
在本实施例中,当需要在数据库中查找数据时,用户可以根据实际情况,输入索引条件。索引条件可以为查询指令中的第一参数变量。该第一参数变量可以根据实际情况进行确定,例如,可以为异构数据的数据名称。由于在异构数据中,受限于数据格式,通常不便于直接基于参数变量查找到对应的异构数据。而在本实施例中,在将异构数据转换为预设格式的操作语句的过程中,便可以提取得到异构数据的参数变量,因此,可以直接将参数变量作为索引条件实现数据的准确查询。
作为一种可选的实施方式,在步骤s210之前,方法还可以包括:
基于统一数据接口、语言转换模块、解析执行模块及创建策略,创建所述执行引擎。
在本实施例中,统一数据接口、语言转换模块、解析执行模块可理解为预先封装或获取得到的软件功能模块,统一数据接口、语言转换模块、解析执行模块可以被封装成执行引擎,然后将执行引擎安装在分布式系统中的每个服务器中。其中,创建策略可以根据实际情况进行确定,用于将统一数据接口、语言转换模块、解析执行模块等软件模块封装为执行引擎。每个服务器中的执行引擎可以相互配合,以实现分布式的数据处理。
下面基于创建得到的执行引擎,对执行引擎的数据处理过程进行举例阐述,如下:
在通过统一数据接口接收到异构数据(包括但不限于mysql关系型数据、hbase列数据、mongokey-value数据)后,可以通过语言转换模块将异构数据转换为预设格式的操作语句,例如,将异构数据转换为json格式的数据;
统一数据接口可以提供基于httprestfulap的服务,调用方(比如用户终端)可以通过httpclient或者其他命令直接调用,调用request请求的body可以填充异构数据操作语句,以及附加信息,附加信息内容包括此次调用的处理策略,处理策略包括同步处理策略或异步处理策略,以及执行timeout,如果是异步执行需要提供异步回调接口(接口可以是httpapi、rpc或者tcp等服务接口);其中,若执行完待处理数据所需要的耗时较长(比如超过10秒),需要异步处理策略,耗时较短,可以采用同步处理策略;
语言转换模块接受异构数据的操作语句,并根据标准schema语法进行解析,此处会进行语法强校验;根据schema进行操作语句提取;以一次sql查询为例,需要提取select模块,where模块,系统函数(sum,distinct,count…等)模块,join、orderby、groupby等模块。其中,select模块,where模块,系统函数模块,以及join、orderby、groupby等模块为本领域技术人员所熟知,此外还会提取接受异构数据操作结果的参数变量,比如,用户名、数据名等参数变量;然后,语言转换模块根据解析完成的操作语句,进行数据源语句转义,即为将预设格式的操作语句转换为原格式的数据(即为待处理数据),并作为输入参数传递给执行引擎的解析执行模块;
解析执行模块可以检查是否有与待处理数据对应的目标三方插件;其中,存储模块中可以预先存储各类待处理数据与三方插件的对应关系,基于该对应关系,便可以查找是否存在与待处理数据对应的目标三方插件;例如,可以通过classloader和threadlocal进行三方插件热加载。如果有三方插件,且为前置操作插件(例如:数据源清理操作,假设需要创建id=“123”的数据,在创建id=“123”的数据之前可以通过前置操作删除数据源中已存在的id=123的数据,保证执行成功),则前置插件运行完后,由解析执行模块执行处理待处理数据;三方插件需要声明(beforedbplugin)的注解,然后通过maven打包为<插件>.jar。打包好的插件上传到执行引擎的服务器,服务器可以通过urlclassloader自动解析带有beforedbplugin注解的类,并通过springcontext重新加载,整个个过程不需要重启服务,能够实现热加载,前置操作插件执行timeout可以为3秒,timeout可以作为前置操作插件的运行时长或超时时长;
若解析执行模块采用同步处理策略执行待处理数据,执行引擎内部可以通过接入的sdk处理异构数据,以得到同步处理的结果;若解析执行模块采用异步处理策略执行待处理数据,可以通过异步回调接口进行待处理数据回调,异构数据的数据源可以根据执行引擎的调用信息(例如,待处理数据,异常堆栈信息,耗时信息,调用库地址信息等),内部执行,同时提供获取异步操作后的操作结果的请求地址,用户终端或服务器本身可以轮询该请求地址获取异步执行的操作结果;其中,提取的参数变量可以用于进行精准数据查找,执行引擎可以根据查询请求中的参数变量返回精准查找的数据;
执行引擎对待处理数据的操作完成后,可以检查是否有待处理数据对应的后置操作插件(例如在数据操作完成后,需要还原数据源到操作之前,则调用后置操作插件),若存在,便调用后置操作插件执行,后置操作插件timeout可以为3秒;
最后,对于同步或异步执行之后的操作结果进行持久化i/o文件存储,业务调用方(比如用户终端)可以通过sftp(securefiletransferprotocol,安全文件传送协议)获取到操作结果。
基于上述设计,可以降低异构数据存储介质的接入效率,通过统一操作语言处理可以将异构数据操作进行标准化,同时能够支持精确查找。此外,作为统一数据处理层,可以为业务架构上提供三方插件支持,实现业务数据存储中实时数据监控,实时数据核对等功能。
请参照图4,本申请实施例还提供一种分布式数据处理装置100,可以应用于上述的服务器中,用于执行方法中的各步骤。分布式数据处理装置100包括至少一个可以软件或固件(firmware)的形式存储于存储模块中或固化在服务器操作系统(operatingsystem,os)中的软件功能模块。处理模块用于执行存储模块中存储的可执行模块,例如分布式数据处理装置100所包括的软件功能模块及计算机程序等。
分布式数据处理装置100可以包括数据获取单元110、格式转换单元120及执行单元130,能够执行的操作步骤可以如下:
数据获取单元110,用于通过所述执行引擎中的统一数据接口获取异构数据;
格式转换单元120,用于通过所述执行引擎中的语言转换模块将所述异构数据转换为预设格式的操作语句,并得到所述异构数据的参数变量;
所述格式转换单元120还用于通过所述语言转换模块,基于所述操作语句与数据源的数据格式的对应关系,将所述操作语句转换为与目标数据源对应的目标数据格式的待处理数据,所述目标数据源为任一数据源;
执行单元130,用于通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,所述操作结果包括所述异构数据的所述参数变量。
可选地,执行单元130还可以用于:
通过所述解析执行模块根据所述待处理数据中的附加信息,确定所述待处理数据的处理策略,所述附加信息包括所述待处理数据与处理策略的对应关系,所述处理策略包括同步处理策略或异步处理策略;
当所述待处理数据的所述处理策略为所述同步处理策略时,基于所述同步处理策略执行处理所述待处理数据,得到所述操作结果;
当所述待处理数据的所述处理策略为所述异步处理策略时,基于所述异步处理策略执行处理所述待处理数据,得到所述操作结果。
可选地,执行单元130还可以用于:
根据所述同步处理策略执行处理所述待处理数据,并在得到所述操作结果时,将所述操作结果发送至用户终端。
可选地,执行单元130还可以用于:
根据所述异步处理策略执行处理所述待处理数据;
轮询查找是否得到所述操作结果,并在得到所述操作结果时,将所述操作结果发送至用户终端。
可选地,执行单元130还可以用于:
通过所述解析执行模块判断是否存在与所述待处理数据对应的三方插件;
当存在所述三方插件,且所述三方插件为前置操作插件时,热加载所述前置操作插件,当所述前置操作插件运行第一预设时长后,通过所述解析执行模块对所述待处理数据进行执行处理,得到所述操作结果;
当存在所述三方插件,且所述三方插件为后置操作插件时,通过所述解析执行模块对所述待处理数据进行执行处理,得到所述操作结果,并热加载所述后置操作插件并运行第二预设时长。
可选地,分布式数据处理装置100还可以包括查询单元及发送单元。查询单元用于在接收到查询指令时,基于所述查询指令中的第一参数变量,从所有所述操作结果中确定与所述第一参数变量匹配的结果数据,其中,当所述操作结果中的第二参数变量与所述第一参数变量相同时,确定所述操作结果为所述结果数据;发送单元用于将所述结果数据发送至用户终端。
可选地,分布式数据处理装置100还可以包括创建单元,用于基于统一数据接口、语言转换模块、解析执行模块及创建策略,创建所述执行引擎。
在本实施例中,处理模块可以是一种集成电路芯片,具有信号的处理能力。上述处理模块可以是通用处理器。例如,该处理器可以是中央处理器(centralprocessingunit,cpu)、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。
存储模块可以是,但不限于,随机存取存储器,只读存储器,可编程只读存储器,可擦除可编程只读存储器,电可擦除可编程只读存储器等。在本实施例中,存储模块可以用于存储执行引擎、三方插件等。当然,存储模块还可以用于存储其他程序,处理模块在接收到执行指令后,执行该程序。
通信模块用于通过网络建立服务器与其他设备的通信连接,并通过网络收发数据。其他设备可以为分布式系统中的其他服务器,或者为用户终端。
可以理解的是,图1所示的结构仅为服务器的一种结构示意图,服务器还可以包括比图1所示更多的组件。图1中所示的各组件可以采用硬件、软件或其组合实现。
需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的服务器、分布式数据处理装置100的具体工作过程,可以参考前述方法中的各步骤对应过程,在此不再过多赘述。
本申请实施例还提供一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上述实施例中所述的分布式数据处理方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
综上所述,本申请提供一种分布式数据处理方法、装置、服务器及可读存储介质。方法包括:通过执行引擎中的统一数据接口获取异构数据;通过执行引擎中的语言转换模块将异构数据转换为预设格式的操作语句,并得到异构数据的参数变量;通过语言转换模块,基于操作语句与数据源的数据格式的对应关系,将操作语句转换为与目标数据源对应的目标数据格式的待处理数据,目标数据源为任一数据源;通过执行引擎中的解析执行模块对待处理数据进行执行处理,得到待处理数据的操作结果,操作结果包括异构数据的参数变量。在本方案中,通过将异构数据转换为同一预设格式的操作语句,有利于提取得到异构数据的参数变量。然后,在将操作语句转换为待处理数据,有利于执行引擎对待处理数据进行数据处理。其中,参数变量有利于作为索引条件实现异构数据的统一查询处理。
在本申请所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
1.一种分布式数据处理方法,其特征在于,应用于包括数据执行引擎的分布式服务器,所述方法包括:
通过所述执行引擎中的统一数据接口获取异构数据;
通过所述执行引擎中的语言转换模块将所述异构数据转换为预设格式的操作语句,并得到所述异构数据的参数变量;
通过所述语言转换模块,基于所述操作语句与数据源的数据格式的对应关系,将所述操作语句转换为与目标数据源对应的目标数据格式的待处理数据,所述目标数据源为任一数据源;
通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,所述操作结果包括所述异构数据的所述参数变量。
2.根据权利要求1所述的方法,其特征在于,通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,包括:
通过所述解析执行模块根据所述待处理数据中的附加信息,确定所述待处理数据的处理策略,所述附加信息包括所述待处理数据与处理策略的对应关系,所述处理策略包括同步处理策略或异步处理策略;
当所述待处理数据的所述处理策略为所述同步处理策略时,基于所述同步处理策略执行处理所述待处理数据,得到所述操作结果;
当所述待处理数据的所述处理策略为所述异步处理策略时,基于所述异步处理策略执行处理所述待处理数据,得到所述操作结果。
3.根据权利要求2所述的方法,其特征在于,当所述待处理数据的所述处理策略为所述同步处理策略时,基于所述同步处理策略执行处理所述待处理数据,得到所述操作结果,包括:
根据所述同步处理策略执行处理所述待处理数据,并在得到所述操作结果时,将所述操作结果发送至用户终端。
4.根据权利要求2所述的方法,其特征在于,当所述待处理数据的所述处理策略为所述异步处理策略时,基于所述异步处理策略执行处理所述待处理数据,得到所述操作结果,包括:
根据所述异步处理策略执行处理所述待处理数据;
轮询查找是否得到所述操作结果,并在得到所述操作结果时,将所述操作结果发送至用户终端。
5.根据权利要求1所述的方法,其特征在于,通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,包括:
通过所述解析执行模块判断是否存在与所述待处理数据对应的三方插件;
当存在所述三方插件,且所述三方插件为前置操作插件时,热加载所述前置操作插件,当所述前置操作插件运行第一预设时长后,通过所述解析执行模块对所述待处理数据进行执行处理,得到所述操作结果;
当存在所述三方插件,且所述三方插件为后置操作插件时,通过所述解析执行模块对所述待处理数据进行执行处理,得到所述操作结果,并热加载所述后置操作插件并运行第二预设时长。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到查询指令时,基于所述查询指令中的第一参数变量,从所有所述操作结果中确定与所述第一参数变量匹配的结果数据,其中,当所述操作结果中的第二参数变量与所述第一参数变量相同时,确定所述操作结果为所述结果数据;
将所述结果数据发送至用户终端。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于统一数据接口、语言转换模块、解析执行模块及创建策略,创建所述执行引擎。
8.一种分布式数据处理装置,其特征在于,应用于包括数据执行引擎的分布式服务器,所述装置包括:
数据获取单元,用于通过所述执行引擎中的统一数据接口获取异构数据;
格式转换单元,用于通过所述执行引擎中的语言转换模块将所述异构数据转换为预设格式的操作语句,并得到所述异构数据的参数变量;
所述格式转换单元还用于通过所述语言转换模块,基于所述操作语句与数据源的数据格式的对应关系,将所述操作语句转换为与目标数据源对应的目标数据格式的待处理数据,所述目标数据源为任一数据源;
执行单元,用于通过所述执行引擎中的解析执行模块对所述待处理数据进行执行处理,得到所述待处理数据的操作结果,所述操作结果包括所述异构数据的所述参数变量。
9.一种服务器,其特征在于,所述服务器包括相互耦合的处理器及存储器,所述存储器内存储计算机程序,当所述计算机程序被所述服务器执行时,使得所述服务器执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-7中任一项所述的方法。
技术总结