数据存储结构的转换方法及装置的制造方法

文档序号:9506273阅读:337来源:国知局
数据存储结构的转换方法及装置的制造方法
【技术领域】
[0001] 本发明涉及数据库技术领域,具体而言,本发明涉及一种数据存储结构的转换方 法及装置。
【背景技术】
[0002] 随着信息时代的迅速发展,不仅在大企业,甚至一些小企业也积累了 TB量级的数 据,各种规模的组织开始有了处理大规模及多重数据种类的数据的需求,而传统的关系型 数据库(SQL数据库)在数据存储的可扩展方面几乎达到极限。为了解决大规模数据集合 及多重数据种类带来的挑战和大数据应用的难题,非关系型数据库(NoSQL数据库)应运而 生。
[0003] 常用的非关系型数据库包括KV(Key-Value,键值)存储数据库,其数据按照键值 对的形式进行组织、索引和存储。KV存储方式非常适合不涉及过多数据关系及业务关系 的数据存储业务,其能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能, KV存储数据库的可实现方式包括Redis和LevelDB等,LevelDB能够支持billion级别 的数据量,且在这个数量级别下还能够保持非常高的数据存储处理性能,同时,LevelDB可 将数据存储至磁盘,有利于数据的永久保存;但是,目前LevelDB的接口仅支持无变形的 key-value(键值对)型数据,接口较为单一,对业务的可扩展性较差。Redis是一种高性能 的key-value存储系统,其可支持多种value类型的数据存储结构,包括string(字符串) 类型、list (链表)类型、set (集合)类型、zset (有序集合)类型和hash(哈希)类型,但 是,为了保证较高的数据存储处理效率,其数据都是缓存在内存中,即Redis为一种内存型 数据库,因此该存储方式受物理内存限制,无法实现大数据存储。
[0004] 由此可见,如何实现一种数据存储处理效率较高、既支持多种类型的数据存储结 构、又不受物理内存限制的存储系统是目前急需解决的问题。

【发明内容】

