数据存储、查询方法和装置的制造方法

文档序号:8339609阅读:376来源:国知局
数据存储、查询方法和装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,特别是涉及一种数据存储、查询方法和装置。
【背景技术】
[0002] 随着计算机技术的进步,计算机技术对人们的生活、工作产生了极大的影响,产生 了大量的数据需要计算机存储和处理。目前,计算机所要存储的数据已经由原来的MB (兆 字节)、GB (千兆字节)数量级,上升到了 TB (万亿字节)、甚至PB (千万亿字节)数量级,面 对数据的爆炸式增长,如何降低数据存储成本已成为人们急需解决的问题。
[0003] 传统的降低数据存储成本的手段,一般是直接对数据进行压缩处理后存储,然而, 这种牺牲了计算时间来换取地存储空间的方式,降低了数据的使用效率,比如查询数据时 必须将压缩的数据全部解压缩才能使用。

【发明内容】

[0004] 基于此,有必要针对传统的压缩数据的方法降低了数据的使用效率的问题,提供 一种数据存储方法和装置、数据查询方法和装置。
[0005] -种数据存储方法,待存储数据包括原始数据标识和与所述原始数据标识对应的 原始数据内容,所述方法包括:
[0006] 根据所述原始数据标识对所述待存储数据进行聚类,每一类分别对应一个数据 块,并根据所述数据块对应的待存储数据的原始数据标识生成数据块标识;
[0007] 将所述数据块对应的待存储数据的原始数据内容进行压缩,将压缩数据内容存储 在所述数据块的数据区,并获得所述压缩数据内容的地址标识;
[0008] 根据所述数据块对应的待存储数据的原始数据标识和所述地址标识生成索引,并 将所述索引存储于所述数据块的索引区。
[0009] -种数据存储装置,待存储数据包括原始数据标识和与所述原始数据标识对应的 原始数据内容,所述装置包括:
[0010] 数据块生成模块,用于根据所述原始数据标识对所述待存储数据进行聚类,每一 类分别对应一个数据块,并根据所述数据块对应的待存储数据的原始数据标识生成数据块 标识;
[0011] 原始数据内容压缩模块,用于将所述数据块对应的待存储数据的原始数据内容进 行压缩,将压缩数据内容存储在所述数据块的数据区,并获得所述压缩数据内容的地址标 识;
[0012] 索引生成模块,用于根据所述数据块对应的待存储数据的原始数据标识和所述地 址标识生成索引,并将所述索引存储于所述数据块的索引区。
[0013] 上述数据存储方法和装置,将待存储数据进行聚类后,每一类待存储数据分别对 应一个数据块,并根据数据块对应的待存储数据的原始数据标识生成数据块标识,而数据 块包括索引区和数据区,数据区存储了压缩数据内容,索引区存储了根据原始数据标识和 数据区中压缩数据内容的地址标识生成的索引。查询数据时,可以直接根据查询数据标识 确定查询数据所在的数据块,根据数据块中的索引获得查询数据内容的地址标识,从而可 以根据该地址标识从数据区中获取压缩查询数据内容,解压缩后便可获得压缩查询数据内 容。既可以达到很好的压缩效果,减少存储数据所占的空间,又能快速定位数据所在位置, 实现快速查询数据,而无需将所有压缩数据解压缩,极大地提高了数据的使用效率。
[0014] 一种数据查询方法,所述方法包括:
[0015] 获取原始查询数据标识;
[0016] 根据所述原始查询数据标识和预存的数据块标识确定所述原始查询数据标识所 对应的数据块;
[0017] 根据所述数据块的索引区中的索引,获得与所述原始查询数据标识对应的地址标 识;
[0018] 根据所述地址标识从所述数据块的数据区获取压缩查询数据内容,解压缩所述压 缩查询数据内容,获得查询数据内容。
[0019] 一种数据查询装置,所述装置包括:
[0020] 原始查询数据标识获取模块,用于获取原始查询数据标识;
[0021] 数据块确定模块,用于根据所述原始查询数据标识和预存的数据块标识确定所述 原始查询数据标识所对应的数据块;
[0022] 地址标识获取模块,用于根据所述数据块的索引区中的索引,获得与所述原始查 询数据标识对应的地址标识;
[0023] 查询数据内容获取模块,用于根据所述地址标识从所述数据块的数据区获取压缩 查询数据内容,解压缩模块,用于解压缩所述压缩查询数据内容,获得查询数据内容。
[0024] 上述数据查询方法和装置,获取原始查询数据标识后,通过该原始查询数据标识 和预存的数据块标识可以确定原始查询数据标识所对应的数据块,则确定了查询数据所在 的数据块,从数据块中的索引区中获得与原始查询数据标识对应的地址标识,从而根据该 地址标识可以从数据块中的数据区获取压缩查询数据内容,将压缩查询数据内容解压缩便 可获得查询数据内容。可快速定位数据所在位置,实现快速检索,而无需将所有压缩数据解 压缩,极大地提高了数据的使用效率。
【附图说明】
[0025] 图1为一个实施例中数据存储方法的流程示意图;
[0026] 图2为一个实施例中从数据块对应的待存储数据的原始数据标识中截去低位部 分,获得压缩数据标识,并将压缩数据标识和压缩数据内容的地址标识对应存储于数据块 的索引区的步骤的流程示意图;
[0027] 图3为一个实施例中将数据块对应的待存储数据的原始数据内容进行压缩,将压 缩数据内容存储在数据块的数据区,并获得压缩数据内容的地址标识的步骤的流程示意 图;
[0028] 图4为一个实施例中生成解码加速表的步骤的流程示意图;
[0029] 图5为一个具体应用场景中数据块的结构框图;
[0030] 图6为一个实施例中数据查询方法的流程示意图;
[0031] 图7为一个实施例中截去原始查询数据标识的低位部分,获得压缩查询数据标 识,获取数据块的索引区中存储的压缩查询数据标识对应的地址标识的步骤的流程示意 图;
[0032] 图8为一个具体应用场景中哈夫曼树和解码加速表的示意图;
[0033] 图9为一个实施例中数据存储装置的结构框图;
[0034] 图10为一个实施例中索引生成模块的结构框图;
[0035] 图11为一个实施例中原始数据内容压缩模块的结构框图;
[0036] 图12为另一个实施例中数据存储装置的结构框图;
[0037] 图13为一个实施例中数据查询装置的结构框图;
[0038] 图14为一个实施例中地址标识获取模块的结构框图;
[0039] 图15为一个实施例中第一获取模块的结构框图;
[0040] 图16为另一个实施例中第一获取模块的结构框图;
[0041] 图17为一个实施例中查询数据内容获取模块的结构框图;
[0042] 图18为一个实施例中能实现本发明实施例的一个计算机系统的模块图。
【具体实施方式】
[0043] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0044] 可以理解,本发明所使用的术语"第一"、"第二"等可在本文中用于描述各种元件, 但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来 说,在不脱离本发明的范围的情况下,可以将第一预设位数称为第二预设位数,且类似地, 可将第二预设位数称为第一预设位数。第一预设位数和第二预设位数两者都是预设位数, 但其不是同一预设位数。
[0045] 除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形 式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进 行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执 行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的 术语"和/或"涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组 合。
[0046] 如图1所示,在一个实施例中,提供了一种数据存储方法,该方法包括:
[0047] 步骤102,根据原始数据标识对待存储数据进行聚类,每一类分别对应一个数据 块,并根据数据块对应的待存储数据的原始数据标识生成数据块标识。
[0048] 待存储数据包括原始数据标识和与原始数据标识对应的原始数据内容。"原始"表 示数据原本的状态,未经压缩或其它处理。原始数据标识可以是待存储数据的键(key),可 用于区分不同的待存储数据。对待存储数据进行聚类,可以将具有公共部分的原始数据标 识集中存储,并将各个原始数据标识的公共部分抽取出来,不再重复存储,存储原始数据标 识时可只存储非公共部分,达到对原始数据标识进行定长压缩的目的。而定长压缩后的数 据依然具备随机访问的特性,便于查找。
[0049] 数据块是一组或按顺序连续排列在一起的几组记录,是主存储器与输入、输出设 备或外存储器之间进行传输的一个数据单位。可以将数据块存储于计算机的内存中。将待 存储数据根据原始数据标识进行聚类后,每一类对应一个数据块,并根据数据块对应的待 存储数据的原始数据标识生成数据块标识。这样在查询数据时,可根据查询数据标识便可 定位数据所在的数据块,从而达到快速查找的目的。
[0050] 步骤104,将数据块对应的待存储数据的原始数据内容进行压缩,将压缩数据内容 存储在数据块的数据区,并获得压缩数据内容的地址标识。
[0051] 为了获得较大的压缩率,可使用变长编码对原始数据内容进行压缩。变长编码就 是熵编码,它是以每个数据单元的出现概率或频率为依据的一种编码方式,让出现最多的 码字符用最短的编码标识,这样尽可能的缩短了编码长度;最后的编码结果是
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1