基于SQL的并行计算系统及方法技术方案

技术编号:4074609 阅读:455 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出一种基于SQL的并行计算系统和方法,其方法包括以下步骤:(1)设置多个节点数据库。(2)将源数据库中的海量数据按照一定规则进行分割,并分配到各个节点数据库。(3)对各个节点数据库进行并行查询或统计。本发明专利技术可以大大提高大型数据库的查询或统计速度。

【技术实现步骤摘要】

本专利技术涉及一种数据库的查询或统计方法,特别涉及一种基于SQL的并行计算系 统及方法。
技术介绍
随着计算机技术的发展和普及,大型数据库迅速地进入到电信、金融等各个行业。 SQL (Structured Query Language,结构化查询语言)是专为数据库而建立的操作命令集, 是一种数据库语言。SQL的主要功能就是同各种数据库建立联系,使不同类型的数据库之间 进行沟通。按照ANSI (美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的 标准语言。在使用SQL时,只需要发出“做什么”的命令,而不需要考虑“怎么做”。SQL语 句可以用来执行对数据库的各种各样的操作,例如更新数据库中的数据,从数据库中提取 数据等。目前,绝大多数流行的关系型数据库管理系统,如QraclhSybashMicrosoft Sql Server, Access等都采用了 SQL语言标准。然而,随着信息化建设的深入,各行各业都建立了大量的数据库,而这些数据库的 数据量也越来越大,限制了对数据库的查询和统计速度。例如在计费系统中,各种业务程序 需要对数据库中的数据进行频繁的查询操作,涉及的数据量非常巨大,访问数据库的频率 很高,由此过多的数据库交互导致计算机程序的性能降低。为了提高数据库的查询和统计速度,最常用的方式是对硬件系统进行优化,例如 中国专利局申请号为200610041548. 6的专利申请,其提出了 一种加速数据库查询速度的 方法,如图1所示,其通过在系统内存中开辟用于存放数据和数据索引的共享内存段,由守 护进程按约定的方式将数据库中的数据和数据索引分别调入相应的共享内存段中供务业 进程调用,同时由守护进程定时或循环对数据库中的记录进行查询,及时将更接的数据内 容记录到上述共享内存段中。这种加速数据库查询速度的方法可以在一定程度上提高数据库的查询速度,减少 对数据库性能的依赖。但是对于海量数据库的查询或统计来说,由于硬件运算速度的限制, 这种方法并不能从根本上解决数据库查询速度慢的问题,而计算机性能的提升,如提高CPU 频率、增加内存、提高磁盘访问速度等,其提升空间有限,且硬件性能的升级需要投入大量 的资金成本。因而如何行之有效地解决大型数据库查询或统计的速率问题,一直是一个需 要解决的问题。
技术实现思路
本专利技术的目的是提供一种基于SQL的并行计算系统,以解决大型数据库的查询或 统计速度慢的问题。本专利技术的另一目的是提供一种基于SQL的并行计算方法,以解决大型数据库的查 询或统计速度慢的问题。本专利技术提出一种一种基于SQL的并行计算系统,用于对一源数据库进行统计或查询,包括数据分割服务器和多个节点服务器。数据分割服务器与源数据库相连,用于将源数 据库中的海量数据按照一定规则进行分割。节点服务器均与数据分割服务器相连,且每个 节点服务器又进一步包括节点数据库和节点处理器。节点数据库与数据分割服务器相连, 用于存放经数据分割服务器分割后分配来的数据。节点处理器与节点数据库相连,用于对 节点数据库中的数据进行查询或统计。依照本专利技术较佳实施例所述的基于SQL的并行计算系统,其还包括汇总服务器, 且汇总服务器又进一步包括临时表存储单元和主处理器。临时表存储单元与各个节点服务 器相连,用于存放各个节点服务器反馈的查询或统计结果,并汇总形成临时表。主处理器与 临时表存储单元相连,用于对临时表的信息进行查询或统计,并形成最终的结果集。依照本专利技术较佳实施例所述的基于SQL的并行计算系统,其还包括前端展现模 块,与汇总服务器相连,用于将查询或统计结果形成图形数据或表格数据。本专利技术另提出一种基于SQL的并行计算方法,用于对源数据库进行统计或查询, 包括以下步骤(1)设置多个节点数据库。(2)将源数据库中的海量数据按照一定规则进行 分割,并分配到各个节点数据库。(3)对各个节点数据库进行并行查询或统计。依照本专利技术较佳实施例所述的基于SQL的并行计算方法,对各个节点数据库进行 并行查询或统计之后还包括步骤(1)将各个节点数据库的查询或统计结果进行汇总,并 形成临时表。(2)对临时表的信息再次进行查询或统计,并形成最终的结果集。依照本专利技术较佳实施例所述的基于SQL的并行计算方法,其还包括步骤将查询 或统计结果形成图形数据或表格数据。依照本专利技术较佳实施例所述的基于SQL的并行计算方法,对数据进行分割时,按 照数据量最大的分类字段或分类表进行分割。相对于现有技术,本专利技术具有以下优点1、本专利技术通过多节点并行运算的方式,将一个大型数据库的运算量分配给多个节 点数据库,从而可以充分发挥多机、多核同时计算的能力,可以极大地提高大数据量数据库 的查询或统计速度,相对于优化硬件配置的方式,本专利技术不会受到提升空间的限制,查询或 统计速率可以提高10倍、100倍甚至1000倍。2、本专利技术所采用的节点服务器可以是普通的PC机,相对于硬件配置的优化所需 要的成本,在提升相同的查询或统计速率的前提下,增加节点服务器势必需要更少的投入 成本。3、本专利技术不依赖于专门的硬件和网络,普通的PC机和千兆网络甚至百兆网络就 可以实现。与其它需要昂贵服务器(小型机)、专用通讯通道的方案相比,本专利技术具有很高 的性价比。附图说明图1为中国专利局申请号为200610041548. 6的专利申请的一种加速数据库查询 速度的方法的原理示意图;图2为本专利技术基于SQL的并行计算系统的一种实施例架构图;图3为本专利技术基于SQL的并行计算方法的一种实施例流程图;图4为一个大数据量的源数据库示意图。具体实施例方式本专利技术的主要思想是将源数据库中的海量数据分割并分配到多个节点数据库,并 以多个独立的节点服务器进行并行计算,从而可以充分发挥多机、多核同时计算的能力,可 以大大提高大数据量数据库的统计或查询效率。本专利技术的数据查询或统计是建立在SQL指令下的,特别适用于BI (Business Intelligence,商务智能)系统。以下结合附图,具体说明本专利技术。请参见图2,其为本专利技术基于SQL的并行计算系统的一种架构图。此系统包括数据 分割服务器14、汇总服务器11、多个节点服务器12和前端展现模块19,数据分割服务器14 与源数据库13相连(源数据库13中存放有大量数据),并与各个节点服务器12通过有线 或无线的方式相连,数据分割服务器14与节点服务器12之间可进行数据传输,且每个节点 服务器12均有独立的运算处理能力。汇总服务器11分别与各个节点服务器12相连。前 端展现模块19与汇总服务器11相连,用来将统计或查询结果形成图形数据或表格数据,以 便于向技术员展现。汇总服务器11又包括主处理器15和临时表存储单元16,每个节点服务器12又包 括节点数据库17和节点处理器18。其中,临时表存储单元16与主处理器15相连,并连接 到各个节点服务器12的节点处理器18,节点处理器18与节点数据库17相连。工作时,数据分割服务器14会将源数据库13中的数据按照一定规则进行分割,然 后将分割后的数据分配到各个节点服务器12的节点数据库17中(优选的方式是按照数据 量最大的分类字段或分类表进行分割,数据量较小的分类字段或分类表不用分割,而直接 复制到各个节点数据库17中)。各个节点处理器18会根据技术本文档来自技高网
...

【技术保护点】
一种基于SQL的并行计算系统,用于对一源数据库进行统计或查询,其特征在于,包括:一数据分割服务器,与该源数据库相连,用于将该源数据库中的海量数据按照一定规则进行分割;多个节点服务器,均与该数据分割服务器相连,且每个节点服务器又进一步包括:一节点数据库,与该数据分割服务器相连,用于存放经该数据分割服务器分割后分配来的数据;一节点处理器,与该节点数据库相连,用于对该节点数据库中的数据进行查询或统计。

【技术特征摘要】

【专利技术属性】
技术研发人员:李晓华
申请(专利权)人:上海云数信息科技有限公司
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1