一种数据库的数据处理方法

文档序号:6400540阅读:812来源:国知局
专利名称:一种数据库的数据处理方法
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库的数据处理方法。
背景技术
数据库技术从20世纪60年代末期开始发展至今,已经有三十多年,其主要目的是有效地管理和存取大量的数据资源。数据库技术主要研究如何存储、使用和管理数据。数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。数据库技术的发展过程大体上包括层次数据库系统、关系数据库系统和面向对象数据库系统三个阶段,目前的数据库技术主要处于关系数据库系统阶段。数据库技术研究和解决了在计算机信息处理过程中,如何有效地存储和组织大量数据的问题,使得在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地存储数据和检索数据。单点故障(Single Point Of Failure),通常是指出现在计算机系统及网络中的单个节点所发生的故障。在设计信息技术(Information Technology,简称IT)基础设施时,单点故障应尽量避免发生。其中,“单点”是指节点设备只有一台。在集群计算机系统中,通常将单个计算机称为节点,并将系统中的作为应用服务器的计算机称为主节点服务器,将存放数据的计算机称为数据节点服务器。为避免单点故障的发生,当前大部分设计主要针对主节点服务器进行“双机热备”,通常做法是增加节点服务器,对主节点服务器的磁盘数据进行备份。但该解决方案使得现有集群计算机系统过于注重保护应用服务器,而忽视了更为重要的存储设备。数据节点服务器通常采用定期导出文件的方式进行备份,而未采用多机热备,因此,因磁盘等硬件故障而引起的数据丢失风险大。一旦存放数据的存储设备或存储介质损坏,将导致非常严重的损失。目前,在数据库技术中,数据处理大致可以分成两大类:联机事务处理OLTP(On-Line Transaction Processing)、联机分析处理 OLAP (On-Line AnalyticalProcessing)。OLTP是传统的关系型数据库的主要应用,其主要工作是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,其支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLTP每次存取通常为数十条记录,而OLAP每次存取通常为上百万条记录,且前者的数据库DB (Data Base)大小通常处于100MB (兆字节)到100GB (十亿字节)之间,后者的数据库DB大小通常为100GB以上。当前的数据库系统在数据存储方式上常常采用“行式”存储方式对数据进行管理,其数据关系模型表现为二维表形式,即使用唯一的行号和唯一的列号来标识数据,在对数据进行存储或读取时,数据库系统必须进行全表扫描。因应用需要,数据库需频繁更新数据,数据量大的情况下增加维护索引等额外工作;查询时需要解压被压缩的数据,数据量大时压缩延迟不可忽视。就目前的数据库发展速度而言,以行的形式存储数据,对OLTP是自然、方便、快速的;但对OLAP的支持来说,“行式存储”对大量索引等问题并没有很好的解决办法,特别是在进行大数据量的分析时,行式数据库系统的数据处理效率会大大降低。

