并行计算系统及去重计数方法

文档序号:6607819阅读:161来源:国知局
专利名称:并行计算系统及去重计数方法
技术领域
本发明涉及一种数据库的统计方法,特别涉及一种并行计算系统及去重计数方法。
背景技术
随着计算机技术的发展和普及,大型数据库迅速地进入到电信、金融等各个行业。 SQL (Structured Query Language,结构化查询语言)是专为数据库而建立的操作命令集, 是一种数据库语言。SQL的主要功能就是同各种数据库建立联系,使不同类型的数据库之间 进行沟通。按照ANSI (美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的 标准语言。在使用SQL时,只需要发出“做什么”的命令,而不需要考虑“怎么做”。SQL语 句可以用来执行对数据库的各种各样的操作,例如更新数据库中的数据,从数据库中提取 数据等。目前,绝大多数流行的关系型数据库管理系统,如QraclhSybashMicrosoft Sql Server, Access等都采用了 SQL语言标准。然而,随着信息化建设的深入,各行各业都建立了大量的数据库,而这些数据库的 数据量也越来越大,限制了对数据库的统计速度。为了提高数据库的统计速度,最常用的方 式是对硬件系统进行优化,提升的计算机性能,如提高CPU频率、增加内存、提高磁盘访问 速度等,然而其提升空间有限,且硬件性能的升级需要投入大量的资金成本。因而如何行之 有效地解决大型数据库统计的速率问题,一直是一个需要解决的问题。

发明内容
本发明的目的是提供一种并行计算系统,以解决大型数据库的统计速度慢的问题。本发明的另一目的是提供一种去重计数方法,以解决大型数据库的统计速度慢的 问题。本发明提出一种并行计算系统,用于对源数据库进行统计,包括数据分割服务器 和多个节点服务器。数据分割服务器与源数据库相连,用于将源数据库中的海量数据按照 关键字段进行分割。多个节点服务器均与数据分割服务器相连,且每个节点服务器又进一 步包括节点数据库、解析单元、计数统计单元和分组统计单元。节点数据库与数据分割服务 器相连,用于存放分割后的数据。解析单元用于判断统计内容是否是被分割的关键字段。计 数统计单元分别与节点数据库及解析单元相连,用于对关键字段进行非重复的计数运算。 分组统计单元分别与节点数据库及解析单元相连,用于对非关键字段进行分组统计运算。依照本发明较佳实施例所述的并行计算系统,其还包括汇总服务器,且汇总服务 器又进一步包括临时表存储单元和主处理器。临时表存储单元与各个节点服务器相连,用 于存放各个节点服务器反馈的统计结果,并汇总形成临时表。主处理器与临时表存储单元 相连,用于对临时表中的关键字段数据进行求和运算,以及对临时表中的非关键字段数据 进行非重复的计数运算,并形成最终的结果集。
依照本发明较佳实施例所述的并行计算系统,其还包括前端展现模块,与汇总服 务器相连,用于将统计结果形成图形数据或表格数据。本发明另提出一种去重计数方法,用于对源数据库进行统计,包括以下步骤(1) 设置多个节点数据库。(2)将源数据库中的海量数据按照关键字段进行分割,并分配到各个 节点数据库。(3)判断统计内容是否是被分割的关键字段。(4)若是,则对关键字段进行非 重复的计数运算。(5)若不是,对非关键字段进行分组统计运算。依照本发明较佳实施例所述的去重计数方法,对各个节点数据库进行并行统计之 后还包括步骤(1)将各个节点数据库的统计结果进行汇总,并形成临时表。(2)对临时表 中的关键字段数据进行求和运算。(3)对临时表中的非关键字段数据进行非重复的计数运 算,并形成最终的结果集。依照本发明较佳实施例所述的去重计数方法,其还包括步骤将统计结果形成图 形数据或表格数据。依照本发明较佳实施例所述的去重计数方法,对数据进行分割时,按照数据量最 大的分类字段进行分割。相对于现有技术,本发明具有以下优点1、本发明通过多节点并行运算的方式,将一个大型数据库的运算量分配给多个节 点数据库,从而可以充分发挥多机、多核同时计算的能力,可以极大地提高大数据量数据库 的统计速度,相对于优化硬件配置的方式,本发明不会受到提升空间的限制,统计速率可以 提高10倍、100倍甚至1000倍。2、本发明根据对统计内容是否为分割关键字段的判断来决定统计方式,有效避免 了数据被多次统计而出现的错误。3、本发明所采用的节点服务器可以是普通的PC机,相对于主服务器硬件配置的 优化所需要的成本,在提升相同的统计速率的前提下,增加节点服务器势必需要更少的投 入成本。4、本发明不依赖于专门的硬件和网络,普通的PC机和千兆网络甚至百兆网络就 可以实现。与其它需要昂贵服务器(小型机)、专用通讯通道的方案相比,本发明具有很高 的性价比。


图1为本发明并行计算系统的一种实施例架构图;图2为本发明去重计数方法的一种实施例流程图。
具体实施例方式本发明的主要思想是将源数据库中的海量数据分割并分配到多个节点数据库,并 以多个独立的节点服务器进行并行计算,从而可以充分发挥多机、多核同时计算的能力。另 外,本发明根据对统计内容是否为分割关键字段的判断来决定统计方式,有效避免了数据 被多次统计而出现的错误。本发明的数据统计是建立在SQL指令下的,特别适用于 BKBusinessIntelligence,商务智能)系统。以下结合附图,具体说明本发明。
请参见图1,其为本发明并行计算系统的一种架构图。此系统包括数据分割服务 器14、汇总服务器11、多个节点服务器12和前端展现模块19,数据分割服务器14与源数 据库13相连(源数据库13中存放有大量数据),并与各个节点服务器12通过有线或无线 的方式相连,数据分割服务器14与节点服务器12之间可进行数据传输,且每个节点服务器 12均有独立的运算处理能力。汇总服务器11分别与各个节点服务器12相连。前端展现模 块19与汇总服务器11相连,用来将统计结果形成图形数据或表格数据,以便于向技术员展 现。汇总服务器11又包括主处理器15和临时表存储单元16,临时表存储单元16与主 处理器15相连,并连接到各个节点服务器12。每个节点服务器12又包括节点数据库17、 计数统计单元21、分组统计单元22和解析单元23。节点数据库17与数据分割服务器14 相连,用于存放分割后的数据。解析单元23用于判断统计内容是否是被分割的关键字段。 计数统计单元21分别与节点数据库17及解析单元23相连,用于对关键字段进行非重复的 计数运算。分组统计单元22分别与节点数据库17及解析单元23相连,用于对非关键字段 进行分组统计运算。工作时,数据分割服务器14会将源数据库13中的数据按照一定规则进行分割,然 后将分割后的数据分配到各个节点服务器12的节点数据库17中(优选的方式是按照数据 量最大的分类字段或分类表进行分割,数据量较小的分类字段或分类表不用分割,而直接 复制到各个节点数据库17中)。各个节点服务器12会根据技术员的设定对节点数据库17中的数据分别进行统 计,并反馈给汇总服务器11。值得注意的是,对于某个字段的统计而言,某个值可能在一个 节点服务器12上,也可能在多个节点服务器12上,而如果在每个节点服务器12上进行比 较运算,最后在汇总服务器11上进行汇总统计,那么数据就可能被多次统计,造成错误。因 而本发明会在每个节点服务器12进行统计开始时,先由解析单元23来判断统计内容中是 否存在被分割的关键字段,如果统计内容中有关键字段,则通过计数统计单元21对关键字 段进行非重复的计数运算(即同一个字段只累加一次),而同时通过分组统计单元22对其 它的非关键字段进行分组统计运算(即对每一个非关键字段进行单独统计)。最后将统计 结果发送给汇总服务器11进行汇总。如果汇总服务器11接收到的结果集数据量不大,或者节点服务器12的数量不多 (例如两个或三个节点服务器12),则汇总服务器11可以直接将节点服务器12的统计结果 传输给前端展现模块19。而如果节点服务器12的数量较多,或者节点服务器12向汇总服 务器11返回的数据量较大,则可以将统计结果复制到临时表存储单元16中,并由临时表存 储单元16汇总生成一个临时表。然后由主处理器15再次对这个临时表进行统计,这里主 处理器15会对临时表中的关键字段数据进行求和运算,同时对临时表中的非关键字段数 据进行非重复的计数运算,并形成最终的结果集后传输给前端展现模块19。前端展现模块 19将接收到的数据生成图形、表格等形式,并与技术员实现交互。本发明的系统利用多个独立的节点服务器12实现并行计算,充分利用每一个节 点服务器12的运算能力,大大提高统计效率。而节点服务器12的数量可以根据需要相应 地增加或减少,且每增加一个节点服务器12也就意味着系统整体性能的成倍增加,数据分 小之后,每个节点的运算量减小,总的运算量也会减小,使系统的统计速度可以提高10倍、100倍甚至1000倍。相对于传统的提高cpu,内存,硬盘频率(转速)等硬件配置,增加节 点服务器12的难度低,且成本投入少。并且,根据对统计内容是否为分割关键字段的判断 来决定统计方式,有效避免了数据被多次统计而出现的错误。相应于上述负载均衡的并行计算系统,本发明还提出了一种去重计数方法,用于 对源数据库进行统计,请参见图2,其包括以下步骤S201,设置多个节点数据库。S202,将源数据库中的海量数据按照一定规则进行分割,并分配到各个节点数据库。其中可以根据需要来设置分割方式,优选的是按照数据量最大的分类字段或分类 表进行分割,比如客户表。S203,判断统计内容是否是被分割的关键字段。S204,若是,则对关键字段进行非重复的计数运算。S205,若不是,对非关键字段进行分组统计运算。其中,各个节点数据库均可以进行独立的运算,从而每一个节点数据库均可以分 担一部份统计任务,并大大提高数据库的访问效率。S206,将各个节点数据库的统计结果进行汇总,并形成一个临时表。S207,对临时表的信息再次进行统计,并形成最终的结果集。统计时,对临时表中 的关键字段数据进行求和运算,同时对临时表中的非关键字段数据进行非重复的计数运 笪弁。当然,如果节点数据库的数量较少,或者统计的数据量不多,则可以将节点数据库 的统计结果作为最终的结果集。而当节点数据库的数量较多,或者统计的数据量较大时,则 可以将各个节点数据库的统计结果进行汇总,以便于分析。S208,将统计结果形成图形数据或表格数据。下面结合一个简单的统计过程来进一步理解本发明,假设表1为一个源数据库中 的数据
RegionR印Customer地区1Repl客户1地区1Repl客户2地区2Repl客户3地区2Repl客户4地区2Rep2客户5表1假设现在要统计各地区的销售人数和客户数。首先要对源数据库的数据进行分割,并分配到各个节点数据库中。如果以Customer作为分割的关键字,并且将客户1、客户 2、客户3的相关数据分配到节点数据库m中,而客户4、客户5的相关数据分配到节点数据 库N2中,则分割到m和N2中的数据可以分别以表2和表3来表示
表3而这里如果按照传统方式对W和N2中的销售人数和客户数分别进行统计,则对 Nl和N2可以分别得到表4和表5的统计结果 表 5将两个节点数据库W和N2的统计结果汇总后可以得到表6的结果 表 6由表6可知,地区1有1名销售人员和2个客户,地区2有3名销售人员和3名客 户。但是结合表1(即源数据库)可以清楚看到,地区2实际上只有2名销售人员,其统计 过程出现了错误。而其错误原因就是因为Itepl同时出现在了 m和N2上。为了解决这个问题,本发明采用对统计内容进行分类的方式,判断出哪些是关键 字段,哪些是非关键字段,并在节点数据库中对关键字段采用非重复的计数运算,同时对非 关键字段进行分组统计运算。在上述例子中,Customer为关键字段,Rep为非关键字段,因 而对节点数据库W和N2的数据(即表2和表3)并行统计后可以得到表7、表8的结果 表7 表8然后将各节点的统计结果集导入到临时表,进行汇总后再进行统计。对临时表中 的汇总数据进行统计时,对临时表中的关键字段数据进行求和运算,同时对临时表中的非 关键字段数据进行非重复的计数运算,从而可以得到最终的结果集表9: 表 9最后将结果利用各种展现控件(如表格,图形)展现出来。当然,上述仅为一个极 为简单的例子,在实际运用中,源数据库的数据量是海量的,但只要在其统计过程中遵循本发明的统计方法,便可以有效避免错误的发送。本发明通过多节点并行运算的方式,将一个大型数据库的运算量分配给多个节点 数据库,从而可以充分发挥多机、多核同时计算的能力,并根据分割关键字来决定统计方 式,不仅可以极大地提高大数据量数据库的统计速度,又可以有效防止统计错误的发送。以上公开的仅为本发明的几个具体实施例,但本发明并非局限于此,任何本领域 的技术人员能思之的变化,都应落在本发明的保护范围内。
权利要求
一种并行计算系统,用于对一源数据库进行统计,其特征在于,包括一数据分割服务器,与该源数据库相连,用于将该源数据库中的海量数据按照关键字段进行分割;多个节点服务器,均与该数据分割服务器相连,且每个节点服务器又进一步包括一节点数据库,与该数据分割服务器相连,用于存放分割后的数据;一解析单元,用于判断统计内容是否是被分割的关键字段;一计数统计单元,分别与该节点数据库及该解析单元相连,用于对关键字段进行非重复的计数运算;一分组统计单元,分别与该节点数据库及该解析单元相连,用于对非关键字段进行分组统计运算。
2.如权利要求1所述的并行计算系统,其特征在于,其还包括一汇总服务器,且该汇总 服务器又进一步包括一临时表存储单元,与各个节点服务器相连,用于存放各个节点服务器反馈的统计结 果,并汇总形成一临时表;一主处理器,与该临时表存储单元相连,用于对该临时表中的关键字段数据进行求和 运算,以及对该临时表中的非关键字段数据进行非重复的计数运算,并形成最终的结果集。
3.如权利要求2所述的并行计算系统,其特征在于,其还包括一前端展现模块,与该汇 总服务器相连,用于将统计结果形成图形数据或表格数据。
4.一种去重计数方法,用于对一源数据库进行统计,其特征在于,包括以下步骤 设置多个节点数据库;将该源数据库中的海量数据按照关键字段进行分割,并分配到各个节点数据库; 判断统计内容是否是被分割的关键字段; 若是,则对关键字段进行非重复的计数运算; 若不是,对非关键字段进行分组统计运算。
5.如权利要求4所述的去重计数方法,其特征在于,对各个节点数据库进行并行统计 之后还包括步骤将各个节点数据库的统计结果进行汇总,并形成一临时表; 对该临时表中的关键字段数据进行求和运算;对该临时表中的非关键字段数据进行非重复的计数运算,并形成最终的结果集。
6.如权利要求4所述的去重计数方法,其特征在于,其还包括步骤将统计结果形成图 形数据或表格数据。
7.如权利要求4所述的去重计数方法,其特征在于,对数据进行分割时,按照数据量最 大的分类字段进行分割。
全文摘要
本发明另提出一种并行计算系统及方法,其方法包括以下步骤(1)设置多个节点数据库。(2)将源数据库中的海量数据按照关键字段进行分割,并分配到各个节点数据库。(3)判断统计内容是否是被分割的关键字段。(4)若是,则对关键字段进行非重复的计数运算。(5)若不是,对非关键字段进行分组统计运算。本发明可以大大提高大型数据库的统计速度,并可以确保数据统计的准确性。
文档编号G06F17/30GK101916281SQ20101025563
公开日2010年12月15日 申请日期2010年8月17日 优先权日2010年8月17日
发明者李晓华 申请人:上海云数信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1