数据存储及查询方法、装置及数据库系统制造方法及图纸

技术编号:33064030 阅读:25 留言:0更新日期:2022-04-15 09:53
本说明书的实施例提供数据存储及查询方法、装置及数据库系统。数据库系统包括内存层和数据存储介质。在进行数据存储时,先将待存储数据存储到内存层中的内存表。在内存表被存满数据时,将内存表的存储数据逐层写入数据存储介质。在针对数据存储介质逐层写入时,对待写入存储数据与当前分层存储层的数据存储文件中的全部存储数据进行数据合并;将合并后的存储数据的Value切分为主数据块以及对应的附加数据块,并确定出各个主数据块以及对应附加数据块在数据存储介质的存储位置。然后,将各个主数据块以及对应附加数据块存储到数据存储介质的对应存储位置。在进行数据查询时,自数据库系统的内存层起逐层进行数据查询。数据库系统的内存层起逐层进行数据查询。数据库系统的内存层起逐层进行数据查询。

【技术实现步骤摘要】
数据存储及查询方法、装置及数据库系统


[0001]本说明书实施例通常涉及数据存储领域,尤其涉及可适用于大Value数据存储的数据存储方法及装置、数据查询方法及装置以及数据库系统。

技术介绍

[0002]在传统数据存储机制中,数据库系统会将待存储数据处理为Key

Value(KV)数据,并将KV数据存储到数据库系统中的内存层或数据存储介质中。为了提升数据写入性能,数据库系统采用分层组织方式对待存储数据进行数据组织,例如,采用类LSM Tree的结构,然后将数据组织后的待存储数据划分到不同的数据存储文件中,并将不同的数据存储文件存储到内存层或数据存储介质的不同分层存储层中。例如,数据库系统计算待存储数据的Key的哈希值,并根据所计算出的哈希值,将该Key所对应的Value划分到不同的哈希值范围(Hash Range),然后基于Hash Range将待存储数据划分至不同的数据存储文件中。
[0003]在专利公开号为CN113407550A的专利技术专利申请案中公开了一种数据存储及查询方案。在该数据存储及查询方案中,在进行数本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,包括:将待存储数据写入数据库系统的内存层的内存表,所述待存储数据包括Key

Value对中的Value;响应于所述内存表写满,自所述数据库系统的数据存储介质的存储层中的顶层分层存储层开始,按照下述方式对所述内存表的存储数据逐层执行数据写入,直到不再触发下层数据写入:读取当前分层存储层的数据存储文件中的全部存储数据;将所写入的上层存储数据与所读取的存储数据合并;将合并后的存储数据中与每个Key对应的Value切分为主数据块以及对应的附加数据块;分别基于各个主数据块所对应的key的普通哈希值和完美哈希值,确定各个主数据块所在数据存储文件以及各个主数据块在所在数据存储文件中的偏移量,每个数据存储文件对应一个哈希值范围;以及根据所确定出的所在数据存储文件以及在所在数据存储文件中的偏移量,对各个主数据块以及对应的附加数据块进行数据写入,所写入的每个主数据块包括元数据,所述元数据包括附加数据块个数、各个附加数据块在数据存储文件中的偏移量和数据长度。2.如权利要求1所述的数据存储方法,其中,所述各个主数据块中的一个或多个主数据块不包括对应的附加数据块,以及针对不包括附加数据块的主数据块,在写入数据存储文件时不包括元数据。3.如权利要求1所述的数据存储方法,其中,所述下层数据写入响应于所述当前分层存储层中的一个或多个数据存储文件在完成当前数据写入后的文件大小达到或超过预定阈值而触发,所写入的存储数据包括所述当前分层存储层中达到或超过所述预定阈值的数据存储文件中的存储数据。4.如权利要求1所述的数据存储方法,其中,所述数据存储文件中的附加数据块被连续存储或分开存储。5.如权利要求1所述的数据存储方法,其中,所述合并后的存储数据按照下述数据切分算法中的一种数据切分算法执行数据切分:基于数据使用频次的数据切分算法;基于原始数据表中的数据列的数据切分算法;基于数据时间戳范围的数据切分算法;基于边类型、边数量或边索引的图数据切分算法。6.如权利要求1所述的数据存储方法,其中,所述数据存储介质的存储层的分层层数包括预定层数,和/或各个分层存储层分别包括预定数目个数据存储文件。7.如权利要求6所述的数据存储方法,其中,各个分层存储层所包括的数据存储文件数目自上而下逐层增加。8.一种数据查询方法,包括:响应于接收到用户发起的数据查询请求,在数据库系统的内存层的内存表中进行数据查询,所述数据库系统按照如权利要求1到7中任一所述的方法进行数据存储;响应于针对所述内存层的数据查询结果未完全满足所述数据查询请求中的数据查询
条件,自所述数据库系统的存储层的顶层分层存储层开始,按照下述方式执行数据查询,直到完全满足所述数据查询条件或者完成底层分层存储层查询:响应于针对所述内存层或上层分层存储层的数据查询结果未完全满足所述数据查询条件,根据所述数据查询请求的目标数据的key的普通哈希值定位当前分层存储层中的数据存储文件以及根据所述key的完美哈希值定位主数据块在数据存储文件中的偏移量和数据长度;基于所定位的主数据块的偏移量和数据长度,从所在数据存储文件中读取主数据块;对所读取的主数据块进行解析以获取数据查询结果;响应于针对所述主数据块的数据查询结果未完全满足所述数据查询条件,获取所述主数据块中记录的附加数据块的偏移量和数据长度;基于所获取的附加数据块的偏移量和数据长度,从所在数据存储文件中读取所有附加数据块;对所读取的各个附加数据块进行解析以获取数据查询结果;以及将所得到的所有数据查询结果提供给所述用户。9.如权利要求8所述的数据查询方法,其中,各个附加数据块的数据读取并行执行。10.一种数据存储装置,包括:内存写入单元,将待存储数据写入数据库系统的内存层的内存表,所述待存储数据包括Key

Value对中的Value;以及数据存储介质写入单元,响应于所述内存表写满,将所述内存表的存储数据写入所述数据库系统的数据存储介质,其中,所述数据存储写入单元包括:数据读取模块,读取当前分层存储层的数据存储文件中的全部存储数据;数据合并模块,将所写入的上层存储数据与所读取的存储数据合并;数据切分模块,将合并后的存储数据中与每个Key对应的Value切分为主数据块以及对应的附加数据块;存储位置确定模块,分别基于各个主数据块所对应的key的普通哈希值和完美哈希值,确定各个主数据块所在数据存储文件以及各个主...

【专利技术属性】
技术研发人员:朱炳鹏江进付治钧宋杰袁琳
申请(专利权)人:北京蚂蚁云金融信息服务有限公司
类型:发明
国别省市:

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

1