发明内容
本发明所要解决的技术问题是,提供一种数据库的数据处理方法,提高数据库系统对数据的处理效率,并避免单点故障的发生。为解决以上技术问题,本发明实施例提供一种数据库的数据处理方法,包括: 主节点服务器接收客户端的数据处理请求,所述数据处理请求包括数据存储请求; 所述主节点服务器接收待存储数据;
所述主节点服务器提取所述待存储数据的其中一个字段的所有字段值,并采用哈希函数计算出与所述字段的各个字段值一一对应的哈希值;
所述主节点服务器根据计算出的哈希值,确定每个哈希值所对应的存储位置;每个存储位置对应一个数据节点服务器上的一个主硬盘;所述主节点服务器通过信令传输通道与多个数据节点服务器连接,且所述数据节点服务器上设有至少一个主硬盘;
所述主节点服务器将所述待存储数据和所述字段的各个字段值所对应的哈希值,发送至与所述主节点服务器连接的数据节点服务器;
所述数据节点服务器从所述字段的各个字段值所对应的哈希值中,筛选出与本节点的主硬盘相对应的哈希值,并将与所述哈希值对应的字段值所在的行数据存储到所述主硬盘上;
所述主节点服务器对所述数据节点服务器中存储的数据进行镜像备份。其中,在一种可实现方式中,所述数据节点服务器从所述字段的字段值所对应的哈希值中,筛选出与本节点的主硬盘相对应的哈希值,并将与所述哈希值对应的字段值所在的行数据存储到所述主硬盘上,包括:
所述主节点服务器对所述数据节点服务器上的每一个主硬盘设置一个标签;
所述数据节点服务器逐一判断所述字段的各个字段值所对应的哈希值与所述主硬盘的标签是否匹配;
若匹配,则所述数据节点服务器对与所述标签匹配的哈希值进行解析,获得所述哈希值所对应的字段值,并根据所述字段值对所述待存储数据进行过滤,获得所述字段值所在的行数据,并将所述行数据存储在与所述标签对应的主硬盘中;
若不匹配,则所述数据节点服务器将与所述哈希值对应的字段值所在的行数据删除。进一步地,所述数据处理请求还包括数据检索请求。所述主节点服务器接收所述数据检索请求后,判断所述数据检索请求中是否含有查询地址;
若所述主节点服务器判定所述数据检索请求中含有查询地址,则所述主节点服务器将所述数据检索请求发送至与所述查询地址对应的数据节点服务器中;所述数据节点服务器根据所述数据检索请求,对本节点的各个硬盘进行检索,并将检索得到的数据反馈至所述主节点服务器;所述主节点服务器将所述检索得到的数据发送至所述客户端; 若所述主节点服务器判定所述数据检索请求中不含有查询地址,则所述主节点服务器将所述数据检索请求发送至与所述主节点服务器连接的所有数据节点服务器;所述的所有数据节点服务器根据所述数据检索请求,分别对本节点的各个硬盘进行检索,并将检索得到的数据反馈至所述主节点服务器;所述主节点服务器将所述的所有数据节点服务器检索得到的数据进行汇总后,发送至所述客户端。更进一步地,所述主节点服务器连接有备份节点服务器。所述备份节点服务器对所述主节点服务器中的数据和信令进行实时备份。本发明提供的一种数据库的数据处理方法,主节点服务器将待存储数据中的其中一个字段的所有字段值提取出来,并通过对各个字段值的处理,得到各个字段值所对应的哈希值;将所述待存储数据的各行数据,分别存储在与主节点服务器连接的各个数据节点服务器中,提高了数据写入效率;进一步地,本发明提供的数据库的数据处理方法还进一步将各个数据节点服务器中存储的数据进行备份,避免数据节点服务器发生单点故障;本发明提供的数据库的数据处理方法还可以进行数据查询,且进一步对主节点服务器的磁盘数据和流通信令进行实时备份,当主节点服务器在发生故障进行主备切换时,备份节点服务器具有与主节点服务器相同的数据和状态,保证了切换的无缝进行。


