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

文档序号:13072830阅读:149来源:国知局
本发明涉及数据库分布式存储、多线程程序开发领域,尤其涉及一种分布式数据处理装置及方法。
背景技术
::当一个系统中的数据量非常大,比如达到上千万甚至上亿条数据时,如果仍然采取单一数据库的存储方式,访问数据速度将极其缓慢。从而导致应用程序无法正常执行增、删、改、查等操作,甚至使系统崩溃。数据量大时,数据访问速度慢的主要原因是:(一)受数据库服务器硬件条件限制一台服务器的内存、cpu、i/o吞吐量等都是优先的,执行大量数据的查询会占用服务器的内存等资源,从而使服务器负荷过高,导致执行速度缓慢。(二)受网络条件的限制。数据库的查询结果需要通过网络从服务器发送至客户端,数据量过大会占用网络资源,从而影响网络传输效率。技术实现要素:(一)要解决的技术问题本发明的目的在于提供一种分布式数据处理装置及方法,以解决上述的至少一项技术问题。(二)技术方案本发明提供了一种分布式数据处理装置,包括核心服务器与至少一个业务服务器,所述核心服务器电性耦接至少一个业务服务器,其中,所述核心服务器,用于存储与其电性耦接的至少一个业务服务器的业务数据库和与该业务数据库关联的参数,并根据所述参数生成连接字符串;所述业务服务器,用于存储至少一个业务数据库,且每个业务数据库对应一个子线程;以及用于根据所述连接字符串,将子线程连接对应的业务数据库,对该业务数据库进行处理。在本发明的一些实施例中,所述业务服务器还用于将增加、删除、修改或者查询的算法封装成网页服务,通过调用所述网页服务以及根据所述参数生成连接字符串,通过该子线程连接对应的业务数据库,对该对应的业务服务器的数据进行增加、删除、修改或者查询。在本发明的一些实施例中,所述参数可以由外界的客户端输出,一般包括业务服务器的id、ip地址、连接方式、用户名和/或密码,也通过参数与业务数据库的映射表,实现二者的关联。在本发明的一些实施例中,业务服务器还用于将处理后得到的处理结果经汇总,得到汇总结果,通过与该业务服务器连接的核心服务器返回至所述客户端。基于同一发明构思,本发明还提供了一种分布式数据处理方法,包括:建立核心服务器以及至少一个业务服务器,其中,所述核心服务器存储与其电性耦接的至少一个业务服务器的业务数据库和与该业务数据库关联的参数,所述业务服务器存储业务数据库,且每个业务数据库对应一个子线程;根据所述参数生成连接字符串;根据所述连接字符串,将子线程连接对应的业务数据库,对该业务数据库进行处理。在本发明的一些实施例中,所述对该业务服务器进行处理的具体步骤包括:将增加、删除、修改或者查询的算法封装成网页服务,通过调用所述网页服务以及根据所述参数生成连接字符串,通过该子线程连接对应的业务数据库,对该对应的业务服务器的数据进行增加、删除、修改或者查询。在本发明的一些实施例中,建立参数与业务数据库的映射表,实现二者的关联。在本发明的一些实施例中,将业务服务器处理后得到的处理结果汇总,得到汇总结果,通过与该业务服务器连接的核心服务器返回至所述客户端。在本发明的一些实施例中,还包括步骤:若当前子线程未连接对应的业务数据库,则放弃对该业务数据库的处理。(三)有益效果本发明提供的分布式数据处理装置及方法,相较于现有技术,至少具有以下优点:1、更适合具有地理分布特性的组织或机构使用,允许分布在不同区域、不同级别的各个部门对其自身的数据实行局部控制,可以降低通信代价,提高响应速度,而涉及其他场地数据库中的数据只是少量的,从而可以大大减少网络上的信息传输量;同时,局部数据的安全性也可以做得更好。2、具有经济性,可靠性高,可用性好的优点。与一个大型计算机支持的大型系统相比,由超级微型计算机或超级小型计算机支持的分布式数据库装置往往具有更高的性价比和实施灵活性。另外分布式系统比集中式系统具有更高的可靠性和更好的可用性,在个别场地或个别通信链路发生故障时,防止整个系统的崩溃,而且系统的局部故障不会引起全局失控。3、因为待处理的数据存储在本地的业务数据库中,因此,本发明的响应速度和处理速度快。4、可扩展性好,易于集成现有系统,也易于扩充。对于一个企业或组织,可以采用分布式数据库技术在以建立的若干数据库的基础上开发全局应用,对原有的局部数据库系统作某些改动,形成一个分布式系统。这比重建一个大型数据库系统要简单,既省时间,又省财力、物力。也可以通过增加场地数的办法,迅速扩充已有的分布式数据库系统。附图说明图1为本发明实施例的分布式数据处理装置的结构示意图。图2为本发明实施例的分布式数据处理方法的步骤示意图。图3为本发明实施例的分布式数据处理方法的流程示意图。具体实施方式为了解决目前数据量极大的数据的单一存储及访问速度缓慢的问题,本发明提供了一种分布式数据处理装置及方法,通过分布式存储,建立至少一个业务数据库存储数据,提高了数据的存储量级数据访问速度;同时还实现多线程程序开发,每个子线程对其对应的业务数据库进行处理,以确保程序的运行效率。为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。图1为本发明实施例的分布式数据处理装置的结构示意图,如图1所示,该装置包括核心服务器与至少一个业务服务器,所述核心服务器电性耦接至少一个业务服务器。其中,业务服务器可以根据地理位置搭建,在每一个业务服务器上安装业务数据库,各业务服务器之间通过网络进行连接。所述核心服务器可以为一个,也可以为多个,根据实际需求选择其个数。所述核心服务器,用于存储与其电性耦接的至少一个业务服务器的业务数据库和与该业务数据库关联的参数,并根据所述参数生成连接字符串,其中,所述参数一般由外界的客户端输出,包括各业务数据库的信息,例如ip地址、端口号、数据库名称、用户名和密码,可以根据实际需求进行选择。该连接字符串,由ip地址、端口号、数据库名称、用户名和密码等参数组成,在业务服务器安装部署时,连接字符串就已经确定。在本发明的一些实施例中,可以通过映射表,实现各参数与各业务数据库的关联关系。首先,将业务服务器的id、ip地址、连接方式、用户名和密码等参数保存到核心服务器中,并与业务数据库进行关联,生成相应的映射表。例如,每一个子公司、分厂或者监测点的业务服务器与业务数据库存在关联关系。在其他实施例中也可以通过其他方式实现参数与各业务数据库的关联关系,根据实际进行选择。所述业务服务器,用于存储至少一个业务数据库,且每个业务数据库对应一个子线程;以及用于根据所述连接字符串,将子线程连接对应的业务数据库,对该业务数据库进行处理。分布式数据处理装置的结构适合具有地理分布特性的组织或机构使用,允许分布在不同区域、不同级别的各个部门对其自身的数据实行局部控制。例如:实现全局数据在本地录入、查询、维护,这时由于计算机资源靠近用户,可以降低通信代价,提高响应速度,而涉及其他场地数据库中的数据只是少量的,从而可以大大减少网络上的信息传输量;同时,局部数据的安全性也可以做得更好。像这样,在本发明中,需要处理的数据在本地业务数据库中,就可以由用户所在的计算机来执行,因此具有响应速度快的优点。在实现对业务数据库的处理时,使用多个子线程分别处理各个业务数据库。核心服务器根据外界的客户端输出的参数,自动选择对应的业务数据库,并生成连接字符串,子线程与对应的业务服务器连接成功后,则执行结构化查询语言(sql)语句,对该业务服务器进行处理。其中,所述处理可以包括:根据操作语句对该对应的业务服务器进行增加、删除、修改或者查询。且可以对不同的业务数据库进行增加、删除、修改或者查询操作,可以将操作语句都封装成网页(web)服务。所有主流的服务端开发语言(如java、c#、php等),只需要通过调用这些web服务,并根据参数,就可以像操作单一数据库一样,方便地进行跨库的增加、删除、修改或者查询操作。在对业务服务器进行处理时,运用多线程的方法,让每个子线程执行一个业务数据库的处理,得到一个处理结果,以确保程序的运行效率。此外,为了使得处理结果的返回更有序,易于管理,在一些实施例中,在所有查询线程执行完成之后,再将处理结果汇总,得到汇总结果,汇总结果通过主线程返回外部的客户端,返回的格式可以是json、xml或者datatable等,可以根据开发语言进行调整。可以理解的是,若有业务服务器处于异常状态,对应的子线程不能根据连接字符串,与业务数据库连接,因此不会返回处理结果至客户端,此时应该继续进行下一个子线程与业务数据库的连接。对于处于正常状态的业务服务器,其对应的子线程则会根据连接字符串与业务数据库连接,可以返回处理结果至客户端。由此可见,各子线程或者说各业务服务器之间是相互独立的,互不影响。本发明提供的超级微型计算机或超级小型计算机支持的分布式数据库装置,与现有的支持大型计算机的结构相比,具有更高的性价比和实施灵活性。且分布式系统比集中式系统具有更高的可靠性和更好的可用性,如由于数据分布在多个场地并有许多复制数据,在个别场地或个别通信链路发生故障时,不致于导致整个系统的崩溃,而且系统的局部故障不会引起全局失控。本发明实施例的另一方面,还提供了一种分布式数据处理方法,图2为本发明实施例的分布式数据处理方法的步骤示意图,如图2所示,该方法包括:步骤s1、建立核心服务器以及至少一个业务服务器,其中,所述核心服务器存储与其电性耦接的至少一个业务服务器的业务数据库和与该业务数据库关联的参数,所述业务服务器存储业务数据库,且每个业务数据库对应一个子线程。在本发明的一些实施例中,可以通过映射表,实现各参数与各业务数据库的关联关系。首先,将业务服务器的id、ip地址、连接方式、用户名和密码等参数保存到核心服务器中,并与业务数据库进行关联,生成相应的映射表。例如,每一个子公司、分厂或者监测点的业务服务器与业务数据库存在关联关系。在其他实施例中也可以通过其他方式实现参数与各业务数据库的关联关系,根据实际进行选择。步骤s2、根据所述参数生成连接字符串。其中,所述参数一般由外界的客户端输出,包括各业务数据库的信息,例如ip地址、端口号、数据库名称、用户名和密码,可以根据实际需求进行选择。该连接字符串,由ip地址、端口号、数据库名称、用户名和密码等参数组成,在业务服务器安装部署时,连接字符串就已经确定。步骤s3、根据所述连接字符串,将子线程连接对应的业务数据库,对该业务数据库进行处理。在实现对业务数据库的处理时,使用多个子线程分别处理各个业务数据库。核心服务器根据外界的客户端输出的参数,自动选择对应的业务数据库,并生成连接字符串,子线程与对应的业务服务器连接成功后,则执行sql语句,对该业务服务器进行处理。其中,所述处理可以包括:根据操作语句对该对应的业务服务器进行增加、删除、修改或者查询。且可以对不同的业务数据库进行增加、删除、修改或者查询操作,可以将操作语句都封装成web服务。所有主流的服务端开发语言(如java、c#、php等),只需要通过调用这些web服务,并根据所述参数,就可以像操作单一数据库一样,方便地进行跨库的增加、删除、修改或者查询操作。图3为本发明实施例的分布式数据处理方法的流程示意图,如图3所示,首先,进行步骤a:核心服务器接收外界客户端输出的参数,并根据该参数找到关联的业务数据库;再进行步骤b:为各关联的业务数据库创建对应的子线程和连接字符串;之后进行步骤c:判断业务数据库与对应的子线程是否连接成功,若成功,则根据该参数进行业务数据库的处理;若失败,则结束当前子进程,进行之后子进程的连接与判断。可以理解的是,若有业务服务器处于异常状态,对应的子线程不能根据连接字符串,与业务数据库连接,因此不会返回处理结果至客户端。对于处于正常状态的业务服务器,其对应的子线程则会根据连接字符串与业务数据库连接,可以返回处理结果至客户端。由此可见,各子线程或者说各业务服务器之间是相互独立的,互不影响。在对业务服务器进行处理时,运用多线程的方法,让每个子线程执行一个业务数据库的处理,得到一个处理结果,以确保程序的运行效率。此外,为了使得处理结果的返回更有序,易于管理,在一些实施例中,在所有查询线程执行完成之后,再将处理结果汇总,得到汇总结果,汇总结果通过主线程返回外部的客户端,返回的格式可以是json、xml或者datatable等,可以根据开发语言进行调整。此外,本发明的分布式数据处理装置还具有可扩展性好,易于集成现有系统,也易于扩充的优点。对于一个企业或组织,可以采用分布式数据库技术在以建立的若干业务数据库的基础上开发全局应用,对原有的局部数据库系统作某些改动,形成一个分布式系统。这比重建一个大型数据库系统要简单,既省时间,又省财力、物力。也可以通过增加场地数的办法,迅速扩充已有的分布式数据库系统。接下来,举例说明本发明的分布式数据处理装置及方法在实际情况下的具体应用:实施例1在一个环境质量监测系统中,有几百个监测点监测空气中pm2.5的数值,每个监测点对应一个业务服务器,监测点每分钟会生成一条监测数据存入业务数据库,如此,一年的数据量就会达到数十亿。分布式数据处理装置需要为用户提供监测数据的增删改查、导入导出以及统计分析等功能。既有单站点的数据查询,也有多站点跨数据库的对比统计。而且要求在数亿条数据量的情况下,保证系统具有安全性、稳定性以及快速响应能力,才能有良好的用户体验。本系统采用sqlserver数据库,使用asp.net平台进行程序开发,后台服务由c#语言编写。首先根据各监测点的位置,创建多个结构相同的业务数据库,并将所有业务数据库的连接字符串统一保存到一个表中。然后创建业务服务器与业务数据库的对应表,将每个监测点的唯一id与业务数据库连接字符串作关联,存入表中。监测设备的数据采集系统,会自动将监测数据存入本监测点对应的业务数据库中。当有用户提交查询请求时,客户端会将所有要查询的监测点id提交给后台服务(即本发明的核心服务器)。核心服务器首先为每个监测点创建一个子线程,每个子线程根据监测点的id获得对应业务数据库的连接字符串,执行查询并将结果返回一个处理结果,当所有的查询线程执行完成之后,程序会将所有的处理结果汇总,生成一个datatable返回给客户端并展示。如果某个监测点id查找不到对应的业务数据库连接字符串,则自动忽略此监测点。当用户需要执行新增、修改、删除操作时,首先为每个监测点创建一个子线程,根据监测点的id获得对应业务数据库的连接字符串,根据连接字符串对每个业务数据库执行操作语句。实施例2一个汽车制造总公司,在全球各地有很多工厂,每个工厂有很多条生产线,每条生产线会实时将该生产线的参数(包括产量、报废数量等信息)上传至数据库。总公司有一个生产监控平台(即本发明的核心服务器),可以随时查看各个工厂的生产情况。本系统采用sqlserver数据库,使用asp.net平台进行程序开发,后台服务由c#语言编写。每个分厂都安装有自己的数据库服务器(即本发明的业务服务器),本厂的生产数据只会保存在本厂的数据库中。总公司的核心数据库,会储存所有的分厂信息,以及所有的业务数据库的信息。将每个分厂的唯一id与业务数据库的连接字符串作关联,存入表中。生产监控平台通过调用本方法的web服务实现对所有分工厂的生产数据的读取。实现了实时查询、数据导出等功能,并且制作图表,可以查询某个工厂历年的生产数据,也可以,对多个工厂的生产数据进行对比分析。生产监控平台也可以对分厂的生产数据进行修改和删除等操作。通过调用本方法的web服务,并根据对应的分厂id,就可以执行sql语句以修改业务数据库的记录。当有用户提交查询请求时,客户端会将所有要查询的工厂id提交给核心数据库。核心数据库首先为每个工厂创建一个子线程,每个子线程根据工厂的id获得对应业务数据库的连接字符串,执行查询并将结果返回一个处理结果,当所有的查询线程执行完成之后,程序会将所有的处理结果汇总,生成一个datatable返回给客户端并展示。实施例3可以在同一个分布式数据处理装置中,兼具环境质量检测系统与汽车制造总公司,环境质量检测系统的核心服务器与汽车制造总公司的核心服务器,通过与之连接的各业务数据库,与从而实现对各监测点以及汽车分厂的操作。这一实施例的具体情况与实施例1和实施例2类似,此处不再赘述。综上,根据本发明的数据库部署方式以及数据库操作算法,解决了单机数据库满足不了的业务需求。在大数据时代,面对日益增长的海量数据,使用本发明,能够提高数据库的访问速度,应对高并发量,拥有更强的可扩展性。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1