一种数据处理方法和管理节点技术

技术编号:15391741 阅读:35 留言:0更新日期:2017-05-19 04:55
本申请公开了一种数据处理方法和管理节点,数据记录需要进入数据库系统的情况下,根据数据库系统设置的多个分区策略进行分区处理,在根据基准分区策略进行分区处理时存储节点的原始数据表中存放真实的数据记录,在根据非基准分区策略进行分区处理时,如果存储节点中已存在相同的数据记录的情况下,存储节点的索引表中只存放数据记录的索引信息,通过上述的分区处理过程,一个存储节点内只会保存一份数据记录,以减少数据的冗余和提高数据操作效率。

Data processing method and management node

The invention discloses a method of data processing and management node, data records need to go into the database system, is partitioned according to a plurality of partition strategy database system settings, in the partitioned according to the reference partition strategy of storage nodes of the original data stored in the real data record in the partitioned according to the non reference partition strategy, if the storage node already exists in the same data record, index information index table storage nodes only store data records, by partitioning the process described above, a storage node would only save a copy of the data records, in order to reduce data redundancy and improve data operation efficiency.

【技术实现步骤摘要】
一种数据处理方法和管理节点
本专利技术涉及数据库领域,尤其涉及一种数据处理方法和管理节点。
技术介绍
分区是数据库系统的重要功能,分区将大的数据表分而治之,设计人员可根据不同的分区策略将数据表进行分区,分区策略规定了数据表的一个数据记录应该映射到哪个存储节点,合理的分区能使数据库系统性能提高,可减少系统对数据的读写次数,减小数据库服务器处理数据的规模,便于对数据库的管理。在现有的分区方案中,会根据业务需求预先指定一个或多个分区策略对数据记录进行分区,分区策略固定设置,无法实时的根据不同的业务需求进行扩展。同时,在使用多个分区策略对数据表进行分区时,存储节点上存在大量的数据冗余。
技术实现思路
本申请所要解决的技术问题在于,提供一种数据处理方法和管理节点。可解决现有技术中设置分区策略灵活性差和占用存储空间大的问题。为了解决上述技术问题,本申请提供了一种数据处理方法,数据处理方法适用于数据库系统,数据库系统包括管理节点和多个存储节点,管理节点可以为一个计算设备,每个存储节点可以为一个非易失性存储器,例如HDD(HardDiskDrive,硬盘驱动器,简称HDD)或SSD(SolidStateDrives,固态硬盘),多个存储节点可组成磁盘阵列。存储节点的数量一般大于1且为2的整数次幂,多个存储节点可以位于同一个物理节点,也可以位于不同的物理节点,本申请不作限制。数据库系统配置有分区策略集合,分区策略集合包括多个分区策略,分区策略表示数据记录分布在存储节点中的规则,分区策略包括但不限于范围分区、散列分区和列表分区。多个分区策略包括一个基准分区策略和至少一个非基准分区策略,每个存储节点中建立有基准分区策略关联的原始数据表,以及非基准分区策略关联的索引表,原始数据表和索引表的区别在于:原始数据表中存放的数据全部为真实的数据记录,而索引表中不仅可以存放真实的数据记录,还可以存储数据记录的索引,索引可以为存储地址。在数据记录进入数据库系统时,管理节点对数据记录的处理过程包括:管理节点接收待存入数据库系统的数据记录,其中,待存入数据库系统的数据记录可以是数据库系统外部产生的数据,也可以是数据库系统内部产生的数据。首先,管理节点确定预设的分区策略集合中的基准分区策略,根据基准分区策略的字段确定数据记录的基准分区策略对应的存储节点,将数据记录存放至基准分区策略对应的存储节点的原始数据表中;然后,管理节点确定分区策略集合中的至少一个非基准分区策略,根据预设的顺序每次从至少一个非基准分区策略中选择一个非基准分区策略对数据记录进行分区处理,直到完成对所有的非基准分区策略的选择操作,对于任意一个非基准分区策略,分区处理的方法包括:根据非基准分区策略的字段确定数据记录的非基准分区策略对应的存储节点,判断非基准分区策略对应的存储节点中是否已存在数据记录,若为是,获取非基准分区策略对应的存储节点中已存在数据记录的存储位置信息,在非基准分区策略对应存储节点中确定非基准分区策略关联的索引表,将存储位置信息存放到非基准分区策略关联的索引表中;若非基准分区策略对应的存储节点中未存有待入所述数据库系统的数据记录,将待入所述数据库系统的数据记录保存至非基准分区策略对应的存储节点的对应非基准分区策略的索引表中。需要说明的是,在本专利技术实施例中,可根据需要对数据记录进行复制生成内容完全相同的副本,数据记录和数据记录的副本可以进行互换,本实施例并不作区分。需要说明的是,判断非基准分区策略对应的存储节点中是否存在待进入数据库系统的数据记录的方法可以是:识别非基准分区策略对应的存储节点和基准分区策略对应的存储节点是否为同一个节点,若为是,确定非基准分区策略对应的存储节点中存在待进入数据库系统的数据记录;或者,在根据非基准分区策略的字段确定数据记录的非基准分区策略对应的存储节点中,在非基准分区策略对应的存储节点中遍历是否存在待进入数据库系统的数据记录,若为是,确定非基准分区策略对应的存储节点中存在待进入数据库系统的数据记录。上述实施例,数据记录需要进入数据库系统的情况下,根据数据库系统设置的多个分区策略进行分区处理,在根据基准分区策略进行分区处理时存储节点的原始数据表中存放真实的数据记录,在根据非基准分区策略进行分区处理时,如果存储节点中已存在相同的数据记录的情况下,存储节点的索引表中只存放数据记录的索引信息,通过上述的分区处理过程,一个存储节点内只会保存一份数据记录,以减少数据的冗余。同一个存储节点上原始数据表和索引表在逻辑上为一张表,在针对存储节点的数据操作请求时,避免跨表操作,提高操作效率。在本方面的一种可能的实施方式中,多个存储节点预先以0开始进行编号,例如数据库系统包括存储节点0、存储节点1、存储节点2…,根据分区策略确定数据记录的存储节点的方法包括:确定分区策略的字段,获取数据记录中分区策略的字段对应的值;根据预设的哈希算法对值进行哈希运算得到一个哈希值,将哈希值与存储节点的数量进行求模得到模值,该模值为存储节点的序号,由此得到数据记录的存储节点。实施上述实施例,通过散列的方式将数据记录均匀的分布在多个存储节点,实现了数据库的分布式存储。在本方面的一种可能的实施方式中,管理节点接收多个数据查询请求,其中,多个数据查询请求中每个查询请求具有相同的查询条件,每个查询条件包括至少两个字段和至少两个字段各自对应的值,至少两个字段属于所述分区策略集合关联的字段;根据至少两个字段中每个字段的值确定至少两个存储节点;根据预设的比例将多个数据查询请求发送到至少两个存储节点上。上述实施例,根据存储节点之间存在数据冗余的特性,将接收到的多个数据查询请求分流到多个存储节点上进行并行处理,提高数据操作的效率。在本方面的一种可能的实施方式中,在分区策略集合中增加新的非基准分区策略,在各个存储节点中建立与新的非基准分区策略关联的索引表。在需要对数据库系统中的历史数据重新进行分区处理的情况下,暂停数据记录的入库,确定多个存储节点上的原始数据表中的数据记录,根据所有的原始数据表得到数据库系统的历史数据,根据新的非基准分区策略对历史数据进行分区处理,对于历史数据中的任意一个数据记录,分区处理的过程为:根据新的非基准分区策略确定数据记录的存储节点,判断存储节点中是否已存在该数据记录,若存在,获取已存在的数据记录的存储位置信息,将存储位置信息保存至存储节点中新的非基准分区策略关联的索引表中;若不存在该数据记录,将数据记录存放在新的非基准分区策略关联的索引表中。上述实施例,在分区策略集合中增加新的非基准分区策略的情况下,根据新的非基准分区策略对所有原始数据表中的历史数据重新进行分区处理,这样能根据需要增加新的非基准分区策略,具有很好的灵活性。同时在数据库系统内部就能实现历史数据的重分区,分区效率高。需要说明的是,在分区策略集合中增加新的非基准分区策略,且不需要对历史数据重新进行分区处理的情况下,在新的非基准分区策略生效时,后续待存入数据库系统的数据记录的处理过程可参照第一方面的过程,此处不再赘述。在本方面的一种可能的实施方式中,修改分区策略集合中基准分区策略,暂停数据记录的入库,依次对每个存储节点中的原始数据表进行处理:根据修改后的基准分区策略确定原始数据表中每个数据记录待的待迁移本文档来自技高网...
一种数据处理方法和管理节点

