CN107766445B - 一种支持多维度检索的高效快速数据检索方法 - Google Patents
一种支持多维度检索的高效快速数据检索方法 Download PDFInfo
- Publication number
- CN107766445B CN107766445B CN201710869223.5A CN201710869223A CN107766445B CN 107766445 B CN107766445 B CN 107766445B CN 201710869223 A CN201710869223 A CN 201710869223A CN 107766445 B CN107766445 B CN 107766445B
- Authority
- CN
- China
- Prior art keywords
- data
- time
- retrieval
- data block
- message
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种支持多维度检索的高效快速数据检索方法,具体步骤如下:将接收到的每个消息数据块存储于高效数据块存储结构中;在时间维度上采用时间分块顺序存储算法,数据块之间采用链式存储,每个数据块内按照时间顺序采用顺序存储结构;所述高效数据块存储结构在其他维度上按照消息头不同字段建立哈希表,当消息包的哈希值相同时,建立链式队列,将数据包链接起来。本发明利用系统的超大内存硬件资源,将所有需要存储的数据块头按照一定的规则索引存储,上述存储架构在各个维度方向均支持精确检索,且支持按照时间的精确查询以及范围查询,且时间复杂度为常数级别,能够在海量数据环境下实现快速检索的目的。
Description
技术领域
本发明涉及大数据处理技术领域,具体是一种支持多维度检索的高效快速数据检索方法。
背景技术
目前采用双机备份的技术来保证数据采集的高可靠性,双机备份包括采集过程的备份以及后台数据的备份,当前后台数据库备份技术已经成熟,只需利用合理的数据库技术,就可以达到数据库引擎以及数据库存储的备份目的。
双机备份系统采集的数据具有突发流量大,且经过系统长时间运行后,由于系统信息的重要性,要求系统在运行过程中,在各种突发的异常情况下,采集的所有信息都被存储到数据库。系统采集的数据是海量的,如何在这些海量数据中对各种信息快速查询,是亟需解决的问题。
当今互联网处在海量数据的时代,数据存储和查询的方法和工具也越来越多样。目前,作为数据查询、存储的工具种类繁多,各有优劣。
传统关系型数据库,作为主要的高可靠高容错的存储单元,相对成本便宜。对于分布式数据储存上,我们将传统的单张表,选取特定的字段作为分库分表的主键,将大批量的数据存储到不同的数据库单元,不同的数据库表中。分库分表以后,通过分库分表的主键,可以准确命中数据所属的数据存储单元,有效查询到表中所需的数据。而对于不包含分库分表主键的查询,则会进行多表扫描,效率低,资源占用高。
缓存,作为热点数据的存储单元。对于经常访问到的数据,加载到处于内存上的缓存中,提供最快速的查询访问服务。缓存价格昂贵,容量有限。大数据下,数据查询很容易不在缓存中命中,而落到数据库中进行查询,导致如上数据库查询的弱点暴露,以至于查询结果不能有效返回。搜索引擎中,会为需要查询的字段,全量建立索引,来提高数据查询的速度。缺点也很明显,无法做到数据库中跨表级联数据来进行查询,往往会将需要级联的表,构造成一张超大的宽表,来进行查询,占用空间大,代价高;每次新建索引,需要做全量构建,随着数据量的增大,全量构建会花费大量的时间,期间的查询不能保障。
上述无论单独采用哪种技术手段,都无法同时提供准实时、可多维度的查询。
发明内容
本发明的目的在于提供一种高效快速的支持多维度检索的高效快速数据检索方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种支持多维度检索的高效快速数据检索方法,具体步骤如下:
1)建立基于四维链表的高效数据块存储结构并将接收到的每个消息数据块存储于上述高效数据块存储结构中;
2)所述高效数据块存储结构在时间维度上采用时间分块顺序存储算法,数据块之间采用链式存储,每个数据块内按照时间顺序采用顺序存储结构;
3)定义数据密度为每秒存储的数据个数,计算公式如下:
数据密度=数据块中消息个数/86400公式(1);
4)所述高效数据块存储结构在其他维度上按照消息头不同字段建立哈希表,当消息包的哈希值相同时,建立链式队列,将数据包链接起来;
5)当按照时间维度进行查询时,首先按照链式结构,检索到当天的数据块,然后根据数据块的数据密度,按照以下公式(2)定位检索数据大致所在位置:
位置=时间×数据密度公式(2);
6)再根据上述得到的位置的消息数据时间与检索时间比较,根据比较的结果,判断向前检索还是向后检索,然后精确比较定位,定位之后,根据该维度的链表,返回所检索的消息数据;
7)若检索时间段内的范围查询,则按照步骤5)-步骤6),分别精确定位起始时间和终点时间,由于存储方式是数据块内采用基于时间的顺序存储方式,则起始时间和终点时间之间的时间段内的所有数据均是符合检索条件的消息数据;
8)当按照DT值、DH值或DB值进行查询时,首先计算哈希值,然后按照哈希值定位其所在链表,然后检索链表内的消息数据。
作为本发明进一步的方案:所述步骤2)中每个数据块内存储的是一天的数据。
作为本发明再进一步的方案:所述公式(2)中的时间精确到秒。
与现有技术相比,本发明的有益效果是:
本发明利用系统的超大内存硬件资源,将所有需要存储的数据块头按照一定的规则索引存储,上述存储架构在各个维度方向均支持精确检索,且支持按照时间的精确查询以及范围查询,且时间复杂度为常数级别,能够在海量数据环境下实现快速检索的目的。
附图说明
图1为本发明中基于四维链表的高效数据块存储结构的示意图。
具体实施方式
下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
请参阅图1,一种支持多维度检索的高效快速数据检索方法,具体步骤如下:
1)建立基于四维链表的高效数据块存储结构并将接收到的每个消息数据块存储于上述高效数据块存储结构中;
2)所述高效数据块存储结构在时间维度上采用时间分块顺序存储算法,数据块之间采用链式存储,每个数据块内按照时间顺序采用顺序存储结构;每个数据块内存储的是一天的数据;
3)定义数据密度为每秒存储的数据个数,计算公式如下:
数据密度=数据块中消息个数/86400公式(1);
4)所述高效数据块存储结构在其他维度上按照消息头不同字段建立哈希表,当消息包的哈希值相同时,建立链式队列,将数据包链接起来;
5)当按照时间维度进行查询时,首先按照链式结构,检索到当天的数据块,然后根据数据块的数据密度,按照以下公式(2)定位检索数据大致所在位置:
位置=时间×数据密度公式(2);其中时间精确到秒;
6)再根据上述得到的位置的消息数据时间与检索时间比较,根据比较的结果,判断向前检索还是向后检索,然后精确比较定位,定位之后,根据该维度的链表,返回所检索的消息数据;
7)若检索时间段内的范围查询,则按照步骤5)-步骤6),分别精确定位起始时间和终点时间,由于存储方式是数据块内采用基于时间的顺序存储方式,则起始时间和终点时间之间的时间段内的所有数据均是符合检索条件的消息数据;
8)当按照DT值、DH值或DB值进行查询时,首先计算哈希值,然后按照哈希值定位其所在链表,然后检索链表内的消息数据。
由于系统每天都会存储大量的数据,链式顺序检索时间复杂度远小于数据量,而一天内的数据采用顺序存储,尽管有突发数据影响,但是整体上数据时间轴上是均匀分布的,所以,上述近似于按照时间直接定位的算法,按照时间进行检索时,时间复杂度为常数;另外,由于哈希函数的复杂度为常数级,因此按照这个维度进行检索时,检索时间复杂度为常数级。
本发明利用系统的超大内存硬件资源,将所有需要存储的数据块头按照一定的规则索引存储,上述存储架构在各个维度方向均支持精确检索,且支持按照时间的精确查询以及范围查询,且时间复杂度为常数级别,能够在海量数据环境下实现快速检索的目的。
上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下作出各种变化。
Claims (3)
1.一种支持多维度检索的高效快速数据检索方法,其特征在于,具体步骤如下:
1)建立基于四维链表的高效数据块存储结构并将接收到的每个消息数据块存储于上述高效数据块存储结构中;
2)所述高效数据块存储结构在时间维度上采用时间分块顺序存储算法,数据块之间采用链式存储,每个数据块内按照时间顺序采用顺序存储结构;
3)定义数据密度为每秒存储的数据个数,计算公式如下:
数据密度=数据块中消息个数/86400 公式(1);
4)所述高效数据块存储结构在其他维度上按照消息头不同字段建立哈希表,当消息包的哈希值相同时,建立链式队列,将数据包链接起来;
5)当按照时间维度进行查询时,首先按照链式结构,检索到当天的数据块,然后根据数据块的数据密度,按照以下公式(2)定位检索数据大致所在位置:
位置=时间×数据密度公式(2);
6)再根据上述得到的位置的消息数据时间与检索时间比较,根据比较的结果,判断向前检索还是向后检索,然后精确比较定位,定位之后,根据该维度的链表,返回所检索的消息数据;
7)当按照检索时间段内的范围进行查询时,则按照步骤5)-步骤6),分别精确定位起始时间和终点时间,由于存储方式是数据块内采用基于时间的顺序存储方式,则起始时间和终点时间之间的时间段内的所有数据均是符合检索条件的消息数据;
8)当按照DT值、DH值或DB值进行查询时,首先计算哈希值,然后按照哈希值定位其所在链表,然后检索链表内的消息数据。
2.根据权利要求1所述的支持多维度检索的高效快速数据检索方法,其特征在于,所述步骤2)中每个数据块内存储的是一天的数据。
3.根据权利要求1所述的支持多维度检索的高效快速数据检索方法,其特征在于,所述公式(2)中的时间精确到秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710869223.5A CN107766445B (zh) | 2017-09-23 | 2017-09-23 | 一种支持多维度检索的高效快速数据检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710869223.5A CN107766445B (zh) | 2017-09-23 | 2017-09-23 | 一种支持多维度检索的高效快速数据检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107766445A CN107766445A (zh) | 2018-03-06 |
CN107766445B true CN107766445B (zh) | 2021-06-01 |
Family
ID=61267307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710869223.5A Active CN107766445B (zh) | 2017-09-23 | 2017-09-23 | 一种支持多维度检索的高效快速数据检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766445B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069496A (zh) * | 2019-03-20 | 2019-07-30 | 韶关学院 | 一种新型链式哈希表构建方法及装置 |
CN111125099B (zh) * | 2019-12-10 | 2022-12-09 | 苏宁云计算有限公司 | 基于Druid宽表的关联数据处理方法及装置 |
CN111025068B (zh) * | 2019-12-24 | 2022-05-20 | 宁波三星医疗电气股份有限公司 | 电表负荷曲线数据抄读方法、装置和电子设备 |
CN112579541A (zh) * | 2020-12-09 | 2021-03-30 | 李永生 | 一种基于精准定位和快速可定制的grib数据提取方法 |
CN113515576A (zh) * | 2021-07-13 | 2021-10-19 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备和计算机可读介质 |
CN116304390B (zh) * | 2023-04-13 | 2024-02-13 | 北京基调网络股份有限公司 | 时序数据处理方法、装置、存储介质及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2344638A1 (en) * | 1998-09-30 | 2000-04-06 | I2 Technologies, Inc. | Multi-dimensional data management system |
CN1517906A (zh) * | 2003-01-14 | 2004-08-04 | 联想(北京)有限公司 | 文件系统及文件管理方法 |
CN1534942A (zh) * | 2003-03-31 | 2004-10-06 | ض� | 使用哈希表森林数据结构的分组分类方法与装置 |
CN1949226A (zh) * | 2006-11-23 | 2007-04-18 | 金蝶软件(中国)有限公司 | 一种联机分析处理系统中多维数据读写的方法和装置 |
CN101242365A (zh) * | 2008-03-11 | 2008-08-13 | 南京邮电大学 | 基于多维分布式哈希表的对等网络安全路由方法 |
CN101308502A (zh) * | 2008-04-01 | 2008-11-19 | 南靖万利达科技有限公司 | 快速检索图片的方法 |
CN101430693A (zh) * | 2008-11-12 | 2009-05-13 | 山东理工大学 | 三角网格曲面模型的空间查询方法 |
CN103617216A (zh) * | 2013-11-21 | 2014-03-05 | 珠海金山网络游戏科技有限公司 | 一种通过新型哈希值表实现数据快速检索的方法和系统 |
US8793257B2 (en) * | 2009-05-24 | 2014-07-29 | Roger Frederick Osmond | Method for improving the effectiveness of hash-based data structures |
CN104462328A (zh) * | 2014-12-02 | 2015-03-25 | 深圳中科讯联科技有限公司 | 一种基于哈希表与双循环链表的混合数据管理方法及装置 |
-
2017
- 2017-09-23 CN CN201710869223.5A patent/CN107766445B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2344638A1 (en) * | 1998-09-30 | 2000-04-06 | I2 Technologies, Inc. | Multi-dimensional data management system |
CN1517906A (zh) * | 2003-01-14 | 2004-08-04 | 联想(北京)有限公司 | 文件系统及文件管理方法 |
CN1534942A (zh) * | 2003-03-31 | 2004-10-06 | ض� | 使用哈希表森林数据结构的分组分类方法与装置 |
CN1949226A (zh) * | 2006-11-23 | 2007-04-18 | 金蝶软件(中国)有限公司 | 一种联机分析处理系统中多维数据读写的方法和装置 |
CN101242365A (zh) * | 2008-03-11 | 2008-08-13 | 南京邮电大学 | 基于多维分布式哈希表的对等网络安全路由方法 |
CN101308502A (zh) * | 2008-04-01 | 2008-11-19 | 南靖万利达科技有限公司 | 快速检索图片的方法 |
CN101430693A (zh) * | 2008-11-12 | 2009-05-13 | 山东理工大学 | 三角网格曲面模型的空间查询方法 |
US8793257B2 (en) * | 2009-05-24 | 2014-07-29 | Roger Frederick Osmond | Method for improving the effectiveness of hash-based data structures |
CN103617216A (zh) * | 2013-11-21 | 2014-03-05 | 珠海金山网络游戏科技有限公司 | 一种通过新型哈希值表实现数据快速检索的方法和系统 |
CN104462328A (zh) * | 2014-12-02 | 2015-03-25 | 深圳中科讯联科技有限公司 | 一种基于哈希表与双循环链表的混合数据管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107766445A (zh) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766445B (zh) | 一种支持多维度检索的高效快速数据检索方法 | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
CN101540723B (zh) | 一种流表查找方法和装置 | |
CN104424258B (zh) | 多维数据查询的方法、查询服务器、列存储服务器及系统 | |
CN109656958B (zh) | 数据查询方法以及系统 | |
CN107368527B (zh) | 基于数据流的多属性索引方法 | |
WO2018036549A1 (zh) | 分布式数据库查询方法、装置及管理系统 | |
CN102622434B (zh) | 数据存储方法、查找方法及装置 | |
US20050192941A1 (en) | Fast aggregation of compressed data using full table scans | |
CN103744913A (zh) | 一种基于搜索引擎技术的数据库检索方法 | |
EP3862888A1 (en) | Hybrid data distribution in a massively parallel processing architecture | |
CN109597829B (zh) | 一种实现可搜索加密关系型数据库缓存的中间件方法 | |
CN110109948A (zh) | 数据查询方法、计算机设备及计算机可读存储介质 | |
CN110413631B (zh) | 一种数据查询方法及装置 | |
CN111046081B (zh) | 一种工业时序数据的访问方法及系统 | |
US20220350807A1 (en) | Structure and method of aggregation index for improving aggregation query efficiency | |
US20080097971A1 (en) | Peer-to-peer based secondary key search method and system for cluster database | |
CN103034650A (zh) | 一种数据处理系统和方法 | |
CN110008289B (zh) | 一种关系数据库、电网模型数据存储及检索方法 | |
CN109800228B (zh) | 一种高效快速解决hash冲突的方法 | |
US20180173762A1 (en) | System and Method of Adaptively Partitioning Data to Speed Up Join Queries on Distributed and Parallel Database Systems | |
CN110825940A (zh) | 网络数据包存储和查询方法 | |
CN110209742B (zh) | 一种基于区块链依据数据重要性分类存储系统及方法 | |
CN112463837B (zh) | 一种关系型数据库数据存储查询方法 |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: An Efficient and Fast Data Retrieval Method Supporting Multidimensional Retrieval Effective date of registration: 20230630 Granted publication date: 20210601 Pledgee: China Construction Bank Co.,Ltd. Changsha Hexi Sub branch Pledgor: HUNAN SINOEVIN OPTOELECTRONIC TECHNOLOGY CO.,LTD. Registration number: Y2023980046982 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |