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

文档序号:18601007发布日期:2019-09-03 22:39阅读:124来源:国知局
本发明涉及数据处理
技术领域
:,具体而言,涉及一种数据处理方法及装置。
背景技术
::随着互联网、物理网的发展,数据采集和传输技术的进步,各种各样的数据也在急速增长,因此,如何进行数据处理已经越来越受到关注。现有技术中,为了提高海量数据的快速提取,计算节点可以获取业务数据以及该业务数据的数据属性;将该业务数据存储至该计算节点的业务数据表中,之后当该计算节点接收到数据查询请求时,可以根据数据查询请求所携带的数据属性,从该业务数据表中查找得到相应的业务数据。但是,由于受到计算节点的处理器性能以及输入输出性能的限制,因此,数据查询的效率低下。技术实现要素:本发明的目的在于,针对上述现有技术中的不足,提供一种数据处理方法及装置,以解决数据查询的效率低下的问题。为实现上述目的,本发明实施例采用的技术方案如下:第一方面,本发明实施例提供了一种数据处理方法,应用于数据处理系统中的各从节点,所述数据处理系统包括主节点和多个所述从节点,各所述从节点存储有归属于同一业务数据表的业务数据子表,所述方法包括:接收主节点发送的业务数据和所述业务数据的至少一个数据属性,基于所述主节点发送的至少一个数据属性,确定所述业务数据归属的第一业务数据子表,将所述业务数据存储至所述第一业务数据子表。一种实现方式中,所述将所述业务数据存储至所述第一业务数据子表,包括:基于所述主节点发送的至少一个数据属性,确定所述业务数据归属的目标数据区域,将所述业务数据存储至所述目标数据区域。一种实现方式中,在所述接收主节点发送的业务数据和所述业务数据的至少一个数据属性之前,所述方法还包括:接收所述主节点发送的业务数据子表创建请求,所述业务数据子表创建请求中携带至少一种与所述业务数据子表对应的数据属性,基于所述业务数据子表创建请求携带的至少一个数据属性,创建所述业务数据子表。一种实现方式中,所述基于所述主节点发送的至少一个数据属性,确定所述业务数据归属的第一业务数据子表,包括:基于所述主节点发送的至少一个数据属性,确定所述业务数据归属的多个第一业务数据子表,所述将所述业务数据存储至所述第一业务数据子表,包括:将所述业务数据存储至任一所述第一业务数据子表。一种实现方式中,所述方法还包括:接收所述主节点发送的数据查询请求,所述数据查询请求携带至少一个数据属性,确定与所述数据查询请求携带的至少一个数据属性对应的第二业务数据子表,从所述第二业务数据子表中获取目标业务数据,向所述主节点发送数据查询反馈,所述数据查询反馈携带所述目标业务数据,所述数据查询反馈用于所述主节点将各所述从节点反馈的目标业务数据进行合并。第二方面,本发明实施例还提供了一种数据处理装置,应用于数据处理系统中的各从节点,所述数据处理系统包括主节点和多个所述从节点,各所述从节点存储有归属于同一业务数据表的业务数据子表,所述装置包括:接收模块、确定模块和存储模块,所述接收模块用于,接收主节点发送的业务数据和所述业务数据的至少一个数据属性,所述确定模块用于,基于所述主节点发送的至少一个数据属性,确定所述业务数据归属的第一业务数据子表,所述存储模块用于,将所述业务数据存储至所述第一业务数据子表。一种实现方式中,所述存储模块具体用于,基于所述主节点发送的至少一个数据属性,确定所述业务数据归属的目标数据区域,将所述业务数据存储至所述目标数据区域。一种实现方式中,所述装置还包括创建模块,所述创建模块用于接收所述主节点发送的业务数据子表创建请求,所述业务数据子表创建请求中携带至少一种与所述业务数据子表对应的数据属性,基于所述业务数据子表创建请求携带的至少一个数据属性,创建所述业务数据子表。一种实现方式中,所述确定模块具体用于,基于所述主节点发送的至少一个数据属性,确定所述业务数据归属的多个第一业务数据子表,并将所述业务数据存储至任一所述第一业务数据子表。一种实现方式中,所述装置还包括反馈模块,用于接收所述主节点发送的数据查询请求,所述数据查询请求携带至少一个数据属性,确定与所述数据查询请求携带的至少一个数据属性对应的第二业务数据子表,从所述第二业务数据子表中获取目标业务数据,向所述主节点发送数据查询反馈,所述数据查询反馈携带所述目标业务数据,所述数据查询反馈用于所述主节点将各所述从节点反馈的目标业务数据进行合并。本发明的有益效果是:由于数据处理系统中的各从节点存储有归属于同一业务数据表的业务数据子表,且不同的业务数据表以及业务数据子表可以对应不同的数据属性,因此各从节点可以接收主节点发送的业务数据和该业务数据的至少一个数据属性,按照该业务数据的至少一个数据属性,确定该业务数据归属的第一业务数据子表,从而将业务数据存储至第一业务数据子表,也即是,可以将同一业务数据表中的业务数据存储至多个从节点中的业务数据子表。所以各从节点可以分别将来自主节点的业务数据,按照该业务数据的数据属性,将该业务数据存储归属于同一业务数据表的业务数据子表,从而确保后续在查询任一业务数据表中的业务数据时,各从节点可以并行从各自存储的归属于该业务数据表的业务数据子表中,获取相应的业务数据。由于业务数据子表中业务数据的数据量,少于业务数据表中业务数据的数据量,因此,相比于一个计算节点从包括数据较多的业务数据表查询业务数据,多个从节点并行从业务数据子表查询业务数据,能够显著提高效率,也即是,提高了数据处理系统的效率。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本申请实施例提供的一种数据处理系统结构示意图;图2为本申请实施例提供的又一种数据处理系统结构示意图;图3为本申请实施例提供的一种数据处理方法流程示意图;图4为本申请实施例提供的一种创建业务数据子表的方法流程示意图;图5为本申请实施例提供的一种数据查询方法流程示意图;图6为本申请实施例提供的一种数据下载流程示意图;图7为本申请实施例提供的一种业务数据子表的示意图;图8为本申请实施例提供的一种数据处理装置的结构示意图;图9为本申请实施例提供的另一种数据处理装置的结构示意图;图10为本申请实施例提供的又一种数据处理装置的结构示意图;图11为本申请实施例提供的一种电子设备结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。数据处理系统包括主节点和多个从节点,且该数据处理系统可以部署于服务器或服务器集群。当该数据处理系统部署于服务器时,该服务器中的模块可以作为主节点或从节点;当该数据处理系统部署于服务器集群时,该服务器集群中的服务器可以作为主节点或从节点。图1为本申请实施例提供的一种数据处理系统结构示意图,如图1所示,该系统包括多个从节点101和主节点102。各从节点101和主节点102可以被分别部署在单独的服务器中,且各从节点101和主节点102通信连接。主节点102可以作为数据处理系统结构的入口,从而与客户端以及各从节点101进行交互,协调从节点101运行,完成数据存储、修改和查询等数据处理任务。该主节点102存储有系统全局结构的系统信息表以及数据库的元信息。以数据查询为例,客户端可以向主节点102提交结构化查询语言(structuredquerylanguage,简称sql)命令,主节点102对客户端进行认证,并处理该sql命令,控制各从节点101查询相应的业务数据,并将查询结果汇总到主节点102之后反馈给客户端。业务数据为该数据处理系统存储的用户数据。比如,在环境检测应用中,该业务数据可以包括来自多个观区域多个观测点的多个传感器的自然观测数据。从节点101存储有业务数据,能够对主节点102的指令进行响应。其中,一个从节点101可以包括一个以上的实例,各实例可以分别独立占用一个处理器,从而能够并行运行。需要说明的是,实例可以相当于一个线程。例如,如图1所示,该数据处理系统包括3个从节点101,各从节点101可以包括10个处理器,因此,各从节点101中可以包括10个实例,从而该数据处理系统可以包括30个能够并行运行的实例。需要说明的是,在实际应用中,可以根据数据处理的需求,增加或减少从节点101的数目,和/或,增加或减少任一从节点101中实例的数目,从而对数据处理系统进行扩展。图2为本申请实施例提供的又一种数据处理系统结构示意图,该数据处理系统还可以包括其它设备,如图2所示。在如图1的基础上,该数据系统还包括web服务器103、存储服务器104、磁盘阵列主机105和多个磁盘扩展柜106。web服务器103分别与存储服务器104和主节点102通信连接,存储服务器104还与磁盘阵列主机105通信连接,磁盘阵列主机105还与各磁盘扩展柜106通信连接。其中,多个磁盘扩展柜106处于同一内网,且该磁盘阵列主机105和多个磁盘扩展柜106构成磁盘阵列,可以用于存储非结构化数据,比如图片和视频等。前述中的多个从节点101处于同一内网,且该多个从节点101可以和主节点102构成分布式数据库,可以用于存储结构化数据。当web服务器接收到访问请求时,可以根据该访问请求,选择从磁盘阵列或者分布式数据库中获取数据。另外,将数据处理系统部署于服务器集群,还可以基于分布式文件系统的大规模并行处理(massiveparalleaprocessing,简称mpp)数据库,配置系统中的一些参数,来实现系统对不同的业务数据进行处理时所实现的方式,例如:服务器hosts文件或名称设置、安全限制参数(limits)设置、i/o调度策略设置和修改磁盘预读扇区数(segment)等,segment设置的过程依次是:编辑各个节点信息文件、打通所有节点直接的互信、segment节点安装greenplum和segment节点配置环境变量等,greenplum安装的过程依次是:安装主节点所述服务器(master)、创建gpadmin用户、创建软件安装目录、下载中央控制节点(genomeprofiledatabase,简称gpdb)源码安装、设置gpdb环境变量等。部署分布式mpp数据库的运行系统还可以选择社区企业操作系统(communityenterpriseoperatingsystem,简称centos),具有较高的性能。需要注意的是,本发明所提供的实施例,在不脱离本申请的精神和范围的情况下,可以将本申请所定义的一般原理应用于任意适用的实施例和应用场景中的数据处理,下述在介绍使用本发明所提供的实施例对数据处理的举例,运用于生态环境中产生的结构化数据为例进行说明,应该理解,这仅是示例性实施例,只是为了使得方案的理解和描述更加清楚,并不是限定其可实现的唯一方式或途径等,因此,下述的描述在实际应用中,无论任何应用场景下产生的数据,均可由本发明所提供的实施例实现。图3为本申请实施例提供的一种数据处理方法流程示意图,该方法应用于数据处理系统中的各从节点,该数据处理系统包括主节点和多个从节点,各从节点存储有归属于同一业务数据表的业务数据子表,如图3所示,该方法包括:s301、接收主节点发送的业务数据和业务数据的至少一个数据属性。具体的,为了按照业务数据的数据属性对业务数据进行存储以及后续的业务数据查询,从节点可以通过与主节点之间的通信连接,接收来自主节点的业务数据以及至少一个数据属性。数据属性,是指对业务数据的具体描述和特性等信息,可以包括业务数据产生的时间和类型等。例如,在环境检测应用中,数据属性可以包括观测区域、观测站、传感器和观测周期等属性中的至少一种。需要说明的是,上述业务数据和业务数据的至少一个数据属性,可以由主节点随机向各从节点发送发送得到,或者,可以由主节点按照预设的次序,依次向各从节点发送得到。例如:共有30个从节点,在自然环境观测中产生10亿条业务数据,则主节点将这10亿条业务数据随机分割为30份,并随机发送给30个从节点。s302、基于主节点发送的至少一个数据属性,确定业务数据归属的第一业务数据子表。具体的,由于从节点存储有归属于同一业务数据表的业务数据子表,不同的业务数据表以及归属于该业务数据表的业务数据子表中存储的业务数据可以分别具有不同的数据属性,也即是,不同的业务数据表和业务数据子表可以对应不同的数据属性,因此,为了确保将接收到的业务数据准确地存储至所归属的业务数据子表,从节点可以基于接收到的至少一个数据属性,确定该业务数据归属的第一业务数据子表。其中,从节点可以按照接收到的至少一个数据属性,查找与该至少一个数据属性对应的业务数据子表,并将查找到的业务数据子表确定为第一业务数据子表。需要说明的是,从节点可以事先建立归属于业务数据表的的业务数据子表,并将该业务数据表所对应的至少一个数据属性,确定为与该业务数据子表对应的至少一个数据属性。业务数据表是一种用于存储数据的数据格式,用来存储应用中产生的业务数据。一个业务数据表可以包括多个归属于该业务数据表的业务数据子表。业务数据子表包括归属的业务数据表的部分业务数据。s303、将业务数据存储至第一业务数据子表。具体的,当从节点确定接收的主节点发送的业务数据归属于第一业务数据子表时,将该业务数据存储到第一业务数据子表中。本实施例中,由于数据处理系统中的各从节点存储有归属于同一业务数据表的业务数据子表,且不同的业务数据表以及业务数据子表可以对应不同的数据属性,因此各从节点可以接收主节点发送的业务数据和该业务数据的至少一个数据属性,按照该至少一个数据属性,确定该业务数据归属的第一业务数据子表,从而将业务数据存储至第一业务数据子表,也即是,可以将同一业务数据表中的业务数据存储至多个从节点中的业务数据子表。所以各从节点可以分别将来自主节点的业务数据,按照该业务数据的数据属性,将该业务数据存储归属于同一业务数据表的业务数据子表,从而确保后续在查询任一业务数据表中的业务数据时,各从节点可以并行从各自存储的归属于该业务数据表的业务数据子表中,获取相应的业务数据。由于业务数据子表中业务数据的数据量,少于业务数据表中业务数据的数据量,因此,相比于一个计算节点从包括数据较多的业务数据表查询业务数据,多个从节点并行从业务数据子表查询业务数据,能够显著提高效率,也即是,提高了数据处理系统的效率。一种实现方式中,将业务数据存储至第一业务数据子表,包括:基于主节点发送的至少一个数据属性,确定业务数据归属的目标数据区域,将业务数据存储至目标数据区域。具体的,将各业务数据子表又按照业务数据的数据属性分为至少一个数据区域,不同数据区域中存储的业务数据可以分别具有不同的数据属性,因此,当从节点接收到主节点发送的一个业务数据时,根据该业务数据对应的数据属性,在针对第一业务数据子表中划分的至少一个数据区域中,确定该业务数据归属的目标数据区域,并将该业务数据存储到该目标数据区域。需要说明的是,从节点可以根据接收到的该业务数据对应的至少一个数据属性中的一个或多个数据属性,查找与该一个或多个数据属性对应的数据区域,并将查找到的数据区域确定为目标数据区域。数据区域是存储业务数据的存储位置,比如硬盘分区,或硬盘中存储位置区分等。因此,可以根据至少一个数据属性,事先向业务数据子表分配数据区域,按照至少一个数据属性中的一种或多种,给业务数据子表划分至少一个数据区域,从而将确定归属于第一业务数据子表中的业务数据,按照该业务数据的至少一个数据属性中一种或多种,将归属于第一业务数据子表中的该业务数据存储在对应数据区域中。例如,在自然环境观测中,业务数据为观测数据,业务数据的至少一个数据属性包括对应观测数据的观测时间,包括年、月、日、时、分和秒。在归属于同一业务数据表的业务数据子表中存储的观测数据,可以按照观测时间对观测数据的存储建立不同的数据区域,即可以是在归属于同一业务数据表的业务数据子表中,将相同年份的观测数据存储在一个数据区域,以便后续在观测数据的查询时,可根据要查询观测数据所属的年份,只在对应年份的数据区域内获取观测数据;进一步地,可以将同一年份中相同月份的观测数据存储在一个数据区域,以便后续在观测数据的查询时,可根据要查询观测数据所属的年份和月份,只在对应年份和对应月份的数据区域内获取观测数据。需要说明的是,上述建立数据区域只是一种优选实施例的举例,在实际应用中,还可以按照观测数据的其他至少一个数据属性,建立归属于同一业务数据表的业务数据子表中不同的数据区域。进一步地,还可以对业务数据进行备份,可将业务数据备份在主节点中,或者备份在备份节点中,根据实际情况可以设置预计备份业务数据的设备。当然,还可以设置不同的备份策略,例如:将业务数据备份在主节点中,将备份周期设置为7天,可在该7天内对所有的业务数据进行实时备份,即产生一条业务数据,则备份一条业务数据,当该7天结束时,可将在该7天内备份的所有业务数据进行重新备份,即进行一次完整性备份,其中,备份的文件格式包括“.back”的格式,从而保证了业务数据恢复的便利性,可以通过数据库等技术还原成可应用的数据,以便于在完整备份后,对备份的业务数据的可用性和完整性进行测试,测试通过后删除该7天内实时备份的业务数据,只保留完整性备份的业务数据,从而减少备份所消耗的主节点的内存。其中,备份策略可以基于python设计的程序,按照预设的时间周期,定期自动将备份数据发送至另外的备份节点中,其备份节点也可以是服务器集群中的服务器,从而保证主节点中与备份节点中始终有两份相同的备份数据。本实施例中,从节点在接收的主节点发送的业务数据之后,能够先确定该业务数据归属于同一业务数据表的第一业务数据子表,再基于主节点发送的该业务数据的至少一个数据属性,准确的确定该业务数据归属于第一业务数据子表的目标数据区域,从而将接收的主节点发送的所有业务数据存储至归属于同一业务数据表的多个业务数据子表中,且存储在第一业务数据表的多个数据区域,从而确保后续在查询任一数据区域中的业务数据时,各从节点可以并行从各自存储的归属于该业务数据表的业务数据子表的数据区域中,快速准确地获取相应的业务数据,进一步提高了数据处理系统的效率。图4为本申请实施例提供的一种创建业务数据表的方法流程示意图,如图4所示,一种实现方式中,在步骤s301接收主节点发送的业务数据和业务数据的至少一个数据属性之前,方法还包括:s401、接收主节点发送的业务数据子表创建请求,业务数据子表创建请求中携带至少一种与业务数据子表对应的数据属性。具体的,为了按照业务数据子表存储业务数据的方式对业务数据进行存储,以及后续的业务数据查询,从节点可以通过与主节点之间的通信连接,接收主节点发送的业务数据子表创建请求,从而由主节点将业务数据子表创建请求发送至从节点。业务数据子表创建请求用于主节点请求从节点创建业务数据子表。s402、基于业务数据子表创建请求携带的至少一个数据属性,创建业务数据子表。具体的,为确保业务数据子表存储业务数据的方式,可以按照业务数据的至少一个数据属性对业务数据进行存储,从而从节点接收到主节点发送的业务数据子表创建请求,并基于业务数据子表创建请求中携带至少一个数据属性,即可创建归属于同一业务数据表的业务数据子表。例如,在自然观测中,业务数据为观测数据,至少一个数据属性包括观测区域和观测周期,观测区域包括按照观测站1、2、3和4等4个观测区域,观测周期包括按照1分钟、10分钟、30分钟和其他周期的4种观测周期,若将同一观测区域和同一观测周期的业务数据存储于同一业务数据子表中,即分别创建16个业务数据子表,每个业务数据子表对应一种观测区域和观测周期。当从节点接收到主节点发送的业务数据和至少一个数据属性之后,根据业务数据的观测区域和观测周期,来确定该业务数据归属于同一业务数据表的第一业务数据子表,例如:从节点接收的该业务数据的至少一个数据属性是观测周期为10分钟且在观测站2中观测到的业务数据,则确定该业务数据存储在归属于观观测站为2且观测周期为10分钟的业务数据子表中。另外,由于业务数据子表中还可以建立存储业务数据的不同业务数据区域,若业务数据的至少一个数据属性还包括观测时间,则可以进一步根据业务数据的观测时间确定在业务数据子表中的数据区域,例如:观测站为2且观测周期为10分钟的业务数据子表中,将其同一年份且同一月份的业务数据存储在一个区域内。具体分区方式可以参考上述数据区域的建立,在此不再详细赘述。本实施例中,为使从节点在存储业务数据时,按照业务数据的至少一个数据属性,对业务数据进行存储,可以将从节点与主节点通信连接,首先由从节点接收主节点发送的业务数据子表创建请求,并使业务数据子表创建请求中携带至少一种与业务数据子表对应的数据属性,从而可以基于业务数据子表创建请求携带的至少一个数据属性,创建存储业务数据的业务数据子表,从而确保从节点在接收到主节点发送的业务数据和与该业务数据对应的至少一个数据属性后,将业务数据准确的存储至对应业务数据子表中,以便后续在业务数据查询时,从节点可以在不同的业务数据子表中获取对应业务数据。一种实现方式中,基于主节点发送的至少一个数据属性,确定业务数据归属的第一业务数据子表,包括:基于主节点发送的至少一个数据属性,确定业务数据归属的多个第一业务数据子表;将业务数据存储至第一业务数据子表,包括:将业务数据存储至任一第一业务数据子表。具体的,各从节点均包括至少一个线程,每个线程作为一个实例,从而可以分别存储归属于同一业务数据表的业务数据子表,则在各从节点中,可以基于主节点发送的至少一个数据属性,确定业务数据归属的多个第一业务数据子表,因此,在各从节点接收到主节点发送的业务数据之后,基于主节点发送的业务数据对应的至少一个数据属性,确定该业务数据归属的多个第一业务数据子表,再将该业务数据随机存储在任意一个线程的第一业务数据子表中。本实施例中,各从节点可以包括至少一个线程,每个线程可以存储归属于同一业务数据表的业务数据子表,从而在各从节点接收到主节点发送的业务数据之后,基于主节点发送的业务数据对应的至少一个数据属性,确定该业务数据归属的多个第一业务数据子表,再将该业务数据随机存储在任意一个线程的第一业务数据子表中,使得在各从节点中的业务数据分别存储在多个线程中,便于后续在业务数据的查询时,可同时从各从节点的至少一个线程中查询,从而获取对应的业务数据,进一步提高了数据处理的效率,也即是数据处理系统的效率。图5为本申请实施例提供的一种数据查询的方法流程示意图,如图5所示,一种实现方式中,在步骤s303之后,方法还包括:s501、接收主节点发送的数据查询请求,数据查询请求携带至少一个数据属性。具体的,为了按照数据查询请求查询业务数据的方式对业务数据进行查询,各从节点均可以通过与主节点之间的通信连接,接收主节点发送的数据查询请求,从而由主节点将数据查询请求发送至从节点。并根据数据查询请求中携带的至少一个数据属性,从各从节点中查询对应业务数据。数据查询请求用于主节点请求从节点查询业务数据。s502、确定与数据查询请求携带的至少一个数据属性对应的第二业务数据子表。具体的,由于从节点存储有归属于同一业务数据表的业务数据子表,根据数据属性将业务数据存储在不同的业务数据子表中,因此,为了确保从节点按照接收的数据查询请求中携带的至少一个数据属性,从各业务数据子表中查询业务数据,在各从节点接收到主节点发送的数据查询请求之后,根据数据查询请求中携带的至少一个数据属性,从多个业务数据子表中确定满足数据查询请求的第二业务数据子表。第二业务数据子表,存储有满足数据查询请求的所有业务数据。例如:从节点可以按照接收到数据查询请求携带的至少一个数据属性,查找与该至少一个数据属性对应的业务数据子表,并将查找到的业务数据子表确定为第二业务数据子表。s503、从第二业务数据子表中获取目标业务数据。具体的,第二业务数据子表中存储有至少一条业务数据,当各个从节点根据数据查询请求携带的至少一个数据属性,确定与数据查询请求携带的至少一个数据属性对应的第二业务数据子表之后,从节点可以从第二业务数据子表中获取目标业务数据。需要说明的是,从节点可以根据接收到的该数据查询请求对应的至少一个数据属性中的一个或多个数据属性,查找与该一个或多个数据属性对应的第二业务数据子表,再从第二业务数据子表中查询业务数据,并将查找到的业务数据确定为目标业务数据。目标业务数据为数据查询请求所要查询的业务数据。s504、向主节点发送数据查询反馈,数据查询反馈携带目标业务数据,数据查询反馈用于主节点将各从节点反馈的目标业务数据进行合并。具体的,从节点可以将查询到的目标业务数据反馈给主节点,因此,在各个从节点从第二业务数据子表中获取目标业务数据之后,从节点通过向主节点发送数据查询请求反馈,将获取的目标业务数据发送给主节点,主节点可以将接收到的数据目标业务数据进行合并。数据查询反馈为针对数据查询请求的反馈。另外,在各从节点中存储的业务数据,还可以通过从节点接收主节点发送的数据更新请求,对从节点中存储的业务数据进行更新。数据更新请求用于主节点请求从节点对业务数据进行更新。例如:从节点通过接收主节点发送的数据查询请求,确定对应的第二业务数据子表,再进一步通过接收数据更新请求,对第二业务数据子表中的业务数据进行更新,从而实现将从节点中存储的业务数据进行修改、删除或新增等更新操作。本实施例中,由于多个从节点根据业务数据的至少一个数据属性,将业务数据存储在各自节点的业务数据子表中,因此,从节点通过接收主节点发送的数据查询请求,根据数据查询请求携带至少一个数据属性,可以确定与数据查询请求携带的至少一个数据属性对应的第二业务数据子表,从第二业务数据子表中获取到目标业务数据之后,再将目标业务数据通过各个从节点向主节点发送数据查询反馈,使得各从节点获取的目标业务数据通过数据查询反馈在主节点合并,从而可以实现按照业务数据查询请求携带的至少一个数据属性,确定从各个从节点中的第二业务数据中子表中同时查询,显著提高了数据查询的效率,也即是提高了数据处理系统的效率。进一步地,主节点向从节点发送业务数据查询请求、业务数据更新请求和业务数据子表创建请求,均可以将客户端与主节点通信连接,由客户端将业务数据查询请求、业务数据更新请求和业务数据子表创建请求发送给主节点,再将主节点与各从节点通信连接,由主节点将业务数据查询请求、业务数据更新请求和业务数据子表创建请求发送给各从节点。需要说明书的是,数据查询请求针对的业务是,在各从节点的第二业务数据子表中获取目标业务数据,而数据查询反馈针对的业务是,将各从节点从第二业务数据子表获取的目标业务数据反馈给主节点合并,其中,数据查询请求反馈是根据数据查询请求携带的至少一个数据属性来获取目标业务数据,由于每次数据查询请求携带的至少一个数据属性有可能不同,导致获取的目标业务数据的数据量也均不相同,因此,若直接从主节点将业务数据提供给客户端,当数据量越大时,会导致客户端下载目标业务数据的速度越慢。为使上述当数据量越大时,不会导致客户端下载目标业务数据的速度越慢,可通过下述方式来提高客户端下载目标业务数据的速度。图6为本申请实施例提供的一种数据下载流程示意图,如图6所示,数据下载的方法包括:s601、接收数据查询反馈,数据查询反馈携带目标业务数据,目标业务数据携带至少一个时间属性。s602、确定至少一个时间属性是否大于等于预设时间。若是,则执行步骤s603,否则,执行步骤s604。s603、将目标业务数据打包成文件之后,将打包的目标业务数据对应文件提供给云盘。s604、将目标业务数据提供给客户端。具体的,主节点能够接收各从节点发送的业务数据查询反馈,由于业务数据查询反馈包括目标业务数据,而目标业务数据又包括至少一个时间属性,因此,可以设置预设时间,通过确定该至少一个时间属性是否大于等于预设时间,当确定该至少一个时间属性大于等于预设时间时,可将主节点合并的目标业务数据数据打包成文件,将打包的目标业务数据对应文件发送到云盘,进一步使客户端通过网络从云盘中获取打包的目标业务数据对应文件,从而实现客户端对数据查询反馈的目标业务数据进行下载,相反的,当至少一个时间属性小于预设时间时,主节点将合并的目标业务数据直接提供给客户端,从而不需要打包,也无需云盘提供服务,使客户端直接通过浏览器或计算应用程序等从主节点获取合并的目标业务数据,从而实现客户端对数据查询反馈的目标业务数据可视化。例如:将预设时间设置成30天,当数据查询反馈中目标业务数据的时间属性大于等于30天时,将主节点合并的目标业务数据数据打包成文件,当数据查询反馈中目标业务数据的时间属性小于30天时,主节点将合并的目标业务数据直接提供给客户端。需要说明的是,预设时间也可以是一天或一年等不同时间段设置,另外,在主节点打包的目标业务数据的文件格式可以是“.csv”格式,为进一步降低文件所占内存大小,进而影响下载速度,还可以将“.csv”格式的文件进行压缩之后,再提供给云盘存储,可进一步提高客户端下载目标业务数据的速度。另外,在主节点生成的“.csv”格式的文件时可采用编程语言pathon技术实现,在实际应用中,具体实现过程以及编程语言的选用也可根据数据处理方法的不同情况选择不同的编程语言实现,在此不再详细描述。本实施例中,通过设置预设时间的方式,能够将大于等于预设时间的业务数据与小于预设时间业务数据通过不同的方式提供客户端,由于大于等于预设时间的业务数据的数据量较大,从而在主节点将合并目标业务数据打包成文件,将打包的目标业务数据对应文件发送到云盘,进一步使客户端通过网络从云盘中获取打包的目标业务数据对应文件,从而实现客户端对数据查询反馈的目标业务数据进行下载,由于小于预设时间的业务数据的数据量较小,从而在主节点将合并的目标业务数据直接提供给客户端,使得目标业务数据不需要打包,也无需云盘提供服务,客户端即可直接通过浏览器或计算应用程序等从主节点获取合并的目标业务数据,从而实现客户端对数据查询反馈的目标业务数据可视化,避免了在客户端直接使用网络带宽从主节点下载大量业务数据时所用的时间,从而可以消除网络带宽的影响,提高用户的使用效率和体验。可选地,在本申请所提供的数据处理方法中,可通过搭建分布式数据库方案底层采用开源的greenplum来开发,建立对应业务数据子表的存储方式,利用sql数据查询语句技术,实现数据查询请求查询各个目标业务数据。为实现上述所描述的数据处理实施例,下述以应用场景为生态环境中的业务数据为例进行说明,在该应用场景中,包括观测区域、在每个观测区域中包含多个观测站,每个观测站包含多台数采仪,每个数采仪可以连接多个传感器,每个传感器可以获取多个观测变量。业务数据的至少一个数据属性包括观测区域、观测站、数采仪、传感器、观测周期、观测时间、观测值或观测项目中的至少一个。业务数据是携带上述至少一个数据属性的观测值,即传感器采集到的具体数值。通过将各数采仪与主节点通信连接,再将主节点与各从节点通信连接,从而实现将业务数据由各数采仪发送至主节点,由主节点发送至各从节点,然后由各从节点进行存储的目的。通过将客户端与主节点通信连接,再将主节点与各从节点通信连接,从而实现将业务数据子表创建请求、数据查询请求和数据更新请求等由客户端发送至主节点,由主节点发送至各从节点执行对应数据处理的业务,或实现将数据查询反馈由各从节点发送至主节点,由主节点发送至客户端,然后供客户端进行查询和更新的目的。图7为本申请实施例提供的一种业务数据子表的示意图,对该应用场景中业务数据的各个数据属性分别建立索引,且业务数据表中数据属性的索引和归属同一业务数据表的业务数据子表的数据属性索引相互对应,下述实施例均按如图7所示。按照至少一个数据属性建表,比如,在业务数据表tbl_querylocator中,分别按照观测周期fld_period、观测区域fld_area_id、观测项目fld_project_id、业务数据子表名称fld_tablename建立索引,在各业务数据子表tbl_value_id_min_area_id中,分别按照观测区域fld_area_id、观测点fld_site_id、观测变量fld_variable_id、观测时间fld_time和观测值fld_value建立索引,从而实现各业务数据子表tbl_value_id_min_area_id可以按照业务数据表tbl_querylocator中至少一个数据属性作为索引进行检索的目的。对上述业务数据表tbl_querylocator还可以进一步设置第一子索引表tbl_datatime,分别按照观测点fld_site_id、观测时长fld_logger_id、观测周期fld_period、观测开始时间fld_starttime、观测结束时间fld_endtime建立索引,从而实现各业务数据子表tbl_value_id_min_area_id可以按照第一子索引表tbl_datatime中至少一个数据属性作为索引进行检索的目的。对上述第一子索引表tbl_datatime还可以进一步设置第二子索引表tbl_variable,分别按照观测变量fld_variable_id、观测传感器fld_sensor_id、观测类型名称fld_name、观测变量描述fld_discribe建立索引,从而实现各业务数据子表tbl_value_id_min_area_id可以按照第一子索引表tbl_datatime中至少一个数据属性作为索引进行检索的目的。其中,用id表示针对相同数据属性的业务数据的区分,例如:有4个观测区域,则id值分别设为1、2、3和4,有6个观测点,则id值分别为1、2、3、4、5和6。进一步地,将各业务数据子表tbl_value_id_min_area_id,分别按照观测周期为10分钟和30分钟,观测区域为1区域和2区域,创建2×2的4个业务数据子表,各业务数据子表tbl_value_id_min_area_id分别为:tbl_value_10_min_area_1、tbl_value_10_min_area_2、tbl_value_30_min_area_1和tbl_value_30_min_area_2。需要说明的是,本公开实施例仅以观测周期包括10分钟和30分钟,观测区域包括1区域和2区域为例进行说明,在实际应用中,观测周期和观测区域也可以有其他的划分方式,从而创建得到更多或更少的业务数据子表,本公开实施例对观测周期和观测区的划分方式不做具体限定。通过上述设置的在各从节点存储业务数据的方式,当主节点接收到各数采仪发送的业务数据时,主节点将各业务数据发送至各从节点,各从节点将接收到的业务数据按照上述创建的业务数据子表的存储方式存储即可,当主节点接收到客户端发送的数据查询请求时,主节点将数据查询请求发送给各从节点,各从节点从各业务数据子表中按照数据查询请求查询目标业务数据,再由各从节点将查询到的目标业务数据反馈到主节点,在主节点合并之后反馈到客户端。下述以具体的一种查询方式为例进行说明,例如:若查询的是1区域中时间间隔为10分钟数据,则使用数据查询请求观测周期fld_period=10_观测区域fld_area=area_1进行查询,则可从业务数据表tbl_querylocator的索引中,确定所查询的目标业务数据存储的业务数据子表名称fld_tablename,即业务数据子表为tbl_value_10_min_area_1,因此,符合1区域中时间间隔为10分钟的业务数据只在业务数据子表tbl_value_10_min_area_1中查询,由于业务数据子表tbl_value_10_min_area_1中的业务数据存储在多个从节点中,则各从节点同时在各自的业务数据子表tbl_value_10_min_area_1中查询目标业务数据。可选地,数据查询请求还可以根据业务数据表中创建的任意一种或多种数据属性的索引,使各个从节点只查询符合数据查询请求的业务数据,例如:在业务数据子表按照观测时间、观测站和观测传感器等至少一种划分数据区域,再对每个数据区域建立索引,使得在每个业务数据子表中将相同观测时间、观测站和观测传感器的业务数据存储一个数据区域,其相同观测时间可以按照月份将同一年且同一月的业务数据存储在一个数据区域。因此,按照前述创建的业务数据表tbl_querylocator、第一子索引表tbl_datatime和第二子索引表tbl_variable的索引,当数据查询请求为观测周期fld_period=10、观测区域fld_area=area_1、观测站fld_site_id=2、观测开始时间fld_starttime=2018年01月01日、观测结束时间fld_endtime=2018年02月28日和观测传感器fld_sensor_id=3,可根据前述方法确定业务数据子表tbl_value_10_min_area_1,再根据数据查询请求中观测站fld_site_id=2、观测开始时间fld_starttime=2018年01月01日、观测结束时间fld_endtime=2018年01月30日和观测传感器fld_sensor_id=3,从而使得各从节点通过各自存储的业务数据子表tbl_value_10_min_area_1,只查询观测区域fld_area=area_1、观测站fld_site_id=2、观测传感器fld_sensor_id=3、观测开始时间fld_starttime=2018年01月01日、观测结束时间fld_endtime=2018年02月28日及观测周期fld_period=10的业务数据时,从而在查询业务数据时,很快就定位到数据查询请求对应的目标数据区域。需要说明的是,在本实施例创建业务数据表和对应的业务数据子表,以及使用数据查询请求的查询要求,只是任意可实现的实施例中的优选的情况,并不是限定数据查询请求在查询业务数据时唯一的方式或途径等,以及对应创建的索引和数据分区等,也是任意可实现的实施例中的优选的情况。例如:数据属性及对应的索引还可以包括观测时长fld_logger_id、观测类型名称fld_name、观测状态-fld_status、观测类型名称fld_name和观测项目fld_project_id等,根据这些数据属性及对应的索引中至少一种创建更多的子索引表,从而使用数据查询请求可在对应索引所属的业务数据子表中查询业务数据。若用数据查询请求“sql=select*fromtbl_value_1min_area_4wherefld_time>’2018-01-01’andfld_time<’2018-02-28’andfld_site_id=1”对业务数据进行查询,同样可用来表示要查询在观测区域4、观测站1、观测开始时间2018年01月01日、观测结束时间2018年02月28日、观测周期1的业务数据。在实际应用中,可根据不同的应用场景对该实施例进行一定的改变来实施,在此不再一一赘述。通过本实施例实现了对生态环境中的数据处理,可达到前述介绍的本发明所有实施例的任意效果,在此不再一一赘述。本发明的数据处理系统,当该数据处理系统部署于服务器集群时,该服务器集群中的服务器可以作为主节点或从节点,将各从节点所述的服务器均与主节点所述的服务器通信连接,其从节点可以是服务器中的处理器,每个处理器都配置有独立的内存、操作系统和磁盘等。在该数据处理系统中,基于mpp数据库技术(greenplumdatabase),从该系统的信息表、优化器、查询执行器及事务管理等各个方面进行修改和增强,设计并行架构数据库,从而满足数据查询从系统内部的各从节点上并行运行,进而实现适配于本发明对数据处理的数据处理系统。基于该系统,通过内部各从节点与主节点之间数据的快速交互,从而满足系统在主节点及各从节点间数据的传输和处理要求,进而实现对应用场景中大量业务数据进行存储,以便后续对业务数据进行查询和分析,主节点接收的客户端发送的业务请求,由各从节点相互合作执行主节点发送的各项业务请求,使得整个系统在计算能力上显著提高。另外,将部署该数据处理系统的初始服务器集群创建好之后,可以通过改变每个从节点的计算资源和存储资源的方式,计算资源即处理器数量和内存大小,存储资源即硬盘空间大小,从而对服务器集群进行扩容或缩容,在后期内存和存储不够时,可以通过新增服务器来增加从节点的数量,将新增的服务器与初始服务器集群中的服务器合并,此操作也不会影响初始服务器集群中已存储的数据的存储。图8为本申请实施例提供的一种数据处理装置的结构示意图,如图8所示,本发明实施例还提供了一种数据处理装置,应用于数据处理系统中的各从节点,数据处理系统包括主节点和多个从节点,各从节点存储有归属于同一业务数据表的业务数据子表,装置包括:接收模块801、确定模块802和存储模块803,接收模块801用于,接收主节点发送的业务数据和业务数据的至少一个数据属性,确定模块802用于,基于主节点发送的至少一个数据属性,确定业务数据归属的第一业务数据子表,存储模块803用于,将业务数据存储至第一业务数据子表。一种实现方式中,存储模块803具体用于,基于主节点发送的至少一个数据属性,确定业务数据归属的目标数据区域,将业务数据存储至目标数据区域。一种实现方式中,确定模块802具体用于,基于主节点发送的至少一个数据属性,确定业务数据归属的多个第一业务数据子表,并将业务数据存储至任一第一业务数据子表。图9为本申请实施例提供的另一种数据处理装置的结构示意图,如图9所示,一种实现方式中,数据处理装置还包括创建模块804,创建模块804用于接收主节点发送的业务数据子表创建请求,业务数据子表创建请求中携带至少一种与业务数据子表对应的数据属性,基于业务数据子表创建请求携带的至少一个数据属性,创建业务数据子表。图10为本申请实施例提供的又一种数据处理装置的结构示意图,如图10所示,一种实现方式中,数据处理装置还包括反馈模块805,用于接收主节点发送的数据查询请求,数据查询请求携带至少一个数据属性,确定与数据查询请求携带的至少一个数据属性对应的第二业务数据子表,从第二业务数据子表中获取目标业务数据,向主节点发送数据查询反馈,数据查询反馈携带目标业务数据,数据查询反馈用于主节点将各从节点反馈的目标业务数据进行合并。上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。图11为本申请实施例提供的一种电子设备结构示意图,如图11所示,该设备可以集成于终端设备或者终端设备的芯片,该终端可以是具备数据处理功能的计算设备。该设备包括:存储器1101和处理器1102。存储器1101用于存储程序,处理器1102调用存储器1101存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1