【技术保护点】
一种数据处理方法,其特征在于,所述数据处理方法应用于数据库系统,所述数据库系统包括管理节点和多个存储节点,所述管理节点存储有分区策略集合,所述分区策略集合中每个分区策略关联数据记录的一个字段;所述分区策略集合包括一个基准分区策略和至少一个非基准分区策略,每个存储节点包括一个原始数据表和至少一个索引表;所述数据处理方法包括:所述管理节点接收待存入所述数据库系统的数据记录;所述管理节点确定所述分区策略集合中的基准分区策略,根据所述基准分区策略关联的字段确定所述待存入所述数据库系统的数据记录的基准分区策略对应的存储节点,将所述待存入所述数据库系统的数据记录保存至所述基准分区策略对应的存储节点的原始数据表中;所述管理节点根据所述分区策略集合中的每一个非基准分区策略依次对所述待存入所述数据库系统的数据记录进行分区处理,所述分区处理包括:根据所述至少一个非基准分区策略中的一个非基准分区策略关联的字段确定所述待存入所述数据库系统的数据记录的非基准分区策略对应的存储节点,若所述非基准分区策略对应的存储节点存有所述待存入所述数据库系统的数据记录,获取所述非基准分区策略对应的存储节点中所述待存入所述数据库系统的数据记录的存储位置信息,将所述存储位置信息保存至所述非基准分区策略对应的存储节点的对应所述非基准分区策略的索引表中;若所述非基准分区策略对应的存储节点中未存有所述待入所述数据库系统的数据记录,将所述待入所述数据库系统的数据记录保存至所述非基准分区策略对应的存储节点的对应所述非基准分区策略的索引表中。...

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述数据处理方法应用于数据库系统,所述数据库系统包括管理节点和多个存储节点,所述管理节点存储有分区策略集合,所述分区策略集合中每个分区策略关联数据记录的一个字段;所述分区策略集合包括一个基准分区策略和至少一个非基准分区策略,每个存储节点包括一个原始数据表和至少一个索引表;所述数据处理方法包括:所述管理节点接收待存入所述数据库系统的数据记录;所述管理节点确定所述分区策略集合中的基准分区策略,根据所述基准分区策略关联的字段确定所述待存入所述数据库系统的数据记录的基准分区策略对应的存储节点,将所述待存入所述数据库系统的数据记录保存至所述基准分区策略对应的存储节点的原始数据表中;所述管理节点根据所述分区策略集合中的每一个非基准分区策略依次对所述待存入所述数据库系统的数据记录进行分区处理,所述分区处理包括:根据所述至少一个非基准分区策略中的一个非基准分区策略关联的字段确定所述待存入所述数据库系统的数据记录的非基准分区策略对应的存储节点,若所述非基准分区策略对应的存储节点存有所述待存入所述数据库系统的数据记录,获取所述非基准分区策略对应的存储节点中所述待存入所述数据库系统的数据记录的存储位置信息,将所述存储位置信息保存至所述非基准分区策略对应的存储节点的对应所述非基准分区策略的索引表中;若所述非基准分区策略对应的存储节点中未存有所述待入所述数据库系统的数据记录,将所述待入所述数据库系统的数据记录保存至所述非基准分区策略对应的存储节点的对应所述非基准分区策略的索引表中。2.如权利要求1所述的方法,其特征在于,所述根据所述基准分区策略关联的字段确定所述基准分区策略对应的存储节点包括:获取所述基准分区策略关联的字段;在所述数据记录查询所述基准分区策略关联的字段对应的值;根据预设的哈希算法对查询到的值进行哈希运算;根据所述哈希运算的结果确定所述基准分区策略对应的存储节点。3.如权利要求1或2所述的方法,其特征在于,还包括:所述管理节点接收多个数据查询请求,其中,所述多个数据查询请求的每个查询请求具有相同的查询条件,所述多个数据查询请求的每个查询条件包括至少两个字段和所述至少两个字段各自对应的值;所述管理节点根据所述至少两个字段中的每个字段对应的分区策略和所述至少两个字段各自对应的值,确定存储有符合所述多个数据查询请求的数据记录的至少两个存储节点;所述管理节点根据预设的比例将所述多个数据查询请求分流到所述至少两个存储节点上。4.如权利要求1或2所述的方法,其特征在于,还包括:所述管理节点在所述分区策略集合中增加新的非基准分区策略;在每个存储节点中建立与所述新的非基准分区策略关联的索引表;暂停数据记录的入库;根据所述多个存储节点包括的原始数据表得到所述数据库系统的历史数据;根据所述新的非基准分区策略对所述历史数据进行所述分区处理。5.如权利要求1或2所述的方法,其特征在于,还包括:所述管理节点修改所述分区策略集合中的基准分区策略;暂停数据记录的入库;根据修改后的基准分区策略确定原始数据表中每个数据记录的待迁移存储节点,在数据记录当前所在的存储节点和待迁移存储节点不一致的情况下,将数据记录迁移到待迁移存储节点的原始数据表中;在完成针对所有原始数据表中数据记录的迁移操作时,根据所述多个存储节点包括的原始数据表得到所述数据库系统的历史数据;根据所述至少一个非基准分区策略依次对所述历史数据进行所述分区处理。6.如权利要求1或2所述的方法,其特征在于,还包括:所述管理节点修改所述分区策略集合中非基准分区策略;在每个存储节点删除该非基准分区策略关联的索引表中的数据;暂停数据记录的入库;根据所述多个节点包括的原始数据表得到所述数据库系统的历史数据;根据修改后的非基准分区策略对所述历史数据进行所述分区处理。7.一种管理节点,其特征在于,所述管理节点应用于数据库系统,所述数据...

【专利技术属性】
技术研发人员:李旭良张鹏董阳
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1