CN107870970B - 一种数据存储查询方法及系统 - Google Patents

一种数据存储查询方法及系统 Download PDF

Info

Publication number
CN107870970B
CN107870970B CN201710797623.XA CN201710797623A CN107870970B CN 107870970 B CN107870970 B CN 107870970B CN 201710797623 A CN201710797623 A CN 201710797623A CN 107870970 B CN107870970 B CN 107870970B
Authority
CN
China
Prior art keywords
data
disk
cryptographic hash
information
key
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
CN201710797623.XA
Other languages
English (en)
Other versions
CN107870970A (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 University of Technology
Original Assignee
Beijing University of Technology
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 University of Technology filed Critical Beijing University of Technology
Priority to CN201710797623.XA priority Critical patent/CN107870970B/zh
Publication of CN107870970A publication Critical patent/CN107870970A/zh
Application granted granted Critical
Publication of CN107870970B publication Critical patent/CN107870970B/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/24Querying
    • 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

Landscapes

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

Abstract

本发明公开了一种数据存储查询方法及系统,该方法及系统应用于逻辑层和存储层相互独立的数据存储结构。在数据信息存储时,将数据信息存储到存储层,将存储数据信息的存储层的哈希值区间以及该哈希值区间的地址信息存储到逻辑层;在目标数据查询时,通过计算得到目标数据哈希值,并根据此哈希值查找该哈希值所在的哈希值区间,然后根据找到的哈希值区间对应获取地址信息,进而直接定位到目标数据,无需遍历数据库中的所有数据。因此,采用本发明提供方法及系统,能够快速、精确地查询到用户所需数据。

Description

一种数据存储查询方法及系统
技术领域
本发明涉及数据处理领域,特别是涉及一种数据存储查询方法及系统。
背景技术
随着车联网的快速发展,数据爆发式增长,对数据的查询速度、稳定性、安全性、性能等指标要求非常高,而传统的数据检索查询算法实时性差,且速度较慢,已经无法满足批量处理大数据的需求。为了解决上述问题,开发了一种平衡多路查找索引结构,该索引结构虽然解决了部分问题,但是依然存在不足。例如相似数据存储在磁盘不同叶子上,导致查询相似数据时,需要遍历磁盘所有的叶子,导致数据查询速度慢,实时性差,且叶子分布在磁盘不同区域,又会导致数据存储时浪费时间。因此,如何获取一种新的数据存储查询方法,能够快速、精确地存储查询用户所需数据,是数据处理领域急需解决的技术问题。
发明内容
本发明的目的是提供一种数据存储查询方法及系统,能够快速、精确地存储查询用户所需数据。
为实现上述目的,本发明提供了如下方案:
一种数据存储方法,所述数据存储方法应用于一种数据存储结构,所述数据存储结构包括存储结构相互独立的逻辑层和存储层;所述存储层的硬件存储结构为磁盘,所述逻辑层的硬件存储结构为内存;所述存储层包括多个磁盘数据存储表和磁盘数据合并表;每个所述磁盘数据存储表包括多个磁盘年数据存储表;每个所述磁盘年数据存储表包括12个磁盘月数据存储表;每个所述磁盘月数据存储表中包括多个磁盘日数据存储表;每个所述磁盘日数据存储表包括24个磁盘时数据存储表;所述磁盘数据合并表包括多个磁盘年数据合并表、多个磁盘月数据合并表以及多个磁盘日数据合并表;所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表相互独立;所述磁盘年数据合并表用于保存自然年获取的数据信息;所述磁盘月数据合并表用于保存自然月获取的数据信息;所述磁盘日数据合并表用于保存自然日获取的数据信息;所述磁盘数据存储表、所述磁盘年数据存储表、所述磁盘月数据存储表、所述磁盘日数据存储表、所述磁盘时数据存储表、所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表对应的哈希值区间互不相同;所述逻辑层包括缓存数据表、数据存储地址信息表、数据合并地址信息表以及数据哈希值存储表;所述数据存储地址信息表用于保存所述磁盘年数据存储表的哈希值区间以及所述磁盘年数据存储表的哈希值区间对应的地址信息、所述磁盘月数据存储表的哈希值区间以及所述磁盘月数据存储表的哈希值区间对应的地址信息、所述磁盘日数据存储表的哈希值区间以及所述磁盘日数据存储表的哈希值区间对应的地址信息、所述磁盘时数据存储表的哈希值区间以及所述磁盘时数据存储表的哈希值区间对应的地址信息;所述数据合并地址信息表用于保存所述磁盘年数据合并表的哈希值区间以及所述磁盘年数据合并表的哈希值区间对应的地址信息、所述磁盘月数据合并表的哈希值区间以及所述磁盘月数据合并表的哈希值区间对应的地址信息、所述磁盘日数据合并表的哈希值区间以及所述磁盘日数据合并表的哈希值区间对应的地址信息;所述数据存储方法包括:
获取数据信息;所述数据信息包括车信息和获取所述车信息时对应的时间信息;所述车信息包括车的唯一性标识信息和车的业务数据;
对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;所述第一键-值对数据结构中的数据键存储所述车的唯一性标识信息;所述第二键-值对数据结构中的数据键存储所述时间信息中的年信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的月信息;所述第四键-值对数据结构中的数据键存储所述时间信息中的日信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的时信息;所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的数据值存储所述数据信息;
根据所述哈希算法,分别计算所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的所述数据键的哈希值;
按照所述第一键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的磁盘数据存储表,按照所述第二键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘数据存储表中的磁盘年数据存储表;按照所述第三键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘年数据存储表中的磁盘月数据存储表;按照所述第四键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘月数据存储表中的磁盘日数据存储表;按照所述第五键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘日数据存储表中的磁盘时数据存储表,并将所述数据信息存入到所述磁盘时数据存储表中。
可选的,在对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构之前,所述数据存储方法还包括:
将获取的数据信息保存至所述缓存数据表中,并判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果;
若所述第一判断结果表示所述缓存数据表中的存储量大于或者等于所述第一阈值,则对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;
若所述第一判断结果表示所述缓存数据表中的存储量小于所述第一阈值,则将获取的所述数据信息继续保存到所述缓存数据表中,并返回判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果步骤。
可选的,在将获取的数据信息保存至所述缓存数据表中,并判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果之前,所述数据存储方法还包括:
计算所述数据信息的哈希值;
判断所述数据哈希值存储表中是否存在与所述数据信息的哈希值相同的哈希值,得到第二判断结果;所述数据哈希值存储表用于保存数据信息的哈希值;
若所述第二判断结果表示所述数据哈希值存储表中存在与所述数据信息的哈希值相同的哈希值,则将所述数据信息与所述数据信息的哈希值相同的数据信息合并。
本发明还提供了一种数据查询方法,所述数据查询方法应用于一种数据存储结构,所述数据存储结构包括存储结构相互独立的逻辑层和存储层;所述存储层的硬件存储结构为磁盘,所述逻辑层的硬件存储结构为内存;所述存储层包括多个磁盘数据存储表和磁盘数据合并表;每个所述磁盘数据存储表包括多个磁盘年数据存储表;每个所述磁盘年数据存储表包括12个磁盘月数据存储表;每个所述磁盘月数据存储表中包括多个磁盘日数据存储表;每个所述磁盘日数据存储表包括24个磁盘时数据存储表;所述磁盘数据合并表包括多个磁盘年数据合并表、多个磁盘月数据合并表以及多个磁盘日数据合并表;所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表相互独立;所述磁盘年数据合并表用于保存自然年获取的数据信息;所述磁盘月数据合并表用于保存自然月获取的数据信息;所述磁盘日数据合并表用于保存自然日获取的数据信息;所述磁盘数据存储表、所述磁盘年数据存储表、所述磁盘月数据存储表、所述磁盘日数据存储表、所述磁盘时数据存储表、所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表对应的哈希值区间互不相同;所述逻辑层包括缓存数据表、数据存储地址信息表、数据合并地址信息表以及数据哈希值存储表;所述数据存储地址信息表用于保存所述磁盘年数据存储表的哈希值区间以及所述磁盘年数据存储表的哈希值区间对应的地址信息、所述磁盘月数据存储表的哈希值区间以及所述磁盘月数据存储表的哈希值区间对应的地址信息、所述磁盘日数据存储表的哈希值区间以及所述磁盘日数据存储表的哈希值区间对应的地址信息、所述磁盘时数据存储表的哈希值区间以及所述磁盘时数据存储表的哈希值区间对应的地址信息;所述数据合并地址信息表用于保存所述磁盘年数据合并表的哈希值区间以及所述磁盘年数据合并表的哈希值区间对应的地址信息、所述磁盘月数据合并表的哈希值区间以及所述磁盘月数据合并表的哈希值区间对应的地址信息、所述磁盘日数据合并表的哈希值区间以及所述磁盘日数据合并表的哈希值区间对应的地址信息;所述数据哈希值存储表用于保存数据信息的哈希值;所述数据查询方法包括:
获取用户所需数据的查询请求;所述查询请求包括车的唯一性标识信息和时间信息;
根据所述用户所需数据的查询请求,判断所述用户所需数据是否在所述缓存数据表内,得到第三判断结果;
若所述第三判断结果表示所述用户所需数据在所述缓存数据表内,则从所述缓存数据表内提取用户所需数据;
若所述第三判断结果表示所述用户所需数据不在所述缓存数据表内,则计算第一哈希值和第二哈希值;所述第一哈希值为所述查询请求中的车的唯一性标识信息的哈希值;所述第二哈希值为所述查询请求中时间信息的哈希值;
判断所述数据合并地址信息表中是否存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,得到第四判断结果;
若所述第四判断结果表示所述数据合并地址信息表中存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,则根据均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据;
若所述第四判断结果表示所述数据合并地址信息表中不存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,则从所述数据存储地址信息表中,遍历查找均包含所述第一哈希值和所述第二哈希值的哈希值区间,并根据所述数据存储地址信息表中均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据。
本发明还提供了一种数据存储系统,所述数据存储系统应用于一种数据存储结构,所述数据存储结构包括存储结构相互独立的逻辑层和存储层;所述存储层的硬件存储结构为磁盘,所述逻辑层的硬件存储结构为内存;所述存储层包括多个磁盘数据存储表和磁盘数据合并表;每个所述磁盘数据存储表包括多个磁盘年数据存储表;每个所述磁盘年数据存储表包括12个磁盘月数据存储表;每个所述磁盘月数据存储表中包括多个磁盘日数据存储表;每个所述磁盘日数据存储表包括24个磁盘时数据存储表;所述磁盘数据合并表包括多个磁盘年数据合并表、多个磁盘月数据合并表以及多个磁盘日数据合并表;所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表相互独立;所述磁盘年数据合并表用于保存自然年获取的数据信息;所述磁盘月数据合并表用于保存自然月获取的数据信息;所述磁盘日数据合并表用于保存自然日获取的数据信息;所述磁盘数据存储表、所述磁盘年数据存储表、所述磁盘月数据存储表、所述磁盘日数据存储表、所述磁盘时数据存储表、所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表对应的哈希值区间互不相同;所述逻辑层包括缓存数据表、数据存储地址信息表、数据合并地址信息表以及数据哈希值存储表;所述数据存储地址信息表用于保存所述磁盘年数据存储表的哈希值区间以及所述磁盘年数据存储表的哈希值区间对应的地址信息、所述磁盘月数据存储表的哈希值区间以及所述磁盘月数据存储表的哈希值区间对应的地址信息、所述磁盘日数据存储表的哈希值区间以及所述磁盘日数据存储表的哈希值区间对应的地址信息、所述磁盘时数据存储表的哈希值区间以及所述磁盘时数据存储表的哈希值区间对应的地址信息;所述数据合并地址信息表用于保存所述磁盘年数据合并表的哈希值区间以及所述磁盘年数据合并表的哈希值区间对应的地址信息、所述磁盘月数据合并表的哈希值区间以及所述磁盘月数据合并表的哈希值区间对应的地址信息、所述磁盘日数据合并表的哈希值区间以及所述磁盘日数据合并表的哈希值区间对应的地址信息;所述数据存储系统包括:
数据信息获取模块,用于获取数据信息;所述数据信息包括车信息和获取所述车信息时对应的时间信息;所述车信息包括车的唯一性标识信息和车的业务数据;
键-值对数据结构得到模块,用于对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;所述第一键-值对数据结构中的数据键存储所述车的唯一性标识信息;所述第二键-值对数据结构中的数据键存储所述时间信息中的年信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的月信息;所述第四键-值对数据结构中的数据键存储所述时间信息中的日信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的时信息;所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的数据值存储所述数据信息;
数据键哈希值计算模块,用于根据所述哈希算法,分别计算所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的所述数据键的哈希值;
数据信息存储模块,用于按照所述第一键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的磁盘数据存储表,按照所述第二键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘数据存储表中的磁盘年数据存储表;按照所述第三键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘年数据存储表中的磁盘月数据存储表;按照所述第四键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘月数据存储表中的磁盘日数据存储表;按照所述第五键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘日数据存储表中的磁盘时数据存储表,并将所述数据信息存入到所述磁盘时数据存储表中。
可选的,所述数据存储系统还包括:
第一判断结果得到模块,用于将获取的数据信息保存至所述缓存数据表中,并判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果;
数据处理模块,用于当所述第一判断结果表示所述缓存数据表中的存储量大于或者等于所述第一阈值时,对所述缓存数据表中的所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;
数据信息保存模块,用于当所述第一判断结果表示所述缓存数据表中的存储量小于所述第一阈值时,将获取的所述数据信息继续保存到所述缓存数据表中,判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果。
可选的,所述数据存储系统还包括:
数据信息哈希值计算模块,用于计算所述数据信息的哈希值;
第二结果判断模块,用于判断所述数据哈希值存储表中是否存在与所述数据信息的哈希值相同的哈希值,得到第二判断结果;所述数据哈希值存储表用于保存数据信息的哈希值;
合并模块,用于当所述第二判断结果表示所述数据哈希值存储表中存在与所述数据信息的哈希值相同的哈希值时,将所述数据信息与所述数据信息的哈希值相同的数据信息合并。
本发明还提供了一种数据查询系统,所述数据查询系统应用于一种数据存储结构,所述数据存储结构包括存储结构相互独立的逻辑层和存储层;所述存储层的硬件存储结构为磁盘,所述逻辑层的硬件存储结构为内存;所述存储层包括多个磁盘数据存储表和磁盘数据合并表;每个所述磁盘数据存储表包括多个磁盘年数据存储表;每个所述磁盘年数据存储表包括12个磁盘月数据存储表;每个所述磁盘月数据存储表中包括多个磁盘日数据存储表;每个所述磁盘日数据存储表包括24个磁盘时数据存储表;所述磁盘数据合并表包括多个磁盘年数据合并表、多个磁盘月数据合并表以及多个磁盘日数据合并表;所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表相互独立;所述磁盘年数据合并表用于保存自然年获取的数据信息;所述磁盘月数据合并表用于保存自然月获取的数据信息;所述磁盘日数据合并表用于保存自然日获取的数据信息;所述磁盘数据存储表、所述磁盘年数据存储表、所述磁盘月数据存储表、所述磁盘日数据存储表、所述磁盘时数据存储表、所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表对应的哈希值区间互不相同;所述逻辑层包括缓存数据表、数据存储地址信息表、数据合并地址信息表以及数据哈希值存储表;所述数据存储地址信息表用于保存所述磁盘年数据存储表的哈希值区间以及所述磁盘年数据存储表的哈希值区间对应的地址信息、所述磁盘月数据存储表的哈希值区间以及所述磁盘月数据存储表的哈希值区间对应的地址信息、所述磁盘日数据存储表的哈希值区间以及所述磁盘日数据存储表的哈希值区间对应的地址信息、所述磁盘时数据存储表的哈希值区间以及所述磁盘时数据存储表的哈希值区间对应的地址信息;所述数据合并地址信息表用于保存所述磁盘年数据合并表的哈希值区间以及所述磁盘年数据合并表的哈希值区间对应的地址信息、所述磁盘月数据合并表的哈希值区间以及所述磁盘月数据合并表的哈希值区间对应的地址信息、所述磁盘日数据合并表的哈希值区间以及所述磁盘日数据合并表的哈希值区间对应的地址信息;所述数据哈希值存储表用于保存数据信息的哈希值;所述数据查询系统包括:
查询请求获取模块,用于获取用户所需数据的查询请求;所述查询请求包括车的唯一性标识信息和时间信息;
第三判断结果得到模块,用于根据所述用户所需数据的查询请求,判断所述用户所需数据是否在所述缓存数据表内,得到第三判断结果;
用户所需数据提取模块,用于当所述第三判断结果表示所述用户所需数据在所述缓存数据表内时,从所述缓存数据表内提取用户所需数据;
查询请求哈希值计算模块,用于当所述第三判断结果表示所述用户所需数据不在所述缓存数据表内时,计算第一哈希值和第二哈希值;所述第一哈希值为所述查询请求中的车的唯一性标识信息的哈希值;所述第二哈希值为所述查询请求中时间信息的哈希值;
第四判断结果得到模块,用于判断所述数据合并地址信息表中是否存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,得到第四判断结果;
第一用户所需数据获取模块,用于当所述第四判断结果表示所述第四判断结果表示所述数据合并地址信息表中存在均包含所述第一哈希值和所述第二哈希值的哈希值区间时,根据均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据;
第二用户所需数据获取模块,用于当所述第四判断结果表示所述数据合并地址信息表中不存在均包含所述第一哈希值和所述第二哈希值的哈希值区间时,从所述数据存储地址信息表中,遍历查找均包含所述第一哈希值和所述第二哈希值的哈希值区间,并根据所述数据存储地址信息表中均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供了一种数据存储查询方法及系统,该方法或者该系统应用于逻辑层和存储层相互独立的数据存储结构。在数据信息存储时,将数据信息存储到存储层,将存储数据信息的存储层的哈希值区间以及该哈希值区间的地址信息存储到逻辑层。在目标数据查询时,通过计算得到目标数据哈希值,并根据此哈希值查找该哈希值所在的哈希值区间,然后根据找到的哈希值区间对应的的地址信息,进而直接定位到目标数据,无需遍历数据库中的所有数据,提高了数据查询速度和实时性。其中,该方法具体包括:首先定义磁盘中每个磁盘数据存储表的哈希值区间,然后通过哈希算法计算得到的数据信息的哈希值,确定所述数据信息将要存入的磁盘数据存储表,再把所述数据信息要存入的磁盘数据存储表的地址信息存储在内存中相应的数据存储地址信息表中。数据查询时,只需在数据存储地址信息表中查询所需数据所在的哈希值区间以及该哈希值区间对应的地址信息,根据此地址信息直接获取所需数据的磁盘数据存储表,进而获取所需数据。另外,本发明提供的方法或者系统应用的所述数据存储结构还包括磁盘中磁盘数据合并表和内存中的数据合并地址信息表;所述磁盘数据合并表用于合并年、月、日等周期数据,数据合并地址信息表用于存储磁盘数据合并表的哈希值区间以及该哈希值区间对应的地址信息。当用户查询周期性数据时,只需在数据合并地址信息表中查询周期性数据的地址信息,根据此地址信息确定存储周期性数据的磁盘数据合并表,进而获取周期性数据。因此,采用本发明提供方法或者系统,能够快速、精确地查询到用户所需数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例数据存储方法的流程示意图;
图2为本发明实施例数据查询方法的流程示意图;
图3为本发明实施例数据存储系统的结构示意图;
图4为本发明实施例数据查询系统的结构示意图;
图5为本发明实施例数据插入内存结构的过程示意图;
图6为本发明实施例内存数据插入磁盘结构的过程示意图;
图7为本发明实施例数据合并过程示意图;
图8为本发明实施例数据读取过程示意图;
图9为本发明实施例索引结构示意图;
图10为本发明实施例磁盘数据表的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种数据存储查询方法及系统,能够快速、精确地存储查询用户所需数据。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
本发明提供的数据存储方法应用于一种数据存储结构,所述数据存储结构包括存储结构相互独立的逻辑层和存储层;所述存储层的硬件存储结构为磁盘,所述逻辑层的硬件存储结构为内存。
所述存储层包括多个磁盘数据存储表和磁盘数据合并表。
每个所述磁盘数据存储表包括多个磁盘年数据存储表,例如2017年数据存储表。
每个所述磁盘年数据存储表包括12个磁盘月数据存储表,例如2017年数据存储表中包括1月数据存储表、2月数据存储表、......、12月数据存储表。所述2017年数据存储表相当于根目录,1月数据存储表、2月数据存储表、......、12月数据存储表相当于子目录。
每个所述磁盘月数据存储表中包括多个磁盘日数据存储表,每个磁盘月数据存储表包含磁盘日数据存储表的个数与磁盘月数据存储表的月份包含的天数相同、例如1月数据存储表包含31个磁盘日数据存储表,分别为1日数据存储表、2日数据存储表、......、31日数据存储表。所述1月数据存储表相当于根目录,1日数据存储表/2日数据存储表、......、31日数据存储表相当于子目录。
每个所述磁盘日数据存储表包括24个磁盘时数据存储表,例如1日数据存储表包括24个24个磁盘时数据存储表,分别为1时数据存储表、2时数据存储表、......、24时数据存储表。所述1日数据存储表相当于根目录,1时数据存储表、2时数据存储表、......、24时数据存储表相当于子目录。其中,1时数据存储表存储的信息为时间0时至1时的数据信息,2时数据存储表存储的信息为时间1时至2时的数据信息,依次类推,24时数据存储表存储的信息为时间23时至24时的数据信息.
所述磁盘数据合并表包括多个磁盘年数据合并表、多个磁盘月数据合并表以及多个磁盘日数据合并表;所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表相互独立。
所述磁盘年数据合并表用于保存自然年获取的数据信息,即保存的1月1号至12月31号采集的数据。
所述磁盘月数据合并表用于保存自然月获取的数据信息,即保存当月从月初到月末采集的数据。
所述磁盘日数据合并表用于保存自然日获取的数据信息,即保存当天从零时到次日零时之前采集的数据。
所述磁盘数据存储表、所述磁盘年数据存储表、所述磁盘月数据存储表、所述磁盘日数据存储表、所述磁盘时数据存储表、所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表对应的哈希值区间互不相同。
所述逻辑层包括缓存数据表、数据存储地址信息表、数据合并地址信息表以及数据哈希值存储表。
所述缓存数据表用于保存最近插入的数据信息。
所述数据存储地址信息表用于保存所述磁盘年数据存储表的哈希值区间以及所述磁盘年数据存储表的哈希值区间对应的地址信息、所述磁盘月数据存储表的哈希值区间以及所述磁盘月数据存储表的哈希值区间对应的地址信息、所述磁盘日数据存储表的哈希值区间以及所述磁盘日数据存储表的哈希值区间对应的地址信息、所述磁盘时数据存储表的哈希值区间以及所述磁盘时数据存储表的哈希值区间对应的地址信息。
所述数据合并地址信息表用于保存所述磁盘年数据合并表的哈希值区间以及所述磁盘年数据合并表的哈希值区间对应的地址信息、所述磁盘月数据合并表的哈希值区间以及所述磁盘月数据合并表的哈希值区间对应的地址信息、所述磁盘日数据合并表的哈希值区间以及所述磁盘日数据合并表的哈希值区间对应的地址信息。
图1为本发明实施例数据存储方法的流程示意图,如图1所示,本发明提供的数据存储具体包括以下步骤:
步骤101:获取数据信息;所述数据信息包括车信息和获取所述车信息时对应的时间信息;所述车信息包括车的唯一性标识信息和车的业务数据。
步骤102:对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;所述第一键-值对数据结构中的数据键存储所述车的唯一性标识信息;所述第二键-值对数据结构中的数据键存储所述时间信息中的年信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的月信息;所述第四键-值对数据结构中的数据键存储所述时间信息中的日信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的时信息;所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的数据值存储所述数据信息。
步骤103:根据所述哈希算法,分别计算所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的所述数据键的哈希值。
所述哈希算法是将任意长度的二进制值映射为较短的固定长度的二进制值;这个较短的二进制值称为哈希值。因此只要数据一致,哈希值也是一致的。
步骤104:按照所述第一键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的磁盘数据存储表,按照所述第二键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘数据存储表中的磁盘年数据存储表;按照所述第三键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘年数据存储表中的磁盘月数据存储表;按照所述第四键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘月数据存储表中的磁盘日数据存储表;按照所述第五键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘日数据存储表中的磁盘时数据存储表,并将所述数据信息存入到所述磁盘时数据存储表中。
其中,在执行步骤102之前所述数据存储方法还包括:
步骤105:将获取的数据信息保存至所述缓存数据表中,并判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果。
步骤106:若所述第一判断结果表示所述缓存数据表中的存储量大于或者等于所述第一阈值,则返回到步骤102。
步骤107:若所述第一判断结果表示所述缓存数据表中的存储量小于所述第一阈值,则将获取的所述数据信息继续保存到所述缓存数据表中,并返回步骤105。
在执行步骤105之前,所述数据存储方法还包括:
步骤108:计算所述数据信息的哈希值。
步骤109:判断所述数据哈希值存储表中是否存在与所述数据信息的哈希值相同的哈希值,得到第二判断结果。所述数据哈希值存储表用于保存数据信息的哈希值。
步骤110:若所述第二判断结果表示所述数据哈希值存储表中存在与所述数据信息的哈希值相同的哈希值,则将所述数据信息与所述数据信息的哈希值相同的数据信息合并。其中,这里合并表示将内存中的数据信息中的业务数据写到与所述数据信息哈希值相同的数据信息(此数据信息保存在磁盘中)的后面,此时磁盘中该数据信息的形式为车唯一性标识信息-时间-业务数据-业务数据。
步骤111:若所述第二判断结果表示所述数据哈希值存储表中不存在与所述数据信息的哈希值相同的哈希值,则根据所述数据信息中车的唯一性标识信息和时间信息的哈希值选择对应的磁盘时数据存储表,并将所述数据信息按照步骤102-步骤104插入保存到相应的磁盘时数据存储表中。
实施例二
为了实现上述目的,本发明还提供了一种数据查询方法,所述数据查询方法同样也应用于实施例一提到的数据存储结构,在这里就不再说明。
图2为本发明实施例数据查询方法的流程示意图,如图2所示,本发明提供的数据查询方法具体包括以下步骤:
步骤201:获取用户所需数据的查询请求;所述查询请求包括车的唯一性标识信息和时间信息。
步骤202:根据所述用户所需数据的查询请求,判断所述用户所需数据是否在所述缓存数据表内,得到第三判断结果。
若所述第三判断结果表示所述用户所需数据在所述缓存数据表内,则执行步骤203。
步骤203:从所述缓存数据表内提取用户所需数据。
若所述第三判断结果表示所述用户所需数据不在所述缓存数据表内,则执行步骤204。
步骤204:计算第一哈希值和第二哈希值;所述第一哈希值为所述查询请求中的车的唯一性标识信息的哈希值;所述第二哈希值为所述查询请求中时间信息的哈希值。
步骤205:判断所述数据合并地址信息表中是否存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,得到第四判断结果。
若所述第四判断结果表示所述第四判断结果表示所述数据合并地址信息表中存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,则执行步骤206。
步骤206:根据均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据。
若所述第四判断结果表示所述数据合并地址信息表中不存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,则执行步骤207。
步骤207:从所述数据存储地址信息表中,遍历查找均包含所述第一哈希值和所述第二哈希值的哈希值区间,并根据所述数据存储地址信息表中均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据。
实施例三
为了实现上述目的,本发明还提供了一种数据存储系统,所述数据存储系统同样也应用于实施例一提到的数据存储结构,在这里就不再说明。
图3为本发明实施例数据存储系统的结构示意图,如图3所示,本发明提供的数据存储系统包括:
数据信息获取模块301,用于获取数据信息;所述数据信息包括车信息和获取所述车信息时对应的时间信息;所述车信息包括车的唯一性标识信息和车的业务数据。
键-值对数据结构得到模块302,用于对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;所述第一键-值对数据结构中的数据键存储所述车的唯一性标识信息;所述第二键-值对数据结构中的数据键存储所述时间信息中的年信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的月信息;所述第四键-值对数据结构中的数据键存储所述时间信息中的日信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的时信息;所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的数据值存储所述数据信息。
数据键哈希值计算模块303,用于根据所述哈希算法,分别计算所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的所述数据键的哈希值。
数据信息存储模块304,用于按照所述第一键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的磁盘数据存储表,按照所述第二键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘数据存储表中的磁盘年数据存储表;按照所述第三键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘年数据存储表中的磁盘月数据存储表;按照所述第四键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘月数据存储表中的磁盘日数据存储表;按照所述第五键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘日数据存储表中的磁盘时数据存储表,并将所述数据信息存入到所述磁盘时数据存储表中。
进一步,所述数据存储系统还包括:
第一判断结果得到模块305,用于将获取的数据信息保存至所述缓存数据表中,并判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果。
数据处理模块306,用于当所述第一判断结果表示所述缓存数据表中的存储量大于或者等于所述第一阈值时,对所述缓存数据表中的所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构。
数据信息保存模块307,用于当所述第一判断结果表示所述缓存数据表中的存储量小于所述第一阈值时,将获取的所述数据信息继续保存到所述缓存数据表中,判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果。
进一步,所述数据存储系统还包括:
数据信息哈希值计算模块308,用于计算所述数据信息的哈希值。
第二结果判断模块309,用于判断所述数据哈希值存储表中是否存在与所述数据信息的哈希值相同的哈希值,得到第二判断结果。所述数据哈希值存储表用于保存数据信息的哈希值。
合并模块310,用于当所述第二判断结果表示所述数据哈希值存储表中存在与所述数据信息的哈希值相同的哈希值时,将所述数据信息与所述数据信息的哈希值相同的数据信息合并。其中,这里合并表示将内存中的数据信息中的业务数据写到与所述数据信息哈希值相同的数据信息(此数据信息保存在磁盘中)的后面,此时磁盘中该数据信息的形式为车唯一性标识信息-时间-业务数据-业务数据。
插入模块311,用于当所述第二判断结果表示所述数据哈希值存储表中不存在与所述数据信息的哈希值相同的哈希值时,根据跳转至键-值对数据结构得到模块302、数据键哈希值计算模块303、数据信息存储模块304,按照所述数据信息中车的唯一性标识信息和时间信息的哈希值选择对应的磁盘时数据存储表,并将所述数据信息插入保存到所述磁盘时数据存储表中。
实施例四
为了实现上述目的,本发明还提供了一种数据查询系统,所述数据查询系统同样也应用于实施例一提到的数据存储结构,在这里就不再说明。
图4为本发明实施例数据查询系统的结构示意图,如图4所示所述数据查询系统包括:
查询请求获取模块401,用于获取用户所需数据的查询请求;所述查询请求包括车的唯一性标识信息和时间信息。
第三判断结果得到模块402,用于根据所述用户所需数据的查询请求,判断所述用户所需数据是否在所述缓存数据表内,得到第三判断结果。
用户所需数据提取模块403,用于当所述第三判断结果表示所述用户所需数据在所述缓存数据表内时,从所述缓存数据表内提取用户所需数据。
查询请求哈希值计算模块404,用于当所述第三判断结果表示所述用户所需数据不在所述缓存数据表内时,计算第一哈希值和第二哈希值;所述第一哈希值为所述查询请求中的车的唯一性标识信息的哈希值;所述第二哈希值为所述查询请求中时间信息的哈希值。
第四判断结果得到模块405,用于用于判断所述数据合并地址信息表中是否存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,得到第四判断结果。
第一用户所需数据获取模块406,用于当所述第四判断结果表示所述第四判断结果表示所述数据合并地址信息表中存在均包含所述第一哈希值和所述第二哈希值的哈希值区间时,根据均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据。
第二用户所需数据获取模块407,用于当所述第四判断结果表示所述数据合并地址信息表中不存在均包含所述第一哈希值和所述第二哈希值的哈希值区间时,从所述数据存储地址信息表中,遍历查找均包含所述第一哈希值和所述第二哈希值的哈希值区间,并根据所述数据存储地址信息表中均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据。
因此,通过实施例一、实施例二、实施例三以及实施例四提供的数据存储查询方法及系统,能够快速、精确地查询到用户所需数据。
实施例五
为实现上述目的,本发明还提供了一种数据存储查询方法,所述数据存储查询方法同样应用于实施例一提供的数据存储结构。
该数据存储结构是根据分布式内存映射引擎(Distributed Memory MappingDisk Engine,简称DIS-MMDE)算法建立的,即数据存储结构底层引用了分布式集群架构,采用“引擎树”存储模型,即本发明提供的数据存储查询方法是基于“引擎”的NOSQL(NOSQL:指那些非关系型的、不保证遵循ACID(事物四性)原则的数据存储系统)缓存快速检索方法。
SDTable(排序过的磁盘数据存储表)是磁盘数据存储表中数据的文件格式,它的格式为磁盘数据存储表本身就是一个排序的、不可变的、持久的Key/Value对Map,其中Key和value都可以是任意的byte字符串。
在数据存储结构中,内存中构建树形结构,磁盘中构建树形结构,并将内存中的树形结构与磁盘中的树关联起来,形成“大的一个整体的树形结构”。这里的关联是指通过内存的树形结构指向磁盘中的树形结构,可以理解为内存的树形结构保存了磁盘的树形结构的引用。
另外,该数据存储结构还支持增、删、读、改以及顺序扫描操作。因此,通过该数据存储结构的批量写入解决了随机写入的问题,大大提高了写的性能。且该数据存储结构适用于大量终端上传数据快速存储。
所述数据存储结构的逻辑层和存储层独立分开,实现逻辑层、存储层都可以自动扩展和收缩,每个层面都可以热插拨,数据灵活迁移强一致性,方便水平扩展,灵活操作。在无状态代理与分组服务状况,每组有且只有一个主节点和多个从节点。
为了更加清楚本发明提供的数据存储结构为分布式,在下文中,将数据存储结构称作分布式引擎数据结构。那么,根据以上对数据存储结构的描述,本发明提供的数据存储查询方法又可称作一种基于“引擎”快速检索十亿记录NOSQL的缓存方法,该缓存方法采用了分布式内存存储引擎的解决方案。该解决方案是基于“引擎树”非常高效的NOSQL数据库,单机支持十亿级别的数据量。所有采集的数据都持久化在磁盘中,最近采集的数据缓存在内存来提高读取速度,且。所述缓存方法具体包括以下步骤:
步骤501:预先会将磁盘中树形结构的非叶子节点的数据缓存在内存中的数据存储地址信息表或者数据合并地址信息表。
步骤502:数据插入时首先会插入到内存中的缓存数据表。
所述步骤502具体包括:如图5所示,缓存数据表(以下简称内存数据表),用于记录最近修改或者采集的数据,一般用跳跃表来组织。当达到内存数据表的存储量一定大小后,等待转存到磁盘。数据插入时先作用于内存,由于内存中的树形结构不大,因此数据插入很快。
另外,更新操作会被写到内存中,内存使用树结构来保持“键”的有序,通过写预写日志的方式备份到磁盘中,用来恢复数据,防止数据丢失。内存数据表达到一定规模时会被刷新到磁盘上的一个磁盘数据存储表(以下简称磁盘数据表)中,然后开辟一个新的内存数据表用来记录新的数据,此时分布式引擎数据结构只做了磁盘顺序读写,数据没有被编辑。
步骤503:当内存中的内存数据表中的数据超过一定阈值,从左至右遍历内存中的树形结构的叶子节点与磁盘中的树形结构的叶子节点,进行合并操作。
所述步骤503具体包括:如图6所示。
步骤5031:内存数据首次写入,先读取磁盘是否存储此数据,若无直接把内存中的数据写到磁盘数据表。若有,数据插入时会通过布隆过滤器过滤数据哈希值存储数据表判断有无数据,然后再决定数据插入还是合并到磁盘数据表中。其中,这里合并表示将内存中的数据信息中的业务数据写到与所述数据信息哈希值相同的数据信息(此数据信息保存在磁盘中)的后面,此时磁盘中该数据信息的形式为车唯一性标识信息-时间-业务数据-业务数据。分布式引擎数据结构由内存数据表、磁盘数据表文件结构以及操作日志等组件组成。
步骤5032:操作日志会存储到操作日志中。
步骤5033:合并的数据量达到磁盘数据表的存储页的大小时,将合并后的数据持久化到磁盘数据合并表中。持久化的同时更新父亲节点对叶子节点的指针。
通过步骤5031-步骤5033操作,降低分布式引擎数据结构冗余,提高分布式引擎数据结构性能,增加分布式引擎数据结构处理数据效率。
另外,磁盘中树形结构的叶子节点被合并后,旧的数据会拷贝一份和内存中的数据一起顺序写到磁盘数据表中。原有数据空间交由分布式引擎数据结构提供的一些类似标记清除、复制删除机制来进行回收。如果数据量过于庞大,分布式引擎数据结构会建立各个层次的树,低层次的树都比上一层次的树数据集大。假设内存中的树形结构为c0,磁盘中的树形结构按照层次一次为c1,c2,c3,...ck-1,ck。那么,合并的顺序是(c0,c1),(c1,c2)...(ck-1,ck)。
为了使分布式引擎数据结构的读操作更快,采用合并操作减少磁盘数据表文件数,合并操作过程类似JVM的垃圾回收算法。合并操作会顺序写入一个或多个磁盘页,这比随机写快得多。
合并过程如图7所示,例如有5个磁盘数据表文件,每一个有10行数据,会被合并为一个50行(或更少行)的文件。过程一直持续,当更多的10行的磁盘数据表文件被创建达到5个文件时,会被合并到50行的文件。这样积累5个50行的文件时会将这5个50行的文件合并成一个250行的文件。这个过程不停的创建更大的文件。
为了高效的查询而不使文件一直大下去,文件行数达到设定值,分布式引擎数据结构通过分层的方式来执行合并操作。分层合并策略:每一层可以维护指定的文件数,同时保证不让“键”重叠。可把“键”分区到不同的文件。因此在一层查找一个“键”,只用索引一个文件。文件只会被合并到上一层的一个文件。当一层的文件数满足特定个数时,一个文件会被选出并合并到上一层。
步骤504:读操作请求时,先检索内存数据表。首先会查找内存中树形结构,如果未查找到所需数据,进一步转而查找磁盘中的树形结构,直至查到该所需数据。如果数据是从内存中树形结构直接查找到的直接返回结果,如果从内存中缓存的磁盘的树形结构中查找到的,按照磁盘中树形结构的节点指针引用快速找到目标磁盘数据表文件,完成搜索。
如图8示,读操作在内存中采用页缓存,减少二分查找的消耗。为了使查找只需一次I/O操作,块-索引保存在文件尾部,分布式引擎数据结构通过周期的磁盘数据表合并,来保持磁盘数据表的个数,来增加读操作的性能,分布式引擎数据结构通过布隆过滤器来实现避免大量的读磁盘数据表操作,布隆过滤器是一种高效的方法来判断一个磁盘数据表中是否包含一个特定的“键”(如果布隆过滤器说一个“键”不存在,就一定不存在,而当布隆过滤器说一个文件存在是,可能是不存在的,只是通过概率来保证)。
所有的写操作都被分批处理,只写到顺序块上,而且分布式引擎数据结构实现的技巧像布隆过滤器或者硬件(大文件缓存)来优化读性能。
另外,说明下引擎,引擎是日志和传统的单文件索引(B+tree,Hash Index)的中立,提供一个机制来管理更小的独立的索引文件(磁盘数据表)。
引擎本身由内存数据表,磁盘数据表等多个部分组成,其中“磁盘数据表”本身是个简单而有用的数据结构,有顺序的“键-值”结构集合,如图9所示,当文件比较大的时候,也可以建立键:偏移的索引,用于快速分段定位,分布式引擎数据结构提供了可选的策略。也支持普通的“键-值”结构,如图10所示。这个结构和普通的“键-值”结构的区别可以支持区间查询和随机读写。
另外,磁盘数据表本身无法支持高效的区间查询和随机读写的场景,需要一整套的机制来完成从内存排序,数据刷新到磁盘,合并压缩。本发明采用引擎树模型基于不断产生磁盘数据表结构的日志文件,通过持续不断合并提高效率。
因此,采用本发明实施例提供的方法,将相似特征数据写入相同叶子节点,解决了随机写入的问题,大大减少磁盘的寻道时间,提高了写的性能。另外,本发明的提供的数据存储结构采用分布式,原生支持水平扩展,解决了数据一致性、高可用等技术难题,且易部署。
另外,本发明的底层数据存储采用引擎树存储模型,海量数据通过引擎树存储模型分别顺序批量存储到集群服务器的节点,并采用主从结构辅以备份机制,保证数据的高可用,某个节点宕机、掉线不影响系统正常运行。若开启多个从节点的系统默认架构,引擎树存储模型可用性可以达到在集群三分之二以上机器出现故障时仍然可用。应用层采用将其应用到车联网产生的大数据快速检索中。实现分布式缓存架构,采用主控器思路利用代理技术实现负载平衡,分片算法。实现高并发高可用实时处理系统。
请求任一“代理”代理,再根据分片算法路由信息定位转发至某个正确节点,采用中心节点代理,逻辑由“代理”处理,下层存储采用依据数据的冷热度把冷数据暂时保存至磁盘,待其为热数据的时候可上线,提供数据在线迁移的工具。由于底层存储引擎非常快,通过增加“代理”数量与增加管道提高性能。采用solt片位将整个集群分为32768个哈希片,分片算法SlotId=crc32(key)%32768,增减节点不需要重启服务。
数据迁移实现KEY原子迁移,快速迁至新节点,并转移访问至新节点,期间也可以中断正在同步的数据,算法实现全部成功或者失败,实现无缝网络分裂,保证数据强一致性,写命令不会丢失,所有操作节点采用在控制组件上注册的方式。提供安全透明的在线迁移数据,自动平衡数据到其他节点,实现可热插拨,不会造成响应时延。存储节点实现在线数据迁移操作,自定义搬迁数据至其他节点,灵活实现节点上下线。故障节点不影响其他组件的运行,故障时备份节点通过选举升为主节点,集群仍正常运行。数据采用异步复制(asynchronous replication)的方案,主从节点不会引起阻塞。
“代理”部署(多代理+控制组件集群方案,采用保活+高可用代理负载均衡(keepalived+haporxy),部署多组“服务”,每组部署一主多从架构的高可用解决方案。通过从控制组件快速知道监控注册节点的存活状况,提供了采用休眠再监控在自定义时间内自动切换技术,以及提供在确定好数据安全后使用web界面或者命令手动操作的方案。
基于控制组件的“代理”高可用,控制组件记录整个集群的生存状态,可以动态水平扩容,平衡数据,在迁移的时候不影响业务访问和响应时间,监控注册节点作降低人失误率,提供图形直观查看信息,“代理”层实现一致性哈希。
综上所述,与现有技术相比,本发明提供的方法或者系统的有益效果为:
1.与传统的B+树相比,本发明提供的方法或者系统会先将一段时间内的插入操作缓冲在内存,当内存达到阂值时,再将内存中的数据和磁盘上的数据做合并,并顺序写入一个或多个磁盘数据表中,这种顺序写相比于随机写,能够明显地减少磁盘臂的移动,会快很多,提高写入性能;
2.数据存储结构可实现无缝扩展和水平扩展。
3.数据存储结构中的“引擎树”,理论上,可以是内存中树形结构的一部分和磁盘中第一层树合并,对于磁盘中的树形结构直接更新操作有可能会破坏物理“块”的连续性,但是实际应用中,一般“引擎树”有多层,当磁盘中的小树形结构合并成一个大树形结构的时候,可以重新排好顺序,使得“块”连续,优化读性能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种数据存储方法,其特征在于,所述数据存储方法应用于一种数据存储结构,所述数据存储结构包括存储结构相互独立的逻辑层和存储层;所述存储层的硬件存储结构为磁盘,所述逻辑层的硬件存储结构为内存;所述存储层包括多个磁盘数据存储表和磁盘数据合并表;每个所述磁盘数据存储表包括多个磁盘年数据存储表;每个所述磁盘年数据存储表包括12个磁盘月数据存储表;每个所述磁盘月数据存储表中包括多个磁盘日数据存储表;每个所述磁盘日数据存储表包括24个磁盘时数据存储表;所述磁盘数据合并表包括多个磁盘年数据合并表、多个磁盘月数据合并表以及多个磁盘日数据合并表;所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表相互独立;所述磁盘年数据合并表用于保存自然年获取的数据信息;所述磁盘月数据合并表用于保存自然月获取的数据信息;所述磁盘日数据合并表用于保存自然日获取的数据信息;所述磁盘数据存储表、所述磁盘年数据存储表、所述磁盘月数据存储表、所述磁盘日数据存储表、所述磁盘时数据存储表、所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表对应的哈希值区间互不相同;所述逻辑层包括缓存数据表、数据存储地址信息表、数据合并地址信息表以及数据哈希值存储表;所述数据存储地址信息表用于保存所述磁盘年数据存储表的哈希值区间以及所述磁盘年数据存储表的哈希值区间对应的地址信息、所述磁盘月数据存储表的哈希值区间以及所述磁盘月数据存储表的哈希值区间对应的地址信息、所述磁盘日数据存储表的哈希值区间以及所述磁盘日数据存储表的哈希值区间对应的地址信息、所述磁盘时数据存储表的哈希值区间以及所述磁盘时数据存储表的哈希值区间对应的地址信息;所述数据合并地址信息表用于保存所述磁盘年数据合并表的哈希值区间以及所述磁盘年数据合并表的哈希值区间对应的地址信息、所述磁盘月数据合并表的哈希值区间以及所述磁盘月数据合并表的哈希值区间对应的地址信息、所述磁盘日数据合并表的哈希值区间以及所述磁盘日数据合并表的哈希值区间对应的地址信息;所述数据存储方法包括:
获取数据信息;所述数据信息包括车信息和获取所述车信息时对应的时间信息;所述车信息包括车的唯一性标识信息和车的业务数据;
对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;所述第一键-值对数据结构中的数据键存储所述车的唯一性标识信息;所述第二键-值对数据结构中的数据键存储所述时间信息中的年信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的月信息;所述第四键-值对数据结构中的数据键存储所述时间信息中的日信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的时信息;所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的数据值存储所述数据信息;
根据哈希算法,分别计算所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的所述数据键的哈希值;
按照所述第一键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的磁盘数据存储表,按照所述第二键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘数据存储表中的磁盘年数据存储表;按照所述第三键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘年数据存储表中的磁盘月数据存储表;按照所述第四键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘月数据存储表中的磁盘日数据存储表;按照所述第五键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘日数据存储表中的磁盘时数据存储表,并将所述数据信息存入到所述磁盘时数据存储表中。
2.根据权利要求1所述的数据存储方法,其特征在于,在对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构之前,所述数据存储方法还包括:
将获取的数据信息保存至所述缓存数据表中,并判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果;
若所述第一判断结果表示所述缓存数据表中的存储量大于或者等于所述第一阈值,则对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;
若所述第一判断结果表示所述缓存数据表中的存储量小于所述第一阈值,则将获取的所述数据信息继续保存到所述缓存数据表中,并返回判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果步骤。
3.根据权利要求2所述的数据存储方法,其特征在于,在将获取的数据信息保存至所述缓存数据表中,并判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果之前,所述数据存储方法还包括:
计算所述数据信息的哈希值;
判断所述数据哈希值存储表中是否存在与所述数据信息的哈希值相同的哈希值,得到第二判断结果;所述数据哈希值存储表用于保存数据信息的哈希值;
若所述第二判断结果表示所述数据哈希值存储表中存在与所述数据信息的哈希值相同的哈希值,则将所述数据信息与所述数据信息的哈希值相同的数据信息合并。
4.一种数据查询方法,其特征在于,所述数据查询方法应用于一种数据存储结构,所述数据存储结构包括存储结构相互独立的逻辑层和存储层;所述存储层的硬件存储结构为磁盘,所述逻辑层的硬件存储结构为内存;所述存储层包括多个磁盘数据存储表和磁盘数据合并表;每个所述磁盘数据存储表包括多个磁盘年数据存储表;每个所述磁盘年数据存储表包括12个磁盘月数据存储表;每个所述磁盘月数据存储表中包括多个磁盘日数据存储表;每个所述磁盘日数据存储表包括24个磁盘时数据存储表;所述磁盘数据合并表包括多个磁盘年数据合并表、多个磁盘月数据合并表以及多个磁盘日数据合并表;所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表相互独立;所述磁盘年数据合并表用于保存自然年获取的数据信息;所述磁盘月数据合并表用于保存自然月获取的数据信息;所述磁盘日数据合并表用于保存自然日获取的数据信息;所述磁盘数据存储表、所述磁盘年数据存储表、所述磁盘月数据存储表、所述磁盘日数据存储表、所述磁盘时数据存储表、所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表对应的哈希值区间互不相同;所述逻辑层包括缓存数据表、数据存储地址信息表、数据合并地址信息表以及数据哈希值存储表;所述数据存储地址信息表用于保存所述磁盘年数据存储表的哈希值区间以及所述磁盘年数据存储表的哈希值区间对应的地址信息、所述磁盘月数据存储表的哈希值区间以及所述磁盘月数据存储表的哈希值区间对应的地址信息、所述磁盘日数据存储表的哈希值区间以及所述磁盘日数据存储表的哈希值区间对应的地址信息、所述磁盘时数据存储表的哈希值区间以及所述磁盘时数据存储表的哈希值区间对应的地址信息;所述数据合并地址信息表用于保存所述磁盘年数据合并表的哈希值区间以及所述磁盘年数据合并表的哈希值区间对应的地址信息、所述磁盘月数据合并表的哈希值区间以及所述磁盘月数据合并表的哈希值区间对应的地址信息、所述磁盘日数据合并表的哈希值区间以及所述磁盘日数据合并表的哈希值区间对应的地址信息;所述数据哈希值存储表用于保存数据信息的哈希值;所述数据查询方法包括:
获取用户所需数据的查询请求;所述查询请求包括车的唯一性标识信息和时间信息;
根据所述用户所需数据的查询请求,判断所述用户所需数据是否在所述缓存数据表内,得到第三判断结果;
若所述第三判断结果表示所述用户所需数据在所述缓存数据表内,则从所述缓存数据表内提取用户所需数据;
若所述第三判断结果表示所述用户所需数据不在所述缓存数据表内,则计算第一哈希值和第二哈希值;所述第一哈希值为所述查询请求中的车的唯一性标识信息的哈希值;所述第二哈希值为所述查询请求中时间信息的哈希值;
判断所述数据合并地址信息表中是否存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,得到第四判断结果;
若所述第四判断结果表示所述数据合并地址信息表中存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,则根据均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据;
若所述第四判断结果表示所述数据合并地址信息表中不存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,则从所述数据存储地址信息表中,遍历查找均包含所述第一哈希值和所述第二哈希值的哈希值区间,并根据所述数据存储地址信息表中均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据。
5.一种数据存储系统,其特征在于,所述数据存储系统应用于一种数据存储结构,所述数据存储结构包括存储结构相互独立的逻辑层和存储层;所述存储层的硬件存储结构为磁盘,所述逻辑层的硬件存储结构为内存;所述存储层包括多个磁盘数据存储表和磁盘数据合并表;每个所述磁盘数据存储表包括多个磁盘年数据存储表;每个所述磁盘年数据存储表包括12个磁盘月数据存储表;每个所述磁盘月数据存储表中包括多个磁盘日数据存储表;每个所述磁盘日数据存储表包括24个磁盘时数据存储表;所述磁盘数据合并表包括多个磁盘年数据合并表、多个磁盘月数据合并表以及多个磁盘日数据合并表;所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表相互独立;所述磁盘年数据合并表用于保存自然年获取的数据信息;所述磁盘月数据合并表用于保存自然月获取的数据信息;所述磁盘日数据合并表用于保存自然日获取的数据信息;所述磁盘数据存储表、所述磁盘年数据存储表、所述磁盘月数据存储表、所述磁盘日数据存储表、所述磁盘时数据存储表、所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表对应的哈希值区间互不相同;所述逻辑层包括缓存数据表、数据存储地址信息表、数据合并地址信息表以及数据哈希值存储表;所述数据存储地址信息表用于保存所述磁盘年数据存储表的哈希值区间以及所述磁盘年数据存储表的哈希值区间对应的地址信息、所述磁盘月数据存储表的哈希值区间以及所述磁盘月数据存储表的哈希值区间对应的地址信息、所述磁盘日数据存储表的哈希值区间以及所述磁盘日数据存储表的哈希值区间对应的地址信息、所述磁盘时数据存储表的哈希值区间以及所述磁盘时数据存储表的哈希值区间对应的地址信息;所述数据合并地址信息表用于保存所述磁盘年数据合并表的哈希值区间以及所述磁盘年数据合并表的哈希值区间对应的地址信息、所述磁盘月数据合并表的哈希值区间以及所述磁盘月数据合并表的哈希值区间对应的地址信息、所述磁盘日数据合并表的哈希值区间以及所述磁盘日数据合并表的哈希值区间对应的地址信息;所述数据存储系统包括:
数据信息获取模块,用于获取数据信息;所述数据信息包括车信息和获取所述车信息时对应的时间信息;所述车信息包括车的唯一性标识信息和车的业务数据;
键-值对数据结构得到模块,用于对所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;所述第一键-值对数据结构中的数据键存储所述车的唯一性标识信息;所述第二键-值对数据结构中的数据键存储所述时间信息中的年信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的月信息;所述第四键-值对数据结构中的数据键存储所述时间信息中的日信息;所述第三键-值对数据结构中的数据键存储所述时间信息中的时信息;所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的数据值存储所述数据信息;
数据键哈希值计算模块,用于根据哈希算法,分别计算所述第一键-值对数据结构、所述第二键-值对数据结构、所述第三键-值对数据结构、所述第四键-值对数据结构以及所述第五键-值对数据结构中的所述数据键的哈希值;
数据信息存储模块,用于按照所述第一键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的磁盘数据存储表,按照所述第二键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘数据存储表中的磁盘年数据存储表;按照所述第三键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘年数据存储表中的磁盘月数据存储表;按照所述第四键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘月数据存储表中的磁盘日数据存储表;按照所述第五键-值对数据结构中的所述数据键的哈希值,确定所述数据信息存储的所述磁盘日数据存储表中的磁盘时数据存储表,并将所述数据信息存入到所述磁盘时数据存储表中。
6.根据权利要求5所述的数据存储系统,其特征在于,所述数据存储系统还包括:
第一判断结果得到模块,用于将获取的数据信息保存至所述缓存数据表中,并判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果;
数据处理模块,用于当所述第一判断结果表示所述缓存数据表中的存储量大于或者等于所述第一阈值时,对所述缓存数据表中的所述数据信息进行处理,得到第一键-值对数据结构、第二键-值对数据结构、第三键-值对数据结构、第四键-值对数据结构以及第五键-值对数据结构;
数据信息保存模块,用于当所述第一判断结果表示所述缓存数据表中的存储量小于所述第一阈值时,将获取的所述数据信息继续保存到所述缓存数据表中,判断所述缓存数据表中的存储量是否大于或者等于第一阈值,得到第一判断结果。
7.根据权利要求5所述的数据存储系统,其特征在于,所述数据存储系统还包括:
数据信息哈希值计算模块,用于计算所述数据信息的哈希值;
第二结果判断模块,用于判断所述数据哈希值存储表中是否存在与所述数据信息的哈希值相同的哈希值,得到第二判断结果;所述数据哈希值存储表用于保存数据信息的哈希值;
合并模块,用于当所述第二判断结果表示所述数据哈希值存储表中存在与所述数据信息的哈希值相同的哈希值时,将所述数据信息与所述数据信息的哈希值相同的数据信息合并。
8.一种数据查询系统,其特征在于,所述数据查询系统应用于一种数据存储结构,所述数据存储结构包括存储结构相互独立的逻辑层和存储层;所述存储层的硬件存储结构为磁盘,所述逻辑层的硬件存储结构为内存;所述存储层包括多个磁盘数据存储表和磁盘数据合并表;每个所述磁盘数据存储表包括多个磁盘年数据存储表;每个所述磁盘年数据存储表包括12个磁盘月数据存储表;每个所述磁盘月数据存储表中包括多个磁盘日数据存储表;每个所述磁盘日数据存储表包括24个磁盘时数据存储表;所述磁盘数据合并表包括多个磁盘年数据合并表、多个磁盘月数据合并表以及多个磁盘日数据合并表;所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表相互独立;所述磁盘年数据合并表用于保存自然年获取的数据信息;所述磁盘月数据合并表用于保存自然月获取的数据信息;所述磁盘日数据合并表用于保存自然日获取的数据信息;所述磁盘数据存储表、所述磁盘年数据存储表、所述磁盘月数据存储表、所述磁盘日数据存储表、所述磁盘时数据存储表、所述磁盘年数据合并表、所述磁盘月数据合并表以及所述磁盘日数据合并表对应的哈希值区间互不相同;所述逻辑层包括缓存数据表、数据存储地址信息表、数据合并地址信息表以及数据哈希值存储表;所述数据存储地址信息表用于保存所述磁盘年数据存储表的哈希值区间以及所述磁盘年数据存储表的哈希值区间对应的地址信息、所述磁盘月数据存储表的哈希值区间以及所述磁盘月数据存储表的哈希值区间对应的地址信息、所述磁盘日数据存储表的哈希值区间以及所述磁盘日数据存储表的哈希值区间对应的地址信息、所述磁盘时数据存储表的哈希值区间以及所述磁盘时数据存储表的哈希值区间对应的地址信息;所述数据合并地址信息表用于保存所述磁盘年数据合并表的哈希值区间以及所述磁盘年数据合并表的哈希值区间对应的地址信息、所述磁盘月数据合并表的哈希值区间以及所述磁盘月数据合并表的哈希值区间对应的地址信息、所述磁盘日数据合并表的哈希值区间以及所述磁盘日数据合并表的哈希值区间对应的地址信息;所述数据哈希值存储表用于保存数据信息的哈希值;所述数据查询系统包括:
查询请求获取模块,用于获取用户所需数据的查询请求;所述查询请求包括车的唯一性标识信息和时间信息;
第三判断结果得到模块,用于根据所述用户所需数据的查询请求,判断所述用户所需数据是否在所述缓存数据表内,得到第三判断结果;
用户所需数据提取模块,用于当所述第三判断结果表示所述用户所需数据在所述缓存数据表内时,从所述缓存数据表内提取用户所需数据;
查询请求哈希值计算模块,用于当所述第三判断结果表示所述用户所需数据不在所述缓存数据表内时,计算第一哈希值和第二哈希值;所述第一哈希值为所述查询请求中的车的唯一性标识信息的哈希值;所述第二哈希值为所述查询请求中时间信息的哈希值;
第四判断结果得到模块,用于判断所述数据合并地址信息表中是否存在均包含所述第一哈希值和所述第二哈希值的哈希值区间,得到第四判断结果;
第一用户所需数据获取模块,用于当所述第四判断结果表示所述第四判断结果表示所述数据合并地址信息表中存在均包含所述第一哈希值和所述第二哈希值的哈希值区间时,根据均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据;
第二用户所需数据获取模块,用于当所述第四判断结果表示所述数据合并地址信息表中不存在均包含所述第一哈希值和所述第二哈希值的哈希值区间时,从所述数据存储地址信息表中,遍历查找均包含所述第一哈希值和所述第二哈希值的哈希值区间,并根据所述数据存储地址信息表中均包含所述第一哈希值和所述第二哈希值的哈希值区间所对应的地址信息,获取用户所需数据。
CN201710797623.XA 2017-09-06 2017-09-06 一种数据存储查询方法及系统 Active CN107870970B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710797623.XA CN107870970B (zh) 2017-09-06 2017-09-06 一种数据存储查询方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710797623.XA CN107870970B (zh) 2017-09-06 2017-09-06 一种数据存储查询方法及系统

Publications (2)

Publication Number Publication Date
CN107870970A CN107870970A (zh) 2018-04-03
CN107870970B true CN107870970B (zh) 2019-10-25

Family

ID=61761565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710797623.XA Active CN107870970B (zh) 2017-09-06 2017-09-06 一种数据存储查询方法及系统

Country Status (1)

Country Link
CN (1) CN107870970B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840245B (zh) * 2019-01-31 2020-12-18 中铁工程装备集团有限公司 一种基于分片存储和折半索引的数据查询引擎
CN109871338B (zh) * 2019-03-15 2021-01-29 北京思特奇信息技术股份有限公司 一种数据存储方法、装置及计算机设备
CN112231319B (zh) * 2020-10-15 2022-11-15 国电南瑞科技股份有限公司 一种地铁监控系统的实时数据存储和查询方法
CN112291042B (zh) * 2020-10-23 2022-02-08 中国电子科技集团公司第三十研究所 一种基于服务的窄带通信网络数据透明传输方法及其系统
CN112860794B (zh) * 2021-02-03 2024-08-13 百果园技术(新加坡)有限公司 基于缓存的并发能力提升方法、装置、设备及存储介质
CN113342813B (zh) * 2021-06-09 2024-01-26 南京冰鉴信息科技有限公司 键值数据处理方法、装置、计算机设备及可读存储介质
CN113486025B (zh) * 2021-07-28 2023-07-25 北京腾云天下科技有限公司 数据存储方法、数据查询方法及装置
CN113961514B (zh) * 2021-12-20 2022-03-08 支付宝(杭州)信息技术有限公司 数据查询方法及装置
CN114265865A (zh) * 2021-12-24 2022-04-01 北京天融信网络安全技术有限公司 数据查询方法、系统、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556557A (zh) * 2009-05-14 2009-10-14 浙江大学 一种基于对象存储设备的对象文件组织方法
CN103370113A (zh) * 2012-12-12 2013-10-23 华为技术有限公司 数据存储方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010081321A (ja) * 2008-09-26 2010-04-08 Fujitsu Ltd コンテンツの再生を指示するためのコントロール端末、コンテンツ中継装置及びリモートコンテンツ再生システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556557A (zh) * 2009-05-14 2009-10-14 浙江大学 一种基于对象存储设备的对象文件组织方法
CN103370113A (zh) * 2012-12-12 2013-10-23 华为技术有限公司 数据存储方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
内存数据库存储及索引技术研究;肖富平;《中国优秀硕士学位论文全文库信息科技辑》;20100315(第03期);I138-619 *

Also Published As

Publication number Publication date
CN107870970A (zh) 2018-04-03

Similar Documents

Publication Publication Date Title
CN107870970B (zh) 一种数据存储查询方法及系统
US11704290B2 (en) Methods, devices and systems for maintaining consistency of metadata and data across data centers
CN104133882B (zh) 一种基于hdfs的小文件处理方法
CN110825748B (zh) 利用差异化索引机制的高性能和易扩展的键值存储方法
CN107463447B (zh) 一种基于远程直接非易失内存访问的b+树管理方法
EP2735978B1 (en) Storage system and management method used for metadata of cluster file system
CN103765393B (zh) 存储系统
CN107423422B (zh) 基于网格的空间数据分布式存储及检索方法和系统
CN101556557B (zh) 一种基于对象存储设备的对象文件组织方法
US11841844B2 (en) Index update pipeline
US9155320B2 (en) Prefix-based leaf node storage for database system
CN102521269B (zh) 一种基于索引的计算机连续数据保护方法
EP1548598A1 (en) Database re-organizing system and database
CN110347336A (zh) 一种基于nvm与ssd混合存储结构的键值存储系统
CN107787489A (zh) 包括层级的文件存储系统
CN103530387A (zh) 一种hdfs针对小文件的改进方法
CN107798130A (zh) 一种分布式存储的快照方法
CN110058822A (zh) 一种磁盘阵列横向拓展方法
CN114281762B (zh) 一种日志存储加速方法、装置、设备及介质
CN110188108A (zh) 数据存储方法、装置、系统、计算机设备及存储介质
CN102722449A (zh) 基于SSD的Key-Value型本地存储方法及系统
CN104657459A (zh) 一种基于文件粒度的海量数据存储方法
CN101329642A (zh) 基于时间戳日志存储的连续数据保护和恢复方法
CN106951375A (zh) 在存储系统中删除快照卷的方法及装置
CN113590612A (zh) Dram-nvm混合索引结构的构建方法及操作方法

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