图1是本发明提供的一种数据库的数据处理方法的第一实施例的方法流程 图2是无共享(Share Nothing)架构的结构示意 图3是本发明提供的第一实施例中根据哈希值进行数据存储的一种实现方法流程图; 图4是本发明提供的一种数据库的数据处理方法的第二实施例的方法流程 图5是本发明提供的第二实施例的第一数据节点服务器发生故障时,主节点服务器所执行的数据库的数据处理方法流程 图6是本发明提供的第二实施例的第一数据节点服务器恢复工作时的数据库的数据处理方法流程 图7是本发明提供的一种数据库的数据处理方法的第三实施例的方法流程 图8是本发明提供的第三实施例中的各个节点服务器的连接结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。参见图1,是本发明提供的一种数据库的数据处理方法的第一实施例的方法流程图。在第一实施例中,所述的一种数据库的数据处理方法主要包括以下步骤:
步骤SlOl:主节点服务器接收客户端的数据处理请求,所述数据处理请求包括数据存储请求。具体实施时,客户端向主节点服务器发送数据处理请求;主节点服务器根据该客户端所发送的数据处理请求,来执行下一步的数据处理。其中,当所述数据处理请求为数据存储请求时,即所述客户端对主节点服务器发送待存储数据时,执行步骤S102。步骤S102:所述主节点服务器接收待存储数据。
步骤S103:所述主节点服务器提取所述待存储数据的其中一个字段的所有字段值,并采用哈希函数计算出与所述字段的各个字段值一一对应的哈希值。哈希是英文Hash的音译词,在信息技术领域中,Hash也翻译为“散列”,因此哈希函数也译为散列函数。哈希算法是一种能够将任意长度的二进制值映射为固定长度的较小二进制值的方法,如把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。在哈希算法中,其将数据元素的字段值Key作为自变量,通过一定的函数关系(即哈希函数),计算出的值,即为该字段值所对应的数据的存储地址。通常将通过哈希函数计算出来的值称为哈希值。在本实施例中,所述的数据元素的字段值Key可在数据表中选取某一字段的字段值,并选取一种适用的哈希函数对字段值进行计算,获取与字段值及其所对应的行数据相对应的哈希值。哈希值是一段数据中唯一且极其紧凑的数值表示形式。在实践中,即使只更改该数据中的一个字母,随后经过哈希函数的计算都将产生不同的哈希值。所有哈希函数都有如下一个基本特性:如果两个哈希值是不相同的(根据同一哈希函数),那么这两个哈希值的原始输入数据也是不相同的。这个特性是哈希函数具有确定性的结果,具有这种性质的哈希函数也称为单向散列函数。但另一方面,哈希函数的输入和输出不是唯一对应关系的,如果两个哈希值相同,两个输入值很可能是相同的,但也可能不同,这种情况称为“散列冲突”。好的哈希函数在输入域中很少出现散列冲突。需要说明的是,由于哈希函数的应用的多样性,在本实施例中,设计一种适用于数据处理的哈希函数进行哈希计算即可,且默认通过哈希函数运算的哈希值与所述字段的各个字段值一一对应,不存在散列冲突。即使发生散列冲突,也可以通过采用其他方法解决冲突,如链接法和开放定址法等。 步骤S104:所述主节点服务器根据计算出的哈希值,确定每个哈希值所对应的存储位置;每个存储位置对应一个数据节点服务器上的一个主硬盘;所述主节点服务器通过信令传输通道与多个数据节点服务器连接,且所述数据节点服务器上设有至少一个主硬盘。在本实施例中,主节点服务器根据设定的哈希函数和冲突处理方法,将待存储数据的某一字段中的各个字段值映射到一个数据节点服务器中的有限的地址区间上,通过哈希函数运算,将计算得到的哈希值及其所代表的存储位置对应记录在表中,这种表称为哈希表或散列表,所述存储位置称为哈希地址或散列地址。在本实施例中,每个存储位置对应一个数据节点服务器上的一个主硬盘,因此,具体实施时,所述的哈希地址与一个数据节点服务器上的一个主硬盘相对应。在一种可实现方式中,所述数据节点服务器为每个主硬盘设置标签,特别地,该标签即为所述的哈希地址。此外,该标签也可以是数据节点服务器所分配的各个主硬盘地址,则待存储数据的某一字段的各个字段值分别对应的行数据所对应的存储位置或哈希地址,与各个主硬盘地址--对应。具体实施时,在主节点服务器中设计一种哈希函数,对待存储数据的某一字段的字段值进行运算,并可将计算得到的哈希值存储在哈希表中。具体实施时,可选取将待存储数据的某一字段的各个数据元素作为字段值,即自变量,通过一定的哈希函数运算,得到相应的哈希值。主节点服务器即可根据所述哈希值解析出待存储数据的行数据的存储位置。在本实施例中,所述数据节点服务器通过信令传输通道与所述主节点服务器连接,且所述数据节点服务器上设有至少一个主硬盘。具体实施时,主节点服务器与数据节点服务器可基于“云计算”而组成云数据库系统,其中,主节点服务器和数据节点服务器均接受“信令分析处理计算云”的控制。云计算(Cloud Computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且往往是虚拟化的资源。“云”是网络、互联网的一种比喻说法。云计算的核心思想,是将大量用网络连接的计算资源进行统一管理和调度,构成一个“计算资源池”,以“按需”向客户端提供服务。在本实施例中,“信令分析处理计算云”是指在进行数据处理时,尤其是联机分析处理OLAP (On-Line Analytical Processing)时,存储有各种对云数据库系统或原始信令云进行管理和调度的信令集的网络架构平台。步骤S105:所述主节点服务器将所述待存储数据和所述字段的各个字段值所对应的哈希值,发送至与所述主节点服务器连接的数据节点服务器。在本实施例中,所述主节点服务器通过信令传输通道,与至少一个数据节点服务器进行连接。具体实施时,该主节点服务器与各个数据节点服务器建立起“无共享(ShareNothing)架构”,即数据节点服务器之间不共享各自存储的数据。参看图2,是无共享Share Nothing架构的示意图。在本实施例中,图2所示的Share Nothing架构中,主节点服务器10通过信令传输通道20与多个数据节点服务器连接,其中,每个数据节点服务器中又包括多个硬盘。特别地,在每个数据节点服务器中包括一个主硬盘和多个从硬盘。如图2所示,数据节点服务器31包括主硬盘311和从硬盘312、从硬盘313 ;数据节点服务器32包括主硬盘321和从硬盘322、从硬盘323 ;数据节点服务器33包括主硬盘331和从硬盘332、从硬盘333。具体地,主节点服务器将客户端所发送的数据处理请求分发给各个数据节点服务器进行并行处理,数据节点服务器31与数据节点服务器32、数据节点服务器33之间不共享各自所存储的部分数据,各个数据节点服务器之间的交互少,因此,数据库系统容易扩展。需要说明的是,在Share Nothing架构中,各个数据节点服务器中存储的数据是独立的,主要是指各个数据节点服务器中的主硬盘的数据是独立的,不作共享,但并不表示各个数据节点服务器中的从硬盘不可以按照一定规则对相应主硬盘进行数据镜像备份。步骤S106:所述数据节点服务器从所述字段的各个字段值所对应的哈希值中,筛选出与本节点的主硬盘相对应的哈希值,并将与所述哈希值对应的字段值所在的行数据存储到所述主硬盘上。在本实施例中,数据节点服务器接收主节点服务器所发送过来的待存储数据和各个字段值所对应的哈希值后,对各个哈希值进行解析,以获得哈希值的存储地址空间,从而筛选出与本节点的主硬盘相对应的哈希值。数据节点服务器进一步地将与所述哈希值对应的字段值所在的二维数据表(即待存储数据)的行数据存储到与所述哈希值对应的主硬盘上。在本实施例中,该步骤106可以称为“列式存储”,即对待存储数据的某一字段或某一列数据进行提取,将该字段或该列数据的每一个元素(即字段值)所在的行数据进行划分和存储。具体地,在对待存储数据进行读入,且主节点服务器连接有多个数据节点服务器时,各个数据节点服务器同时(并行)读取待存储数据的行数据,根据待存储数据的字段值所对应的哈希值,对待存储数据的行数据进行直接入库。譬如,待存储数据的字段包括:序号、姓名、性别、年龄等,具体实施时,选取“序号”字段中的各个字段值,然后采用哈希函数对“序号”字段中的各个字段值进行哈希运算,获得各个字段值所分别对应的哈希值。主节点服务器将待存储数据和各个哈希值发送给各个数据节点服务器,各个数据节点服务器则根据与自身匹配的哈希值对所述待存储数据进行过滤,获取并存储与哈希值对应的字段值所在的行数据。即在数据存储时,可对待存储数据这一个二维数据表提取关键字(即字段值),再对该关键字所在的行数据进行提取,然后将其存储在相应的存储位置上。在该数据存储方法中,不需要对数据进行“列切分”,但进行“行切分”,每一行数据都是信息完整的一类信息。如图2所示,数据节点服务器31、数据节点服务器32和数据节点服务器33分别在信令云平台的控制下,同时、独立地完成数据处理工作。因此,各个数据节点服务器可以根据每一字段值所对应的行数据的数据特点而对行数据采用不同的方式进行处理。譬如,各个数据节点服务器可以针对每一字段的数据特点而采用不同的数据压缩方式,从而提高了数据压缩效率和数据容量。参看图3,是本发明第一实施例的步骤S106的一种实现方法流程图。进一步地,在本实施例中,如图3所示,所述数据节点服务器从所述字段的字段值所对应的哈希值中,筛选出与本节点的主硬盘相对应的哈希值,并将与所述哈希值对应的字段值所在的行数据存储到所述主硬盘上,包括:
步骤S1061:所述主节点服务器对所述数据节点服务器上的每一个主硬盘设置一个标签。具体地,所述标签可以但不限定为各个主硬盘的地址,所述数据节点服务器也可以为各个主硬盘分配一个编号,将该编号作为数据节点服务器中的主硬盘的标签。作为一种可实现的方式,主节点服务器在为各个数据节点服务器的主硬盘设置标签时,可依据计算得到的哈希值所对应的地址区间来进行标签设置。步骤S1062:所述数据节点服务器逐一判断所述字段的各个字段值所对应的哈希值与所述主硬盘的标签是否匹配。若匹配,则执行步骤S1063 ;若不匹配,则执行步骤S1064。步骤S1063:所述数据节点服务器对与所述标签匹配的哈希值进行解析,获得所述哈希值所对应的字段值,并根据所述字段值对所述待存储数据进行过滤,获得所述字段值所在的行数据,并将所述行数据存储在与所述标签对应的主硬盘中。步骤S1064:所述数据节点服务器将与所述哈希值对应的字段值所在的行数据删除。具体地,所示数据节点服务器检测到无匹配的哈希值时,将主节点服务器所发送过来的待存储数据丢弃或格式化即可。在本实施例中,将待存储数据进行存储后,还进一步对已存入数据进行备份,即只需步骤S107。步骤S107:所述主节点服务器对所述数据节点服务器中存储的数据进行镜像备份。
在本实施例中,所有数据节点服务器对客户端所发送过来的待存储数据进行存储后,为保障各个数据节点服务器中所存储的字段的安全性和待存储数据的完整性,进一步地,对各个数据节点服务器中存储的字段进行镜像备份。具体实施时,镜像备份技术只需要对数据执行简单的复制操作,而不需要对数据进行压缩、索引和对数据类型进行转换等操作。与各个数据节点服务器同时执行数据存储和数据备份的传统数据库系统相比,本发明实施例所提供的由主节点服务器和数据节点服务器构成的数据库系统的数据存储效率更高,可以大大降低数据存储与备份对各个数据节点服务器的中央处理器CPU (CentralProcessing Unit)和内存的消耗,空闲出来的CPU和内存可以进一步提高数据节点服务器的读写能力。具体实施时,每当各个节点服务器集群发生状态变化时都会触发镜像备份操作。其中,所述的状态变化包括主节点元数据更新、主节点与客户端交互、主节点记录的数据节点服务状态、数据节点的数据变化等。即镜像备份对象包括硬盘数据和内存数据,且镜像备份技术实时性高,适用于本发明实施例在进行数据处理时的数据的快速变化。进一步地,在第一实施例中,所述主节点服务器通过所述信令传输通道,定期向所述数据节点服务器发送状态检测信令,对所述数据节点服务器的工作状态进行监控。在本实施例中,可将主节点服务器对数据节点服务器的工作状态进行监控统称为信令分析控制。在网络中所传输的信号中,主要包括数据和信令,其中数据主要指网络模块交互的实体消息或数据包,信令则是指代用来控制网络数据传输的信号。具体地,主节点服务器和数据节点服务器在运行过程中,主节点服务器在监测数据节点服务器的工作时,通过信令传输通道,向各个数据节点服务器广播状态查询信令,当数据节点服务器接收到状态查询信令后,立即向主节点服务器发送自身当前的状态信息,主节点服务器对这些信息进行统筹和分析,再及时对各个数据节点服务器进行工作调度与管理。参看图4,是本发明提供的一种数据库的数据处理方法的第二实施例的方法流程图。在第二实施例中,所述哈希值所对应的存储位置包括第一数据节点服务器上的第一主硬盘。所述主节点服务器通过信令传输通道与所述第一数据节点服务器连接。因此,在本实施例中,所述的一种数据库的数据处理方法包括以下步骤:
步骤S201:主节点服务器接收客户端的数据处理请求,所述数据处理请求包括数据存储请求。本步骤原理与第一实施例中的步骤SlOl相同。步骤S202:所述主节点服务器接收待存储数据。本步骤原理与第一实施例中的步骤S102相同。步骤S203:所述主节点服务器提取所述待存储数据的其中一个字段的所有字段值,并采用哈希函数计算出与所述字段的各个字段值一一对应的哈希值。本步骤原理与第一实施例中的步骤S103相同。步骤S204:所述主节点服务器根据计算出的哈希值,确定每个哈希值所对应的存储位置;每个存储位置对应一个数据节点服务器上的一个主硬盘。所述主节点服务器通过信令传输通道与所述第一数据节点服务器连接,且所述第一数据节点服务器上设有至少一
个主硬盘。
步骤S205:所述主节点服务器将所述待存储数据和所述字段的各个字段值所对应的哈希值,发送给所述每个存储位置所分别对应的数据节点服务器,包括:
所述主节点服务器将所述待存储数据和所述字段的字段值所对应的哈希值,发送给所述第一数据节点服务器。步骤S206:所述数据节点服务器从所述字段的各个字段值所对应的哈希值中,筛选出与本节点的主硬盘相对应的哈希值,并将与所述哈希值对应的字段值所在的行数据存储到所述主硬盘上,包括:
所述第一数据节点服务器从所述字段的各个字段值所对应的哈希值中,筛选出与本节点的第一主硬盘相对应的第一哈希值,并将所述第一哈希值所对应的字段值所在的行数据存储到所述第一主硬盘中。步骤S207:所述主节点服务器对所述数据节点服务器中存储的字段进行镜像备份。本步骤原理与第一实施例中的步骤S107相同。在本实施例中,以第一数据节点服务器为与主节点服务器连接的数据节点服务器的代表,在进行数据处理时,将待存储数据和计算得到的哈希值发送至所述第一数据节点服务器;第一数据节点服务器对哈希值进行解析,将与第一数据节点服务器中的第一主硬盘匹配的第一哈希值筛选出来,并进一步的把该匹配的哈希值所对应的在待存储数据中的行数据存入第一主硬盘中。如果主节点服务器通过信令传输通道还连接有其他数据节点服务器,则这些数据节点服务器对待存储数据和计算得到的哈希值的处理方法,可参照第一数据节点服务器所采用的方法来处理。进一步地,在第二实施例中,所述主节点服务器还通过信令传输通道与第二数据节点服务器连接;所述第二数据节点服务器包括第一从硬盘,则:
在本实施例中,所述主节点服务器对所述数据节点服务器中存储的字段进行镜像备份,即主节点服务器在执行步骤S207时,包括:
所述主节点服务器将所述第一数据节点服务器的第一主硬盘中存储的字段,镜像映射到所述第二数据节点服务器的第一从硬盘中进行备份。更进一步地,在本实施例中,所述主节点服务器通过所述信令传输通道,定期向所述数据节点服务器发送状态检测信令,对所述数据节点服务器的工作状态进行监控。此基本原理与第一实施例中所描述的相关内容相同。因此,当所述主节点服务器检测到所述第一数据节点服务器发生故障时,则:
所述主节点服务器断开与所述第一数据节点服务器的数据连接。所述主节点服务器将所述第一数据节点服务器的第一主硬盘的任务,切换至所述第二数据节点服务器的第一从硬盘中执行。再进一步地,在第二实施例中,所述主节点服务器还通过信令传输通道与第三数据节点服务器连接;所述第三数据节点服务器包括第二从硬盘。所述主节点服务器将所述第一数据节点服务器的第一主硬盘的任务,切换至所述第二数据节点服务器的第一从硬盘中执行之后,还包括:
所述主节点服务器将所述第二数据节点服务器的第一从硬盘中存储的数据,镜像映射到所述第三数据节点服务器的第二从硬盘中进行备份。因此,结合以上所述内容,可以得到主节点服务器在检测到第一数据节点服务器发生故障时的处理方法。参看图5,第一数据节点服务器发生故障时,主节点服务器将要执行以下方法步骤:
步骤S301:所述主节点服务器断开与所述第一数据节点服务器的数据连接。步骤S302:所述主节点服务器将所述第一数据节点服务器的第一主硬盘的任务,切换至所述第二数据节点服务器的第一从硬盘中执行。步骤S303:所述主节点服务器将所述第二数据节点服务器的第一从硬盘中存储的数据,镜像映射到所述第三数据节点服务器的第二从硬盘中进行备份。在本实施例中,由于主节点服务器通过信令传输通道向各个数据节点服务器进行实时监控,当所述第一数据节点服务器从故障中恢复时,第一数据节点服务器将会向主节点服务器发送“上线”信令;主节点服务器确认其身份后,向第一数据节点服务器发送“同步”、“恢复”等一系列信令,以使得使集群计算机恢复到故障前的正常工作状态。参看图6,是本发明提供的第二实施例中的第一数据节点服务器恢复工作时的数据库的数据处理方法流程图。在本实施例中,当所述主节点服务器检测到所述第一数据节点服务器从故障中恢复时,则执行以下步骤:
步骤S401:所述主节点服务器将所述第二数据节点服务器的第一从硬盘中存储的字段,镜像映射到所述第一数据节点服务器的第一主硬盘中进行更新。步骤S402:所述主节点服务器恢复与所述第一数据节点服务器的连接。步骤S403:所述主节点服务器将所述第二数据节点服务器的第一从硬盘的任务,切换到所述第一数据节点服务器的第一主硬盘中执行。步骤S404:所述主节点服务器对所述第三数据节点服务器的第二从硬盘进行格式化。在本发明实施例中,所述的一种数据库的数据处理方法还进一步用于检索数据节点服务器中所存储的数据。参看图7,是本发明提供的一种数据库的数据处理方法的第三实施例的方法流程图。在第三实施例中,所述数据处理请求还包括数据检索请求。需要说明的是,本实施例描述的数据库的数据处理方法包括但不限于数据检索部分的处理方法,其还可包括数据存储的处理方法,具体可参看第一实施例和第二实施例中所记载的技术方案。在本实施例中,所述主节点服务器接收所述数据检索请求后,判断所述数据检索请求中是否含有查询地址:
若所述主节点服务器判定所述数据检索请求中含有查询地址,则所述主节点服务器将所述数据检索请求发送至与所述查询地址对应的数据节点服务器中;所述数据节点服务器根据所述数据检索请求,对本节点的各个硬盘进行检索,并将检索得到的数据反馈至所述主节点服务器;所述主节点服务器将所述检索得到的数据发送至所述客户端。若所述主节点服务器判定所述数据检索请求中不含有查询地址,则所述主节点服务器将所述数据检索请求发送至与所述主节点服务器连接的所有数据节点服务器;所述的所有数据节点服务器根据所述数据检索请求,分别对本节点的各个硬盘进行检索,并将检索得到的数据反馈至所述主节点服务器;所述主节点服务器将所述的所有数据节点服务器检索得到的数据进行汇总后,发送至所述客户端。具体地,参照图7所示的数据检索处理方法流程示意图,主节点服务器在接收客户端所发送的数据检索请求时,执行以下步骤:
步骤S501:所述主节点服务器接收所述数据检索请求。步骤S502:所述主节点服务器判断所述数据检索请求中是否含有查询地址。若含有查询地址,则执行步骤S503至步骤S505 ;若不含有查询地址,则执行步骤S506至步骤S508。步骤S503:所述主节点服务器将所述数据检索请求发送至与所述查询地址对应的数据节点服务器中。步骤S504:所述数据节点服务器根据所述数据检索请求,对本节点的各个硬盘进行检索,并将检索得到的数据反馈至所述主节点服务器。步骤S505:所述主节点服务器将所述检索得到的数据发送至所述客户端。步骤S506:所述主节点服务器将所述数据检索请求发送至与所述主节点服务器连接的所有数据节点服务器。步骤S507:所述的所有数据节点服务器根据所述数据检索请求,分别对本节点的各个硬盘进行检索,并将检索得到的数据反馈至所述主节点服务器。步骤S508:所述主节点服务器将所述的所有数据节点服务器检索得到的数据进行汇总后,发送至所述客户端。需要说明的是,图7只画出了数据检索的处理方法流程图,未给出数据存储的处理方法流程图,其中,数据存储的处理方法流程图可参看第一实施例和第二实施例中的相关不意图。进一步地,在第三实施例中,所述主节点服务器连接有备份节点服务器40。参看图8,是本发明提供的第三实施例中的各个节点服务器的连接结构示意图。在本实施例中,所述备份节点服务器40对所述主节点服务器10中的数据和信令进行实时备份。具体地,在正常情况下,各个节点服务器所组成的集群由主节点服务器10控制,负责集群控制指令的发送以及客户端,即图8中的集群外部计算机网络的交互。备份节点服务器40对主节点服务器10配置备份,当主节点服务器10出现故障时,备份节点服务器40迅速替换主节点服务器10,接管其的控制及交互状态。进一步地,备份节点服务器40也通过信令传输通道20与N台数据节点服务器进行连接,其中,N为正整数。具体实施时,数据节点服务器的数量N可根据实际应用需要进行扩展。在基于Share Nothing架构的集群中,数据节点服务器的扩展相对简单,只要添加和连接相应的硬件设备,主节点服务器即可基于云信令架构平台,对新增的数据节点服务器进行初始化配置。配置完成的数据节点服务器即可根据主节点服务器的信令控制进行工作。本发明实施例提供的一种数据库的数据处理方法,包括但不限于数据存储和数据检索方法。具体地,所述的一种数据库的数据处理方法,提取待存储数据中的某一字段的各个字段值,通过哈希函数算法计算出各个字段值的哈希值;并根据所述哈希值,将待存储数据的各行数据分别存储在与主节点服务器连接的各个数据节点服务器中,提高了数据处理效率和增加了数据存储容量。
进一步地,本发明提供的数据库的数据处理方法还进一步将各个数据节点服务器中存储的字段进行备份,避免数据节点服务器发生单点故障。此外,本发明提供的数据库的数据处理方法在执行过程中,进一步对主节点服务器的磁盘数据和流通信令进行实时备份。当主节点服务器在发生故障进行主备切换时,备份节点服务器与主节点服务器具有相同的数据和状态,保证了服务器切换的无缝进行,为客户端提供无间断的服务。以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
权利要求
1.一种数据库的数据处理方法,其特征在于,包括: 主节点服务器接收客户端的数据处理请求,所述数据处理请求包括数据存储请求; 所述主节点服务器接收待存储数据; 所述主节点服务器提取所述待存储数据的其中一个字段的所有字段值,并采用哈希函数计算出与所述字段的各个字段值一一对应的哈希值; 所述主节点服务器根据计算出的哈希值,确定每个哈希值所对应的存储位置;每个存储位置对应一个数据节点服务器上的一个主硬盘;所述主节点服务器通过信令传输通道与多个数据节点服务器连接,且所述数据节点服务器上设有至少一个主硬盘; 所述主节点服务器将所述待存储数据和所述字段的各个字段值所对应的哈希值,发送至与所述主节点服务器连接的数据节点服务器; 所述数据节点服务器从所述字段的各个字段值所对应的哈希值中,筛选出与本节点的主硬盘相对应的哈希值,并将与所述哈希值对应的字段值所在的行数据存储到所述主硬盘上; 所述主节点服务器对所述数据节点服务器中存储的数据进行镜像备份。
2.如权利要求1所述的数据库的数据处理方法,其特征在于,所述数据节点服务器从所述字段的字段值所对应的哈希值中,筛选出与本节点的主硬盘相对应的哈希值,并将与所述哈希值对应的字段值所在的行数据存储到所述主硬盘上,包括: 所述主节点服务器对所述数据节点服务器上的每一个主硬盘设置一个标签; 所述数据节点服务器逐一判断所述字段的各个字段值所对应的哈希值与所述主硬盘的标签是否匹配; 若匹配,则所述数据节点服务器对与所述标签匹配的哈希值进行解析,获得所述哈希值所对应的字段值,并根据所述字段值对所述待存储数据进行过滤,获得所述字段值所在的行数据,并将所述行数据存储在与所述标签对应的主硬盘中; 若不匹配,则所述数据节点服务器将与所述哈希值对应的字段值所在的行数据删除。
3.如权利要求1或2所述的数据库的数据处理方法,其特征在于,所述主节点服务器通过所述信令传输通道,定期向所述数据节点服务器发送状态检测信令,对所述数据节点服务器的工作状态进行监控。
4.如权利要求3所述的数据库的数据处理方法,其特征在于,所述哈希值所对应的存储位置包括第一数据节点服务器上的第一主硬盘;所述主节点服务器通过信令传输通道与所述第一数据节点服务器连接; 则所述主节点服务器将所述待存储数据和所述字段的各个字段值所对应的哈希值,发送给所述每个存储位置所分别对应的数据节点服务器,包括:所述主节点服务器将所述待存储数据和所述字段的字段值所对应的哈希值,发送给所述第一数据节点服务器; 所述数据节点服务器从所述字段的各个字段值所对应的哈希值中,筛选出与本节点的主硬盘相对应的哈希值,并将与所述哈希值对应的字段值所在的行数据存储到所述主硬盘上,包括:所述第一数据节点服务器从所述字段的各个字段值所对应的哈希值中,筛选出与本节点的第一主硬盘相对应的第一哈希值,并将所述第一哈希值所对应的字段值所在的行数据存储到所述第一主硬盘中。
5.如权利要求4所述的数据库的数据处理方法,其特征在于,所述主节点服务器还通过信令传输通道与第二数据节点服务器连接;所述第二数据节点服务器包括第一从硬盘;所述主节点服务器对所述数据节点服务器中存储的数据进行镜像备份,包括: 所述主节点服务器将所述第一数据节点服务器的第一主硬盘中存储的数据,镜像映射到所述第二数据节点服务器的第一从硬盘中进行备份。
6.如权利要求5所述的数据库的数据处理方法,其特征在于,当所述主节点服务器检测到所述第一数据节点服务器发生故障时,则: 所述主节点服务器断开与所述第一数据节点服务器的数据连接; 所述主节点服务器将所述第一数据节点服务器的第一主硬盘的任务,切换至所述第二数据节点服务器的第一从硬盘中执行。
7.如权利要求6所述的数据库的数据处理方法,其特征在于,所述主节点服务器还通过信令传输通道与第三数据节点服务器连接;所述第三数据节点服务器包括第二从硬盘; 所述主节点服务器将所述第一数据节点服务器的第一主硬盘的任务,切换至所述第二数据节点服务器的第一从硬盘中执行之后,还包括: 所述主节点服务器将所述第二数据节点服务器的第一从硬盘中存储的数据,镜像映射到所述第三数据节点服务器的第二从硬盘中进行备份。
8.如权利要求7所述的数据库的数据处理方法,其特征在于,当所述主节点服务器检测到所述第一数据节点服务器从 故障中恢复时,则: 所述主节点服务器将所述第二数据节点服务器的第一从硬盘中存储的数据,镜像映射到所述第一数据节点服务器的第一主硬盘中进行更新; 所述主节点服务器恢复与所述第一数据节点服务器的数据连接; 所述主节点服务器将所述第二数据节点服务器的第一从硬盘的任务,切换到所述第一数据节点服务器的第一主硬盘中执行; 所述主节点服务器对所述第三数据节点服务器的第二从硬盘进行格式化。
9.如权利要求1或2所述的数据库的数据处理方法,其特征在于,所述数据处理请求还包括数据检索请求; 所述主节点服务器接收所述数据检索请求后,判断所述数据检索请求中是否含有查询地址; 若所述主节点服务器判定所述数据检索请求中含有查询地址,则所述主节点服务器将所述数据检索请求发送至与所述查询地址对应的数据节点服务器中;所述数据节点服务器根据所述数据检索请求,对本节点的各个硬盘进行检索,并将检索得到的数据反馈至所述主节点服务器;所述主节点服务器将所述检索得到的数据发送至所述客户端; 若所述主节点服务器判定所述数据检索请求中不含有查询地址,则所述主节点服务器将所述数据检索请求发送至与所述主节点服务器连接的所有数据节点服务器;所述的所有数据节点服务器根据所述数据检索请求,分别对本节点的各个硬盘进行检索,并将检索得到的数据反馈至所述主节点服务器;所述主节点服务器将所述的所有数据节点服务器检索得到的数据进行汇总后,发送至所述客户端。
10.如权利要求9所述的数据库的数据处理方法,其特征在于,所述主节点服务器连接有备份节点服务器; 所述备份节点服务器对所述主节点服务器中的数据和信令进行实时备份。
全文摘要
本发明公开了一种数据库的数据处理方法,包括主节点服务器接收客户端的数据处理请求,所述数据处理请求包括数据存储请求。所述主节点服务器接收待存储数据;所述主节点服务器提取所述待存储数据中的一个字段的各个字段值,并计算出对应的哈希值,确定每个哈希值所对应的存储位置;所述主节点服务器将待存储数据和哈希值发送给数据节点服务器;所述数据节点服务器将所述哈希值所对应的行数据存储到相应的主硬盘上;主节点服务器对所述数据节点服务器中存储的数据进行镜像备份。所述数据处理请求包括数据检索请求。本发明提供的数据库的数据处理方法,数据处理效率更高,容量更大,并避免了集群中的单点故障的发生。
文档编号G06F17/30GK103116661SQ20131008882
公开日2013年5月22日 申请日期2013年3月20日 优先权日2013年3月20日
发明者张起飞 申请人:广东宜通世纪科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1