[发明专利]一种数据存储方法和装置有效
申请号: | 201710343493.2 | 申请日: | 2017-05-16 |
公开(公告)号: | CN107256233B | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 李振炜;李远策;陈永强;翟鑫达 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/245;G06F3/06 |
代理公司: | 北京恒博知识产权代理有限公司 11528 | 代理人: | 范胜祥 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 存储 方法 装置 | ||
本发明公开了一种数据存储方法和装置。其中方法包括:预设磁盘中的各页可存储的行的数量为N,N为自然数;对于数据表中待存储的每一列,为其分配一个包含一组页的列块,并将该列中的数据按顺序存储到该列块中的各页中,其中每一个页中存储该列中的N行数据;在接收到数据查询请求时,根据所述查询请求对应的列,确定待查询的列块,根据所述查询请求命中的对应列中的行,确定该列块中的目标页;将该目标页中的数据读取到内存中,根据所述数据查询请求进行查询。该技术方案通过对列式存储的改进,实现了在确定待查询数据所在行的情况下,快速定位到数据地址,避免读取和遍历大量不必要的数据,加快了查询速度。
技术领域
本发明涉及计算机技术领域,具体涉及一种数据存储方法和装置。
背景技术
在大数据场景下,列式存储相对于行式存储有着显著的优势。然而目前存在的问题是:即使能够确定待查询数据在数据表中处于第几行,我们也并不知道该行的数据的具体位置。而许多列式存储文件对磁盘的空间占用大,如果对其进行遍历,不可避免地会读取大量无用数据,导致查询速度慢,效率低,资源占用高。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据存储方法和装置。
依据本发明的一个方面,提供了一种数据存储方法,包括:
预设磁盘中的各页可存储的行的数量为N,N为自然数;
对于数据表中待存储的每一列,为其分配一个包含一组页的列块,并将该列中的数据按顺序存储到该列块中的各页中,其中每一个页中存储该列中的N行数据;
在接收到数据查询请求时,根据所述查询请求对应的列,确定待查询的列块,根据所述查询请求命中的对应列中的行,确定该列块中的目标页;
将该目标页中的数据读取到内存中,根据所述数据查询请求进行查询。
可选地,该方法还包括:
为各列块生成统计信息,并与各列块对应保存;
所述统计信息包括如下的一种或多种:该列块中的各页对磁盘空间的占用情况,该列块中的各页在磁盘中的偏移量,该列块中各页中存储的数据在原数据表中的行数范围。
可选地,该方法还包括:
为各列块中的各页按顺序进行编号;
所述该列块中各页中存储的数据在原数据表中的行数范围是根据各页的编号和各页可存储的行的数量为N计算得到的。
可选地,所述根据所述查询请求命中的对应列中的行,确定该列块中的目标页包括:
根据所述查询请求命中的对应列中的行在原数据表中的行数和待查询的列块的统计信息,确定所述查询请求命中的对应列中的行所在的页。
可选地,所述查询请求命中的对应列中的行在原数据表中的行数是根据该查询请求对应的目标数据表的索引得到的。
依据本发明的另一方面,提供了一种数据存储装置,包括:
存储单元,适于预设磁盘中的各页可存储的行的数量为N,N为自然数;对于数据表中待存储的每一列,为其分配一个包含一组页的列块,并将该列中的数据按顺序存储到该列块中的各页中,其中每一个页中存储该列中的N行数据;
查询单元,适于在接收到数据查询请求时,根据所述查询请求对应的列,确定待查询的列块,根据所述查询请求命中的对应列中的行,确定该列块中的目标页;将该目标页中的数据读取到内存中,根据所述数据查询请求进行查询。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710343493.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种信息推荐方法和装置
- 下一篇:一种网页文本调整方法及其设备
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置