[0005] 为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
[0006] 本发明的实施例提出了一种数据存储结构的转换方法,包括:
[0007] 提取基于原始存储结构的待转换数据中的第一数据单元及第二数据单元,并将所 述第一数据单元及所述第二数据单元进行合并以确定为转换存储结构中的键;
[0008] 基于所述待转换数据的原始存储结构,通过值设定规则确定所述转换存储结构中 的值;
[0009] 根据所述转换存储结构,将所述键及所述值组成的数据键值对存储至键值数据库 中。
[0010] 其中,所述值设定规则具体包括:
[0011] 当所述待转换数据的原始存储结构中包括第三数据单元时,将所述第三数据单元 确定为转换存储结构中的值;
[0012] 当所述待转换数据的原始存储结构中不包括第三数据单元时,将转换存储结构中 的值设为空值。
[0013] 优选地,当所述原始存储结构为hash存储结构时,所述提取基于原始存储结构的 待转换数据中的第一数据单元及第二数据单元,并将所述第一数据单元及所述第二数据单 元进行合并以确定为转换存储结构中的键的步骤,具体包括:
[0014] 提取基于hash存储结构的待转换数据中的key数据单元及field数据单元,并将 其进行合并以确定为转换存储结构中的键;
[0015] 其中,所述基于所述待转换数据的原始存储结构,通过值设定规则确定所述转换 存储结构中的值的步骤,具体包括:
[0016] 提取所述待转换数据中的value数据单元,并将其确定为转换存储结构中的值。
[0017] 优选地,当所述原始存储结构为set存储结构时,所述提取基于原始存储结构的 待转换数据中的第一数据单元及第二数据单元,并将所述第一数据单元及所述第二数据单 元进行合并以确定为转换存储结构中的键的步骤,具体包括:
[0018] 提取基于set存储结构的待转换数据中的key数据单元及member数据单元,并将 其进行合并以确定为转换存储结构中的键;
[0019] 其中,所述基于待转换数据的原始存储结构,通过值设定规则确定转换存储结构 中的值的步骤,具体包括:
[0020] 将转换存储结构中的值设为空值。
[0021] 优选地,该方法还包括:
[0022] 确定具有相同第一数据单元的待转换数据的数量;
[0023] 根据所述转换存储结构,将以预定的数量标识位为键、及所述具有相同第一数据 单元的待转换数据的数量为值组成的数量键值对与所述待转换数据相关联地存储至所述 键值数据库中。
[0024] 其中,所述预定的数量标识位至少包括:
[0025] 第一数据单元;可变量标识。
[0026] 优选地,
[0027] 数据存储结构的转换方法包括:
[0028] 当对所述键值数据库进行添加和/或删除操作时,对与添加和/或删除的数据键 值对相关联的数量键值对进行相应更新。
[0029] 本发明的另一实施例还提出了一种数据存储结构的转换装置,包括:
[0030] 键确定模块,用于提取基于原始存储结构的待转换数据中的第一数据单元及第二 数据单元,并将所述第一数据单元及所述第二数据单元进行合并以确定为转换存储结构中 的键;
[0031] 值确定模块,用于基于所述待转换数据的原始存储结构,通过值设定规则确定所 述转换存储结构中的值;
[0032] 数据键值对存储模块,用于根据所述转换存储结构,将所述键及所述值组成的数 据键值对存储至键值数据库中。
[0033] 其中,所述值设定规则具体包括:
[0034] 当所述待转换数据的原始存储结构中包括第三数据单元时,将所述第三数据单元 确定为转换存储结构中的值;
[0035] 当所述待转换数据的原始存储结构中不包括第三数据单元时,将转换存储结构中 的值设为空值。
[0036] 优选地,当所述原始存储结构为hash存储结构时,所述键确定模块具体用于提取 基于hash存储结构的待转换数据中的key数据单元及field数据单元,并将其进行合并以 确定为转换存储结构中的键;所述值确定模块具体用于提取所述待转换数据中的value数 据单元,并将其确定为转换存储结构中的值。
[0037] 优选地,当所述原始存储结构为set存储结构时,所述键确定模块具体用于提取 基于set存储结构的待转换数据中的key数据单元及member数据单元,并将其进行合并以 确定为转换存储结构中的键;所述值确定模块具体用于将转换存储结构中的值设为空值。
[0038] 优选地,该装置还包括:
[0039] 数量确定模块,用于确定具有相同第一数据单元的待转换数据的数量;
[0040] 数量键值对存储模块,用于根据所述转换存储结构,将以预定的数量标识位为键、 及所述具有相同第一数据单元的待转换数据的数量为值组成的数量键值对与所述待转换 数据相关联地存储至所述键值数据库中。
[0041 ] 其中,所述预定的数量标识位至少包括:
[0042] 第一数据单元;可变量标识。
[0043] 优选地,该装置还包括更新模块:
[0044] 更新模块,用于当对所述键值数据库进行添加和/或删除操作时,对与添加和/或 删除的数据键值对相关联的数量键值对进行相应更新。
[0045] 本发明的实施例中,提出了一种数据存储结构的转换方案,通过将基于原始存储 结构的数据转换存储为基于转换存储结构中的数据,实现对多种存储数据类型以统一的 转换存储结构的方式进行数据存储。进一步的,将支持多种value类型的数据存储结构 的Redis存储系统中的多种数据存储结构的数据,转存至仅支持无变形的键值对数据存储 结构的LevelDB存储系统,实现了在保证较高的数据存储处理效率的前提下,将受物理内 存限制的存储方式转换为以磁盘为数据存储目标的、不受物理内存限制的存储方式。通过 本发明,最终可实现一种数据存储处理效率较高、既支持多种类型的数据存储结构、又不受 物理内存限制的存储系统,由于该存储系统可对多种数据结构类型的海量数据进行高效存 储,从而使得本方案的数据存储方式拥有较强的业务扩展性。
[0046] 本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变 得明显,或通过本发明的实践了解到。
【附图说明】
[0047] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中:
[0048] 图1为本发明实施例的数据存储结构的转换方法的流程图;
[0049] 图2为本发明中一个优选实施例的数据存储结构的转换方法的流程图;
[0050] 图3为本发明中另一优选实施例的数据存储结构的转换方法的流程图;
[0051] 图4为本发明中另一实施例的数据存储结构的转换装置的结构示意图。
【具体实施方式】
[0052] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0053] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式"一"、"一 个"、"所述"和"该"也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措 辞"包括"是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加 一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元 件被"连接"或"耦接"到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在 中间元件。此外,这里使用的"连接"或"耦接"可以包括无线连接或无线耦接。这里使用 的措辞"和/或"包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0054] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术 术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应 该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中 的意义
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1