【发明内容】
有鉴于此,本发明实施例提供了一种数据处理方法及装置,可以实现提高数据处理效率。
本发明实施例的一方面,提供一种数据处理方法,包括:
依据数据的描述信息,获得针对所述数据的数据处理任务;
将所述数据处理任务发送给第一终端,以使得所述第一终端执行所述数据处理任务;
若所述第一终端执行所述数据处理任务出现异常,向第二终端发送所述数据处理任务,以使得所述第二终端执行所述数据处理任务。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述依据数据的描述信息,获得针对所述数据的数据处理任务,包括:
接收输入的所述数据的描述信息,所述数据的描述信息包括所述数据所在字段信息和所述数据对应的分类信息;
利用数据处理语言描述所述数据的描述信息,以获得针对所述数据的数据处理任务;
其中,所述数据处理语言包括微软M语言、R语言、Hive查询语言HQL或者结构化查询语言SQL。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述将所述数据处理任务发送给第一终端,以使得所述第一终端执行所述数据处理任务,包括:
获得所述数据处理任务对应的数据源信息;
获得所述数据源信息所指示的数据源所在的第一终端;
将所述数据处理任务发送给所述第一终端,以使得所述第一终端利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述数据处理任务的数目为M个,M为大于或者等于1的整数;所述获得所述数据处理任务对应的数据源信息,包括:
依据每个所述数据处理任务的属性信息,从M个所述数据处理任务中提取N个所述数据处理任务,N为大于或者等于1,且小于或者等于M的整数;
对N个所述数据处理任务中每个所述数据处理任务进行解析,以获得每个所述数据处理任务对应的数据源信息,每个所述数据源信息所指示的数据源用于存储对应的数据处理任务所针对的数据。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述若所述第一终端执行所述数据处理任务出现异常,向第二终端发送所述数据处理任务之前,所述方法还包括:
获得所述第一终端执行所述数据处理任务的效率信息;若所述效率信息小于预设的效率门限,确定所述第一终端执行所述数据处理任务出现异常;或者,
获得所述第一终端执行所述数据处理任务的执行结果;若所述执行结果为执行失败,确定所述第一终端执行所述数据处理任务出现异常。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述若所述第一终端执行所述数据处理任务出现异常,向第二终端发送所述数据处理任务,以使得所述第二终端执行所述数据处理任务,包括:
获得所述数据源信息所指示的数据源所在的第二终端,向所述第二终端发送所述数据处理任务,以便于所述第二终端利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据;或者,
确定第二终端,向所述第二终端发送所述数据处理任务和所述第一终端的标识,以便于所述第二终端依据所述第一终端的标识从所述第一终端获得所述数据源,以及利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
本发明实施例的一方面,提供一种数据处理方法装置,包括:
任务生成单元,用于依据数据的描述信息,获得针对所述数据的数据处理任务;
任务分发单元,用于将所述任务生成单元获得的所述数据处理任务发送给第一终端,以使得所述第一终端执行所述数据处理任务;
所述任务分发单元,还用于若所述第一终端执行所述数据处理任务出现异常,向第二终端发送所述任务生成单元获得的所述数据处理任务,以使得所述第二终端执行所述数据处理任务。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述任务生成单元,具体用于:
接收输入的所述数据的描述信息,所述数据的描述信息包括所述数据所在字段信息和所述数据对应的分类信息;
利用数据处理语言描述所述数据的描述信息,以获得针对所述数据的数据处理任务;
其中,所述数据处理语言包括微软M语言、R语言、Hive查询语言HQL或者结构化查询语言SQL。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述任务分发单元,具体用于:
获得所述数据处理任务对应的数据源信息;
获得所述数据源信息所指示的数据源所在的第一终端;
将所述数据处理任务发送给所述第一终端,以使得所述第一终端利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述数据处理任务的数目为M个,M为大于或者等于1的整数;所述获得所述数据处理任务对应的数据源信息,具体为:
依据每个所述数据处理任务的属性信息,从M个所述数据处理任务中提取N个所述数据处理任务,N为大于或者等于1,且小于或者等于M的整数;
对N个所述数据处理任务中每个所述数据处理任务进行解析,以获得每个所述数据处理任务对应的数据源信息,每个所述数据源信息所指示的数据源用于存储对应的数据处理任务所针对的数据。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括:
任务监控单元,用于获得所述第一终端执行所述数据处理任务的效率信息;若所述效率信息小于预设的效率门限,确定所述第一终端执行所述数据处理任务出现异常;或者,用于获得所述第一终端执行所述数据处理任务的执行结果;若所述执行结果为执行失败,确定所述第一终端执行所述数据处理任务出现异常。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述任务分发单元,具体用于:
获得所述数据源信息所指示的数据源所在的第二终端,向所述第二终端发送所述数据处理任务,以便于所述第二终端利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据;或者,
确定第二终端,向所述第二终端发送所述数据处理任务和所述第一终端的标识,以便于所述第二终端依据所述第一终端的标识从所述第一终端获得所述数据源,以及利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
由以上技术方案可以看出,本发明实施例具有以下有益效果:
本发明实施例可以依据数据的描述信息自动生成数据处理任务,并在执行数据处理任务的第一终端出现异常后,及时将该数据处理任务发送给第二终端进行执行,解决了现有技术中手动编写及配置数据处理任务带来的数据处理效率低的问题,也解决了由于终端执行数据处理任务失败或者效率低,影响数据处理效率和执行可靠性低的问题。因此,本发明实施例提供的技术方案能够提高数据处理任务的可靠性和数据处理效率。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二等来描述终端,但这些关键词不应限于这些术语。这些术语仅用来将关键词彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一终端也可以被称为第二终端,类似地,第二终端也可以被称为第一终端。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
本发明实施例给出一种数据处理方法,执行主体可以为数据处理装置。本发明实施例所提供的技术方案使用的系统如图1所示,主要由数据处理装置和至少两个终端组成。这里,本发明实施例仅以第一终端和第二终端进行举例说明,并不用于限定本发明实施例中终端的数目。
请参考图2,其为本发明实施例所提供的数据处理方法的流程示意图,如图所示,该方法包括以下步骤:
S201,依据数据的描述信息,获得针对所述数据的数据处理任务。
具体的,本发明实施例中,依据数据的描述信息,获得针对所述数据的数据处理任务的方法可以包括但不限于:
首先,接收输入的所述数据的描述信息。然后,利用数据处理语言描述所述数据的描述信息,以获得针对所述数据的数据处理任务。
优选的,所述数据处理语言可以包括但不限于:微软(Microsoft,M)语言、R语言、蜂巢查询语言(Hive Query Language,HQL)或者结构化查询语言(Structured Query Language,SQL)。
其中,由于数据源中会存在大量字段以及每个字段对应的数据,因此,当需要获得数据源中的数据时,需要显示前端页面,以及通过该前端页面接收用户输入的数据的描述信息。或者,前端页面可以显示多个数据的描述信息,用户可以在该多个数据的描述信息中进行选择,从而通过前端页面可以获得用户选出的数据的描述信息。
例如,前端页面可以显示多个字段的名称,用户可以在该多个字段中勾选至少一个字段。
优选的,所述数据的描述信息可以包括但不限于:所述数据所在字段信息和所述数据对应的分类信息。
其中,所述数据所在字段信息指的是数据所在字段的标识信息,该标识信息可以包括但不限于字段的名称或者字段的编号等。
其中,所述数据对应的分类信息指的是对数据的划分方式。
例如,所述数据对应的分类信息可以包括但不限于按地域划分、按性别划分或者按年龄划分等。
例如,数据源中存储的每条日志中包含字段A、字段B、字段C和字段D,如果需要获得字段B的数据,则用户需要在前端页面上输入字段B的名称。
例如,利用数据处理语言描述数据的描述信息,获得的针对所述数据的数据处理任务可以但不限于如下代码:
上述数据处理任务中,“where”后面的代码表示所述数据所在字段信息,“group by”后面的代码表示所述数据对应的分类信息。
另外,在获得针对数据的数据处理任务后,可以将获得的数据处理任务存储在数据库中,用于等待被提取以及被执行。
可以理解的是,本发明实施例中,每当接收到输入的所述数据的描述信息,就可以利用数据处理语言描述所述数据的描述信息,以获得针对所述数据的数据处理任务,因此,数据库中就可以存储至少一个等待被提取和被执行的数据处理任务。这里,将获得的数据处理任务存储在数据库可以方便快速读写,以提高数据处理效率。
S202,将所述数据处理任务发送给第一终端,以使得所述第一终端执行所述数据处理任务。
具体的,在获得针对数据的数据处理任务后,可以将获得的数据处理任务发送给第一终端,以使得所述第一终端能够在获得该数据处理任务后,执行该数据处理任务。
举例说明,将获得的数据处理任务发送给第一终端的方法可以包括但不限于:
首先,获得所述数据处理任务对应的数据源信息。然后,获得所述数据源信息所指示的数据源所在的第一终端。最后,将所述数据处理任务发送给所述第一终端,以使得所述第一终端利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
其中,所述获得所述数据处理任务对应的数据源信息的方法可以包括但不限于:
首先,若数据库中存储有M个数据处理任务的数目,M为大于或者等于1的整数,则可以依据每个所述数据处理任务的属性信息,从M个所述数据处理任务中提取N个所述数据处理任务;其中,N为大于或者等于1,且小于或者等于M的整数。然后,对N个所述数据处理任务中每个所述数据处理任务进行解析,以获得每个所述数据处理任务对应的数据源信息,每个所述数据源信息所指示的数据源用于存储对应的数据处理任务所针对的数据。
其中,所述数据处理任务的属性信息可以包括但不限于:数据处理任务的标识信息、执行结果的存储路径、优先级信息、状态信息和任务生成时间等。
其中,所述数据处理任务的状态信息可以包括正在执行、等待执行和执行完毕。
其中,可以依据时间间隔定时扫描M个数据处理任务的执行状态,依据每个数据处理任务的优先级信息,将其中等待执行的数据处理任务按照优先级由高到低的顺序进行排序,以获得排序结果。然后依据预设的数值N,从排序结果中提取等待执行的数据处理任务中优先级最高的N个数据处理任务。
或者,也可以依据时间间隔定时扫描M个数据处理任务的执行状态,依据每个数据处理任务的任务生成时间,将其中等待执行的数据处理任务按照任务生成时间由远到近的顺序进行排序,以获得排序结果。然后依据预设的数值N,从排序结果中提取等待执行的数据处理任务中最早生成的N个数据处理任务。
可以理解的是,每个数据源信息用于指示一个数据源,每个终端可以存储至少一个数据源,每个数据源可以同时存储在至少一个终端中,基于此,本发明实施例中,可以预先获得终端与数据源的对应关系,在获得数据源信息后,可以依据该数据源信息,从该终端与数据源的对应关系中,获得该数据源信息所指示的数据源所在的至少一个终端。
若获得至少两个终端,则选择包含的内容最少的数据源所在的终端,将选出的包含的内容最少的数据源所在的终端作为上述第一终端。这里,包含的内容最少的数据源对应的数据查询速度最快,因此,为了优化查询速度,当存在至少两个数据源时,只选择一个内容最少的数据源即可。
第一终端接收到数据处理任务后,可以执行该数据处理任务,依据数据所在字段信息,获得相应的数据,以及依据数据的分类信息,对获得的数据进行分类,最后向用户提供分类结果。
例如,在音乐的榜单数据中,会显示榜单中每个音乐的播放量,若用户在前端页面上点击榜单数据或者悬停在榜单数据时,可以显示至少一个分类信息供用户选择。然后依据播放量的字段信息以及用户选择的播放量的分类信息,生成相应的数据处理任务。终端执行该数据处理任务时,可以从终端本地的数据源中查询到播放量,以及依据分类信息对播放量进行分类,如按照地域进行划分或者按照性别进行划分等,然后可以按照地域显示各个地区的音乐,或者按照性别分别显示男性歌手的音乐和女性歌手的音乐。
S203,若所述第一终端执行所述数据处理任务出现异常,向第二终端发送所述数据处理任务,以使得所述第二终端执行所述数据处理任务。
具体的,第一终端执行所述数据处理任务的过程中,可以依据预设的时间间隔,定时获得所述第一终端执行所述数据处理任务的效率信息。若所述效率信息小于预设的效率门限,表示第一终端由于处理资源不足等原因导致数据处理任务执行缓慢,则确定所述第一终端执行所述数据处理任务出现异常。反之,若所述效率信息大于或者等于该效率门限,确定所述第一终端执行所述数据处理任务正常。
例如,将本次获取第一终端执行数据处理任务的进度百分比与上一次获取第一终端执行数据处理任务的进度百分比的差值,作为第一终端执行所述数据处理任务的效率信息。
或者,在第一终端执行所述数据处理任务完毕后,可以接收第一终端返回的执行结果,这样,就可以获得所述第一终端执行所述数据处理任务的执行结果。若所述执行结果为执行失败,表示第一终端由于出现故障等原因导致数据处理任务执行失败,则确定所述第一终端执行所述数据处理任务出现异常。反之,若所述执行结果为执行成功,确定所述第一终端执行所述数据处理任务正常。
在确定所述第一终端执行所述数据处理任务出现异常后,为了保证能够及时执行数据处理任务,以及能够及时获得所需要的数据,可以向第二终端发送所述数据处理任务,以使得所述第二终端执行所述数据处理任务。
举例说明,向第二终端发送所述数据处理任务,以使得所述第二终端执行所述数据处理任务的方法可以包括但不下限于以下两种方法:
第一种:若依据终端与数据源的对应关系,获得的该数据源信息所指示的数据源存储在至少两个终端中,包含上述第一终端,当第一终端执行数据处理任务异常后,可以进一步获得该数据源信息所指示的数据源所在的第二终端,第二终端指的该数据源信息所指示的数据源存储在的至少两个终端中除第一终端以外的一个终端。然后,向该第二终端发送数据处理任务,以便于所述第二终端利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
第二种:确定第二终端,向所述第二终端发送所述数据处理任务和所述第一终端的标识,以便于所述第二终端依据所述第一终端的标识从所述第一终端获得所述数据源,以及利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
例如,可以依据除第一终端以外其他终端的负载状态信息,将其中负载最轻的终端作为上述第二终端。
另外,第二终端接收到数据处理任务后,可以执行该数据处理任务,依据数据所在字段信息,获得相应的数据,以及依据数据的分类信息,对获得的数据进行分类,最后向用户提供分类结果。
可以理解的是,当数据源只存储在一个终端中,即只存储在第一终端中,若第一终端执行数据处理任务异常时,需要另外选择一个第二终端执行该数据处理任务,但是该第二终端没有执行该数据处理任务时所需要的数据源,因此,第二终端需要先依据第一终端的标识,找到第一终端,并从第一终端下载该数据源,然后,才能利用该数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
另外,第一终端或者第二终端执行数据处理任务成功后,会获得数据处理任务的执行结果,可以利用结构化存储方式,存储数据处理任务的执行结果,这样,执行结果可以反复使用。
另外,可以利用数据备份技术,将数据处理任务的执行结果同时存储在至少两个终端的数据源中,这样,当一个终端出现异常时还可以从其他终端中获得数据处理任务的执行结果,避免由于存储执行结果的终端的异常而影响执行结果的获取和使用。
例如,在按照地域进行划分或者按照性别对音乐的播放量进行划分后,可以将各个地区的音乐的播放量存储在至少两个终端的数据源中。或者,在至少两个终端中每个终端的数据源中,分别按照性别存储男性歌手的音乐和女性歌手的音乐。
需要说明的是,本发明实施例中所涉及的终端可以包括但不限于个人计算机(Personal Computer,PC)、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)、手机、MP3播放器、MP4播放器等。
需要说明的是,S201~S203的执行主体可以为数据处理装置,该装置可以位于本地终端的应用,或者还可以为位于本地终端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,或者还可以位于服务器,本发明实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的应用程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本发明实施例对此不进行限定。
本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
请参考图3,其为本发明实施例所提供的数据处理装置的功能方块图。如图所示,该装置包括:
任务生成单元30,用于依据数据的描述信息,获得针对所述数据的数据处理任务;
任务分发单元31,用于将所述任务生成单元获得的所述数据处理任务发送给第一终端,以使得所述第一终端执行所述数据处理任务;
所述任务分发单元31,还用于若所述第一终端执行所述数据处理任务出现异常,向第二终端发送所述任务生成单元获得的所述数据处理任务,以使得所述第二终端执行所述数据处理任务。
优选的,所述任务生成单元30,具体用于:
接收输入的所述数据的描述信息,所述数据的描述信息包括所述数据所在字段信息和所述数据对应的分类信息;
利用数据处理语言描述所述数据的描述信息,以获得针对所述数据的数据处理任务;
其中,所述数据处理语言包括微软M语言、R语言、Hive查询语言HQL或者结构化查询语言SQL。
优选的,所述任务分发单元31,具体用于:
获得所述数据处理任务对应的数据源信息;
获得所述数据源信息所指示的数据源所在的第一终端;
将所述数据处理任务发送给所述第一终端,以使得所述第一终端利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
优选的,所述数据处理任务的数目为M个,M为大于或者等于1的整数;所述获得所述数据处理任务对应的数据源信息,具体为:
依据每个所述数据处理任务的属性信息,从M个所述数据处理任务中提取N个所述数据处理任务,N为大于或者等于1,且小于或者等于M的整数;
对N个所述数据处理任务中每个所述数据处理任务进行解析,以获得每个所述数据处理任务对应的数据源信息,每个所述数据源信息所指示的数据源用于存储对应的数据处理任务所针对的数据。
可选的,所述装置还包括:
任务监控单元32,用于获得所述第一终端执行所述数据处理任务的效率信息;若所述效率信息小于预设的效率门限,确定所述第一终端执行所述数据处理任务出现异常;或者,用于获得所述第一终端执行所述数据处理任务的执行结果;若所述执行结果为执行失败,确定所述第一终端执行所述数据处理任务出现异常。
优选的,所述任务分发单元31,具体用于:
获得所述数据源信息所指示的数据源所在的第二终端,向所述第二终端发送所述数据处理任务,以便于所述第二终端利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据;或者,
确定第二终端,向所述第二终端发送所述数据处理任务和所述第一终端的标识,以便于所述第二终端依据所述第一终端的标识从所述第一终端获得所述数据源,以及利用所述数据源执行所述数据处理任务,以获得用于提供给用户的所述数据。
由于本实施例中的各单元能够执行图2所示的方法,本实施例未详细描述的部分,可参考对图2的相关说明。
本发明实施例的技术方案具有以下有益效果:
本发明实施例通过依据数据的描述信息,获得针对所述数据的数据处理任务;从而将所述数据处理任务发送给第一终端,以使得所述第一终端执行所述数据处理任务;进而在所述第一终端执行所述数据处理任务出现异常时,向第二终端发送所述数据处理任务,以使得所述第二终端执行所述数据处理任务。本发明实施例可以依据数据的描述信息自动生成数据处理任务,并在执行数据处理任务的第一终端出现异常后,及时将该数据处理任务发送给第二终端进行执行,解决了现有技术中手动编写及配置数据处理任务带来的数据处理效率低的问题,也解决了由于终端执行数据处理任务失败或者效率低,影响数据处理效率和执行可靠性低的问题,因此,本发明实施例提供的技术方案能够提高数据处理任务的可靠性和数据处理效率。另外,还可以减少人力成本。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。