CN112905587B - 数据库的数据管理方法、装置及电子设备 - Google Patents

数据库的数据管理方法、装置及电子设备 Download PDF

Info

Publication number
CN112905587B
CN112905587B CN201911228916.1A CN201911228916A CN112905587B CN 112905587 B CN112905587 B CN 112905587B CN 201911228916 A CN201911228916 A CN 201911228916A CN 112905587 B CN112905587 B CN 112905587B
Authority
CN
China
Prior art keywords
data
partition
stored
tables
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911228916.1A
Other languages
English (en)
Other versions
CN112905587A (zh
Inventor
陈骋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201911228916.1A priority Critical patent/CN112905587B/zh
Publication of CN112905587A publication Critical patent/CN112905587A/zh
Application granted granted Critical
Publication of CN112905587B publication Critical patent/CN112905587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种关于数据库的数据管理方法、装置、电子设备及计算机可读存储介质。数据库设置有两个以上相同格式的表,每个表的所有行设置有行主键值,每个表包括至少一个对应的分区,以及每个分区配置特定的分区服务器,该方法包括:将待写入数据的对象属性确定为待存储表中的行主键值,所述待存储表为所述两个以上相同格式的表中用于存储所述待写入数据的表;根据所述行主键值和表的数量确定所述待存储表的表序号;基于所述待存储表的表序号、所述行主键值确定待存储分区,所述待存储分区为所述待存储表中的所述行主键值所在的分区;将所述待写入数据写入所述待存储分区对应的分区服务器。

Description

数据库的数据管理方法、装置及电子设备
技术领域
本发明涉及云存储技术领域,尤其涉及一种数据库的数据管理方法、装置、电子设备和计算机可存储介质。
背景技术
部分分布式存储的非关系型数据库(NoSql),例如HBase、HyperTable这类数据库在进行数据写入和读取时,会根据每行数据的行主键(Rowkey)按字典序将数据划分到不同的分区(region)中,而各个region会分别分配到集群中不同的分区服务器(regionServer)上。大量行主键前缀相同的数据写入时,会造成分区服务器流量过大,导致性能下降甚至不可用的热点问题。相关技术中,一种方式是使用哈希散列对行主键值再哈希,以将数据分散到不同的分区上;另一种方式是通过给行主键值随机前缀降低行主键的规律性,以将数据分散到不同的分区。若采用第一种方式,会改变行主键的有序性,从而很难通过关键字进行批量数据查询,极大限制了数据库的功能和性能,而第二种方式在查询单挑数据时,要遍历多种前缀才能准确获得数据,查询效率低。
发明内容
本发明的目的在于提供一种数据库的数据管理方法、装置、电子设备及计算机可读存储介质,以解决相关技术中的至少部分问题。
根据本发明的第一方面,提供了一种数据库的数据管理方法,所述数据库设置有两个以上相同格式的表,每个表预设置有至少一个分区,每个分区对应设置分区服务器,
所述方法包括:
将待写入数据的对象属性确定为待存储表中的行主键值,所述待存储表为所述两个以上相同格式的表中用于存储所述待写入数据的表;
根据所述行主键值和表的数量确定所述待存储表的表序号;
基于所述待存储表的表序号、所述行主键值确定待存储分区,所述待存储分区为所述待存储表中的所述行主键值所在的分区;
将所述待写入数据写入所述待存储分区对应的分区服务器。
优选地,所述根据所述行主键值和表的数量确定所述待存储表的表序号,包括:
对所述行主键值进行哈希变换,以得到哈希值;
根据所述哈希值与表的数量确定所述待存储表的表序号。
优选地,所述根据所述哈希值与表的数量确定所述待存储表的表序号,包括:
基于所述哈希值和表的数量进行求余计算,以得到余数;
将所述余数确定为所述待存储表的表序号。
优选地,所述基于所述待存储表的表序号、所述行主键值确定待存储分区,包括:
根据所述表序号所述两个以上相同格式的表确定出待存储表;
根据所述行主键值确定所述待存储表中、所述待写入数据的写入行所属的待存储分区。
优选地,所述方法还包括:
对所述两个以上相同格式的表的数量乘以预设扩容值,以对所述数据块中的表进行扩容。
优选地,所述将待写入数据的对象属性确定为待存储表中的行主键值,包括:
在接收到待写入数据时,将待写入数据的对象属性确定为待存储表中的行主键值,所述待写入数据中包括该待写入数据的对象属性。
根据本发明的第二方面,提供了一种数据库的数据管理方法,所述数据库设置有两个以上相同格式的表,每个表预设置有至少一个分区,每个分区对应设置分区服务器,所述方法包括:
将待读取数据的对象属性确定为存储表中的行主键值,所述存储表为所述两个以上相同格式的表存储所述待读取数据的表;
根据所述行主键值和表的数量确定所述存储表的表序号;
基于所述存储表的表序号、所述行主键值确定所述待读取数据在所述存储表中的存储分区;
根据所述存储分区确定所述待读取数据所在的分区服务器;
从所述分区服务器中读取所述待读取数据。
根据本发明的第三方面,提供了一种数据库的数据管理装置所述数据库设置有两个以上相同格式的表,每个表预设置有至少一个分区,每个分区对应设置分区服务器,
所述装置包括:
第一确定模块,用于将待写入数据的对象属性确定为待存储表中的行主键值,所述待存储表为所述两个以上相同格式的表中用于存储所述待写入数据的表;
第二确定模块,用于根据所述行主键值和表的数量确定所述待存储表的表序号;
第三确定模块,用于基于所述待存储表的表序号、所述行主键值确定待存储分区,所述待存储分区为所述待存储表中的所述行主键值所在的分区;
数据写入模块,用于将所述待写入数据写入所述待存储分区对应的分区服务器。
根据本发明的第四方面,提供了一种数据库的数据管理装置,所述数据库设置有两个以上相同格式的表,每个表预设置有至少一个分区,每个分区对应设置分区服务器,所述方法包括:
第四确定模块,用于将待读取数据的对象属性确定为存储表中的行主键值,所述存储表为所述两个以上相同格式的表存储所述待读取数据的表;
第五确定模块,用于根据所述行主键值和表的数量确定所述存储表的表序号;
第六确定模块,用于基于所述存储表的表序号、所述行主键值确定所述待读取数据在所述存储表中的存储分区;
第七确定模块,用于根据所述存储分区确定所述待读取数据所在的分区服务器;
数据读取模块,用于从所述分区服务器中读取所述待读取数据。
根据本发明的第五方面,提供了一种电子设备,包括:
处理器和存储器,
所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行第一方面、第二方面所述数据库的数据管理方法。
根据本发明的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现第一方面、第二方面所述数据库的数据管理方法。
本发明实施例提供的数据库的数据管理方法、装置及电子设备,在数据库中设置多张相同格式的表,可以降低单表的压力,以及本发明实施例中将数据的对象属性确定为表中的行主键值,进而确定数据存储的表的表序号,以将输入分配到不同的表,且写入表中不同的分区中,进而分配到不同的分区服务器存储,使得分区服务器的流量下降,解决了其热点问题,在保障服务质量的同时,降低了分区服务器的资源压力。另一方面,由于本发明实施例中,数据的对象属性确定为表中的行主键值,相关性较大的数据会物理聚合在一起,即存储到同一个分区服务器中,因此,在进行数据读取(数据查询)时,可以避免无效数据资源占用,快速定位数据所在位置,提高数据读取效率。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1为可用于实现本发明实施例的电子设备的硬件配置结构方框图。
图2为本发明一实施例的数据库的数据管理方法流程图。
图3为本发明第一实施例的数据查询步骤的具体流程图。
图4为本发明第二实施例的数据查询步骤的具体流程图。
图5为本发明实施例的关于数据库的数据管理装置的结构方框图。
图6为本发明实施例的数据写入模块的结构方框图。
图7为本发明第一实施例的数据查询模块的结构方框图。
图8为本发明第二实施例的数据查询模块的结构方框图。
图9为本发明实施例的电子设备的结构方框图。
图10为本发明另一实施例的数据库的数据管理方法。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人物已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出可以实现本发明的实施例的电子设备1000的硬件配置的框图。
电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑、云存储服务器等。
如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括WiFi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项数据库的数据管理方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如电子设备1000可以只涉及处理器1100和存储装置1200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
在本发明一个实施例中,提供了一种数据库的数据管理方法。这里数据库是指例如HBase、HyperTable等类型的部分分布式存储的非关系型数据库(NoSql)。
在本发明中,数据库可以设置有两个以上相同格式的表,每个表的所有行设置有行主键值,每个表包括至少一个对应的分区,以及每个分区配置特定的分区服务器。
从而,不同的表会分配不同的分区服务器。
在数据库中设置的表通常至少具有两列,一列表示行主键值,用于索引表的内容;另一列为行主键值对应的数据信息,其他列后续可以根据具体需求进行配置。表中设置的行主键值列可以使数据在写入时按字典序排列,因此可以依旧保留行主键值的有序性,便于后续的数据快速扫描。
在本发明实施例中,在设置表时,可以根据服务器系统的QPS(每秒查询率)和Scan(扫描)性能(多少张表则需要多少次并发),计算出一个合理的数值作为表的数量。
在另一些实施例中,不同的数据所需的表数量也并不相同,可以根据数据流量大小来设置表的数量。
通过这个分表的方式,为每个表根据需求合理的设置预分区,可以灵活设置分区数量,因此具有更好的可拓展性。
表的行主键值构建方式,将用于条件查询的部分作为每个表中行主键值的前缀。在一些实施例中,例如,可以将对象属性(objectKey)作为行主键值,能够快速查询相同存储空间(Bucket)下的数据对象(object)。其中,bucketId表示存储空间的ID,对象属性例如为存储文件(存储数据、存储对象)的名称、创建时间等等。
在一些实施例中,对于记录日志的前缀,例如可以将表中行主键值的前缀设置为时间,例如2019-09-10,如此通过分表可以将具有该前缀日期“2019-09-10”的数据均匀分散到不同的表中,并且每个表中以“2019-09-10”前缀开头的数据仍排列在一起。
上述的行主键值设置方式,使得相关性较大的数据会物理聚合在一起,以便于后续的数据全表扫描。
在数据库中设置两个以上表,及每个表对应配置了分区(预分区),每个分区对应设置分区服务器。当数据库需要写入数据时的步骤将结合图2给出详细描述。
该图为本发明实施例数据库的数据管理方法流程图,该数据管理方法可以是由电子设备(例如,云存储服务器)实施,该电子设备例如可以是如图1所示的电子设备1000。
参考图2,数据库的数据管理方法包括以下步骤:
步骤202,将待写入数据的对象属性确定为待存储表中的行主键值,所述待存储表为所述两个以上相同格式的表中用于存储所述待写入数据的表;
步骤204,根据所述行主键值和表的数量确定所述待存储表的表序号;以及
步骤206,基于所述待存储表的表序号、所述行主键值确定待存储分区,所述待存储分区为所述待存储表中的所述行主键值所在的分区;
步骤208,将所述待写入数据写入所述待存储分区对应的分区服务器。
在本发明实施例中,数据库中设置至少两个表,每个表预设置有至少一个分区,每个分区对应设置分区服务器。其中,本发明中预设置的分区可以为空的分区,每个分区有确定的起始键值和终止键值,从而在数据写入时,根据数据确定的行键值,就可以将数据均匀写入各个分区,从而可以避免数据写入的热点问题。
当数据库写入数据时,可以获取待写入数据的对象属性,其中,对象属性例如可以为数据的数据名称、数据的时间戳、数据来源的主机的标识符、产生数据的进程的进程标识符(PID)等中的一个或者多个的组合。
在本发明实施例中,可以将待写入数据的对象属性确定为存储表中的行主键值,例如,可以将对象属性确定为存储表中主键列中的分区键对应的键值。
示例性地,数据库中可以包括至少两张表(如此,可以降低单表的数据存储压力),可以通过表序号来区分该至少两张表。在本发明实施例中,可以根据行主键值和表的数量确定存储表的表序号,示例性地,可以先对行主键值进行哈希变换得到哈希值,进一步通过该哈希值和表的数量来确定存储表的表序号,以确定待写入的数据写入哪个表。在一些实施例中,可以对哈希值和表的数量进行求余计算得到余数,可以将求得的余数确定为存储表的表序号。
对于每张表,可以根据行主键的值水平分割成至少一个分区(region)的。一个分区可以包含表中所有行主键位于分区的起始键值和终止键值之间的行。在本发明实施例中,根据表序号从两个以上相同格式的表确定出待存储表,进而根据行主键值确定所述待存储表中、所述待写入数据的写入行所属的待存储分区可以根据表序号确定待写入数据对应的表,以及根据待写入数据的行主键值(参照步骤202)来确定数据所在表中的行属于哪个分区。例如,一张表中包括有A、B、C三个分区,数据的行主键值位于B分区的起始键值和终止键值之间,则可以确定该数据写入B分区。
根据本发明一实施例,可以为每个分区配置对应的分区服务器,以用于存储数据。在确定数据的行主键所属分区后,可以进一步确定将该数据写入该分区对应的分区服务器
首先通过hash算法将写入数据的Rowkey转换为hash值,每个数据的Rowkey是唯一对应。假定该表被拆分为n个,即所创建的表的数量为n,则通过hash%n求余计算得到对应的表序号,而不同的表会分配不同的regionServer。
这里,数据写入包括:插入数据或者对数据的修改。
因此当大量数据写入时,和单表相比,热点regionServer的流量将会下降n倍。
现在,参考图3-4和图10,分别给出了本发明数据查询步骤的具体流程。
如图10所示,一种数据库的数据管理方法,数据库设置有两个以上相同格式的表,该方法可以包括:
步骤1002,将待读取数据的对象属性确定为存储表中的行主键值,存储表为两个以上相同格式的表存储待读取数据所属的表;
步骤1004,根据行主键值和表的数量确定存储表的表序号;
步骤1006,基于存储表的表序号、行主键值确定待读取数据在存储表中的存储分区;
步骤1008,根据存储分区确定待读取数据所在的分区服务器;
步骤1010,从分区服务器中读取待读取数据。
下面再结合图3和图4对本发明的数据库的数据管理方法中的数据查询过程进一步详细描述。
其中,图3显示了从数据库查询单个数据的步骤流程图,图4显示了从数据库按条件查询数据的步骤流程图。
如图3所示,从数据库查询单个数据的步骤包括:
步骤302,通过Hash算法将数据的Rowkey转换为hash值;
步骤304,通过hash%n求余得到Rowkey对应的表序号,n为所创建的表的数量;以及
步骤306,根据所述表序号从对应表的分区服务器查询所述数据。
当需要查询单个数据时,系统会先根据Rowkey计算出hash值得到对应的表序号,再从对应的表中利用Rowkey快速查询。因此,查询单条数据时同样可以通过hash算法快速定位到数据所在表,并根据对应的Rowkey得到目标数据。
如图4所示,从数据库按条件查询数据的步骤包括:
步骤402,全局扫描数据库中的所有表;以及
步骤404,从符合所述条件的对应表的分区服务器查询所述数据。
在图4所示的实施例中,例如根据扫描数据库中的所有表,例如可以根据待查询数据的行主键值和表数量确定数据分布在哪个表中,进而锁定表。再锁定表中的分区,根据分区和分区服务器的对应关系,可以确定当前待查询的数据分布存储在哪些分区服务器中,例如,进一步获取分区服务器的地址,从分区服务器中读取该待查询的数据。
如上文所述,在创建表时,将数据的对象属性作为表中Rowkey,或将数据的对象属性(例如,可以用于条件查询的部分)作为每个表中Rowkey的前缀。在数据存储(数据写入)过程中,可以将相关性较大的数据物理地聚合在一起,例如相同regionServer中,一方面能够降低单表的压力,另一方面,可以解决regionServer在大量写入时的热点问题。当需要条件查询(如前缀查询)时,会扫描全部表,但是即使全表扫描,由于表中数据是按照Rowkey的值进行字典序排列,相同前缀的数据会存储在一起,大概率在相同regionServer中,即相关性较大的数据会物理聚合在一起,在遍历时也能够很好地获取到查询到待查询的数据,数据查询效率高。如此,当全局扫描时能够只需扫描个别regionServer便可获得对应数据。避免了无效数据的资源占用,极大的提高了扫描效率。
本发明实施例提供的数据库的分表方式,为每个表根据需求合理的设置预分区,同时可以利用hash算法将写入数据均匀分配到各个表中。既保留了每个表中存储的Rowkey的有序性,又能够根据Rowkey的名称前缀对数据进行快速扫描。
本发明对热点数据进行分表,不同的表分配不同的regionServer,相比单表热点regionServer的流量将会显著下降,降低单表的数据读写压力,从而可以解决大量相似数据写入和读取部分NoSql型数据库时造成的regionServer热点问题,同时无需修改Rowkey,保证了数据库的查询效率。
相比现有技术改变Rowkey后进行存储的方式,本发明不会改变Rowkey的有序性,因此可以通过关键字批量快速查询数据。
相比现有技术随机前缀的方式,本发明能够在保证数据的有序性的前提下,在全表扫描及单条数据查询时均可以快速准确地获取数据,具有较高的数据库查询效率。
在本发明的另一个实施例中,还提供了一种关于数据库的数据管理装置2000,其中数据库设置有两个以上相同格式的表,每个表的所有行设置有行主键值,每个表包括至少一个对应的分区,以及每个分区配置特定的分区服务器,
如图5所示,数据管理装置2000包括:
数据写入模块2600,用于向数据库写入数据。
优选地,数据管理装置2000还包括数据查询模块2800,用于从数据库查询单个数据或者查询批量数据(从数据库按条件查询批量数据)。或者,进一步地,数据管理装置2000还包括数据查询模块2800’(图中未示出),用于从数据库按条件查询批量数据。
关于数据写入模块2600的结构可以参考图6,如图所示包括:
第一确定模块2620,用于将待写入数据的对象属性确定为待存储表中的行主键值,所述待存储表为所述两个以上相同格式的表中用于存储所述待写入数据的表;
第二确定模块2640,用于根据所述行主键值和表的数量确定所述待存储表的表序号;
第三确定模块2660,用于基于所述待存储表的表序号、所述行主键值确定待存储分区,所述待存储分区为所述待存储表中的所述行主键值所在的分区;
数据写入模块2680,用于将所述待写入数据写入所述待存储分区对应的分区服务器。
关于本发明第一实施例的数据查询模块2800的结构可以参考图7,如图所示包括:
所述数据查询模块2800包括:
第四确定模块2820,用于将待读取数据的对象属性确定为存储表中的行主键值,所述存储表为所述两个以上相同格式的表存储所述待读取数据的表;
第五确定模块2840,用于根据所述行主键值和表的数量确定所述存储表的表序号;
第六确定模块2860,用于基于所述存储表的表序号、所述行主键值确定所述待读取数据在所述存储表中的存储分区;
第七确定模块2880,用于根据所述存储分区确定所述待读取数据所在的分区服务器;
数据读取模块2810,用于从所述分区服务器中读取所述待读取数据。
关于本发明第二实施例的数据查询模块2800’(图中未示出)的结构可以参考图8,如图所示包括:
数据查询模块2800’包括:
扫描单元2850’,所述扫描单元2850’全局扫描数据库中的所有表;以及
查询单元2860’,从符合所述条件的对应表的分区服务器查询所述数据。
根据本发明的又一个实施例,还提供了一种电子设备,该电子设备3000可以是图1所示的电子设备1000。图9为本发明实施例的电子设备的结构方框图。
一方面,该电子设备3000可以包括前述的数据库的数据管理装置2000,用于实施本发明任意实施例的数据库的数据管理方法。
另一方面,如图9所示,电子设备3000可以包括存储器3200和处理器3400,存储器3200用于存储可执行的指令;该指令用于控制处理器3400执行前述的关于数据库的数据管理方法。
在本实施例中,电子设备3000可以是手机、平板电脑、掌上电脑、台式机、笔记本电脑、工作站、游戏机、云存储服务器等任意具有存储器3200以及处理器3400的电子产品。
最后,根据本发明的再一个实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现根据本发明任意实施例所述的关于数据库的数据管理方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人物来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人物来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人物能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (9)

1.一种数据库的数据管理方法,其特征在于,所述数据库设置有两个以上相同格式的表,每个表预设置有至少一个分区,每个分区对应设置分区服务器,
所述方法包括:
将待写入数据的对象属性确定为待存储表中的行主键值,所述待存储表为所述两个以上相同格式的表中用于存储所述待写入数据的表;
根据所述行主键值和表的数量确定所述待存储表的表序号;
基于所述待存储表的表序号、所述行主键值确定待存储分区,所述待存储分区为所述待存储表中的所述行主键值所在的分区;
将所述待写入数据写入所述待存储分区对应的分区服务器;其中,
所述根据所述行主键值和表的数量确定所述待存储表的表序号,包括:
对所述行主键值进行哈希变换,以得到哈希值;
根据所述哈希值与表的数量确定所述待存储表的表序号,具体包括:基于所述哈希值和表的数量进行求余计算,以得到余数;将所述余数确定为所述待存储表的表序号。
2.根据权利要求1所述的方法,其特征在于,所述基于所述待存储表的表序号、所述行主键值确定待存储分区,包括:
根据所述表序号从所述两个以上相同格式的表确定出待存储表;
根据所述行主键值确定所述待存储表中、所述待写入数据的写入行所属的待存储分区。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述两个以上相同格式的表的数量乘以预设扩容值,以对所述数据库中的表进行扩容。
4.根据权利要求1所述的方法,其特征在于,所述将待写入数据的对象属性确定为待存储表中的行主键值,包括:
在接收到待写入数据时,将待写入数据的对象属性确定为待存储表中的行主键值,所述待写入数据中包括该待写入数据的对象属性。
5.一种数据库的数据管理方法,其特征在于,所述数据库设置有两个以上相同格式的表,每个表预设置有至少一个分区,每个分区对应设置分区服务器,所述方法包括:
将待读取数据的对象属性确定为存储表中的行主键值,所述存储表为所述两个以上相同格式的表存储所述待读取数据的表;
根据所述行主键值和表的数量确定所述存储表的表序号;
基于所述存储表的表序号、所述行主键值确定所述待读取数据在所述存储表中的存储分区;
根据所述存储分区确定所述待读取数据所在的分区服务器;
从所述分区服务器中读取所述待读取数据;其中,
所述根据所述行主键值和表的数量确定所述存储表的表序号,包括:
对所述行主键值进行哈希变换,以得到哈希值;
根据所述哈希值与表的数量确定所述存储表的表序号,具体包括:基于所述哈希值和表的数量进行求余计算,以得到余数;将所述余数确定为所述存储表的表序号。
6.一种数据库的数据管理装置,其特征在于,所述数据库设置有两个以上相同格式的表,每个表预设置有至少一个分区,每个分区对应设置分区服务器,
所述装置包括:
第一确定模块,用于将待写入数据的对象属性确定为待存储表中的行主键值,所述待存储表为所述两个以上相同格式的表中用于存储所述待写入数据的表;
第二确定模块,用于根据所述行主键值和表的数量确定所述待存储表的表序号;
第三确定模块,用于基于所述待存储表的表序号、所述行主键值确定待存储分区,所述待存储分区为所述待存储表中的所述行主键值所在的分区;
数据写入模块,用于将所述待写入数据写入所述待存储分区对应的分区服务器;其中,
所述第二确定模块还用于对所述行主键值进行哈希变换,以得到哈希值;
根据所述哈希值与表的数量确定所述待存储表的表序号,具体包括:基于所述哈希值和表的数量进行求余计算,以得到余数;将所述余数确定为所述待存储表的表序号。
7.一种数据库的数据管理装置,其特征在于,所述数据库设置有两个以上相同格式的表,每个表预设置有至少一个分区,每个分区对应设置分区服务器,所述装置包括:
第四确定模块,用于将待读取数据的对象属性确定为存储表中的行主键值,所述存储表为所述两个以上相同格式的表存储所述待读取数据的表;
第五确定模块,用于根据所述行主键值和表的数量确定所述存储表的表序号;
第六确定模块,用于基于所述存储表的表序号、所述行主键值确定所述待读取数据在所述存储表中的存储分区;
第七确定模块,用于根据所述存储分区确定所述待读取数据所在的分区服务器;
数据读取模块,用于从所述分区服务器中读取所述待读取数据;其中,
所述第五确定模块还用于对所述行主键值进行哈希变换,以得到哈希值;
根据所述哈希值与表的数量确定所述存储表的表序号,具体包括:基于所述哈希值和表的数量进行求余计算,以得到余数;将所述余数确定为所述存储表的表序号。
8.一种电子设备,其特征在于,包括:
处理器和存储器,
所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据权利要求1至5中任一权利要求所述数据库的数据管理方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至5中任一权利要求所述数据库的数据管理方法。
CN201911228916.1A 2019-12-04 2019-12-04 数据库的数据管理方法、装置及电子设备 Active CN112905587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911228916.1A CN112905587B (zh) 2019-12-04 2019-12-04 数据库的数据管理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911228916.1A CN112905587B (zh) 2019-12-04 2019-12-04 数据库的数据管理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112905587A CN112905587A (zh) 2021-06-04
CN112905587B true CN112905587B (zh) 2024-05-14

Family

ID=76111122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911228916.1A Active CN112905587B (zh) 2019-12-04 2019-12-04 数据库的数据管理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112905587B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328515A (zh) * 2021-12-22 2022-04-12 宁夏中科嘉业新能源研究院(有限公司) 一种基于复合分配算法的数据存储方法

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077420A (zh) * 2014-07-21 2014-10-01 北京京东尚科信息技术有限公司 一种数据导入HBase数据库的方法和装置
CN104794123A (zh) * 2014-01-20 2015-07-22 阿里巴巴集团控股有限公司 一种为半结构化数据构建NoSQL数据库索引的方法及装置
CN107704527A (zh) * 2017-09-18 2018-02-16 华为技术有限公司 数据存储方法、装置及存储介质
CN108427684A (zh) * 2017-02-14 2018-08-21 华为技术有限公司 数据查询方法、装置及计算设备
CN108563923A (zh) * 2017-12-05 2018-09-21 华南理工大学 一种基因变异数据分布式存储方法及架构
CN108694218A (zh) * 2017-04-12 2018-10-23 大唐移动通信设备有限公司 一种数据写入及读取的方法和装置
CN109542898A (zh) * 2018-10-30 2019-03-29 天津字节跳动科技有限公司 资料库表格的数据存储方法、装置、电子设备及存储介质
CN109558091A (zh) * 2018-12-11 2019-04-02 广东省新代通信与网络创新研究院 查找表存储方法、装置及计算机可读存储介质
CN110069488A (zh) * 2017-09-30 2019-07-30 北京国双科技有限公司 一种数据存储方法、数据读取方法及其装置
CN110188096A (zh) * 2019-04-18 2019-08-30 阿里巴巴集团控股有限公司 一种数据记录的索引创建方法、装置及设备
CN110287197A (zh) * 2019-06-28 2019-09-27 微梦创科网络科技(中国)有限公司 一种数据存储方法、迁移方法及装置
CN110427438A (zh) * 2019-07-30 2019-11-08 中国工商银行股份有限公司 数据处理方法及其装置、电子设备和介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331509A (ja) * 2000-05-22 2001-11-30 Hitachi Ltd リレーショナルデータベース処理装置、リレーショナルデータベースの処理方法及びリレーショナルデータベースの処理プログラムを記録したコンピュータ読み取り可能な記録媒体
US9740724B2 (en) * 2014-04-29 2017-08-22 International Business Machines Corporation Data partitioning for high-efficiency data retrieval
CN105335411A (zh) * 2014-07-31 2016-02-17 国际商业机器公司 用于数据处理的方法和系统
US10496283B2 (en) * 2016-01-22 2019-12-03 Suraj Prabhakar WAGHULDE Adaptive prefix tree based order partitioned data storage system
US10417237B2 (en) * 2016-05-24 2019-09-17 International Business Machines Corporation Sorting tables in analytical databases

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104794123A (zh) * 2014-01-20 2015-07-22 阿里巴巴集团控股有限公司 一种为半结构化数据构建NoSQL数据库索引的方法及装置
CN104077420A (zh) * 2014-07-21 2014-10-01 北京京东尚科信息技术有限公司 一种数据导入HBase数据库的方法和装置
CN108427684A (zh) * 2017-02-14 2018-08-21 华为技术有限公司 数据查询方法、装置及计算设备
CN108694218A (zh) * 2017-04-12 2018-10-23 大唐移动通信设备有限公司 一种数据写入及读取的方法和装置
CN107704527A (zh) * 2017-09-18 2018-02-16 华为技术有限公司 数据存储方法、装置及存储介质
CN110069488A (zh) * 2017-09-30 2019-07-30 北京国双科技有限公司 一种数据存储方法、数据读取方法及其装置
CN108563923A (zh) * 2017-12-05 2018-09-21 华南理工大学 一种基因变异数据分布式存储方法及架构
CN109542898A (zh) * 2018-10-30 2019-03-29 天津字节跳动科技有限公司 资料库表格的数据存储方法、装置、电子设备及存储介质
CN109558091A (zh) * 2018-12-11 2019-04-02 广东省新代通信与网络创新研究院 查找表存储方法、装置及计算机可读存储介质
CN110188096A (zh) * 2019-04-18 2019-08-30 阿里巴巴集团控股有限公司 一种数据记录的索引创建方法、装置及设备
CN110287197A (zh) * 2019-06-28 2019-09-27 微梦创科网络科技(中国)有限公司 一种数据存储方法、迁移方法及装置
CN110427438A (zh) * 2019-07-30 2019-11-08 中国工商银行股份有限公司 数据处理方法及其装置、电子设备和介质

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
HBase数据库模式设计准则;袁晓东;;微型电脑应用(10);第74-77页 *
ORACLE数据库优化之分区技术;王三蕊;;电子技术与软件工程;20160622(12);第182-183页 *
Research on the Application of Bank Transaction Data Stream Storage based on HBase;Wang, Xiaoguo 等;PROCEEDINGS OF THE 2016 INTERNATIONAL CONFERENCE ON ENGINEERING MANAGEMENT (ICONF-EM 2016);第253-258页 *
一种基于NoSQL的气象非结构化数据产品存储方法;陈正旭;李爽爽;孙晓燕;;气象科技(03);第430-434页 *
表分区技术在短信增值业务中的研究与实现;刘玉红;罗晓沛;;计算机系统应用(11);第72-75页 *
面向云计算的键值型分布式存储系统研究;孙勇;林菲;王宝军;;电子学报;20130715(07);第1406-1411页 *

Also Published As

Publication number Publication date
CN112905587A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
US11132346B2 (en) Information processing method and apparatus
US11249969B2 (en) Data storage method and apparatus, and storage medium
US9934324B2 (en) Index structure to accelerate graph traversal
CN105488050A (zh) 一种数据库多索引方法、装置及系统
US20210133217A1 (en) Method and apparatus for importing data into graph database, electronic device and medium
CN102929987A (zh) 一种基于标识组合的搜索方法及装置
US20140337392A1 (en) Flexible partitioning of data
CN110083579A (zh) 增量数据同步的方法、装置、计算机设备及计算机存储介质
US10936640B2 (en) Intelligent visualization of unstructured data in column-oriented data tables
CN111984653A (zh) 一种数据查询的方法、系统、设备及可读存储介质
CN114579561A (zh) 数据处理方法和装置、存储介质
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
US20150248445A1 (en) Method and system for implementing an array using different data structures
CN109815241B (zh) 数据查询方法、装置、设备和存储介质
CN112905587B (zh) 数据库的数据管理方法、装置及电子设备
CN109697234B (zh) 实体的多属性信息查询方法、装置、服务器和介质
CN109542912B (zh) 区间数据存储方法、装置、服务器及存储介质
CN109101191B (zh) 数据存储方法、装置和存储介质以及电子设备
CN115328950A (zh) 一种基于二级索引的hbase查询方法、终端设备及存储介质
CN111858158B (zh) 数据处理方法、装置及电子设备
KR102236521B1 (ko) 데이터를 처리하기 위한 방법 및 장치
CN114020745A (zh) 一种索引构建方法、装置、电子设备和存储介质
CN111309704B (zh) 数据库操作方法和数据库操作系统
CN112307061A (zh) 用于查询数据的方法和装置
CN110888839A (zh) 数据存储及数据搜索方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant