CN114297227A - 时序数据库的架构方法、查询方法和时序数据库 - Google Patents
时序数据库的架构方法、查询方法和时序数据库 Download PDFInfo
- Publication number
- CN114297227A CN114297227A CN202111597106.0A CN202111597106A CN114297227A CN 114297227 A CN114297227 A CN 114297227A CN 202111597106 A CN202111597106 A CN 202111597106A CN 114297227 A CN114297227 A CN 114297227A
- Authority
- CN
- China
- Prior art keywords
- layer
- time
- chunk
- data
- record
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种时序数据库的架构方法、查询方法和时序数据库,属于数据库技术领域,包括步骤:S1,根据时序数据本身自带顺序的特点,保留顺序写;S2,按时间颗粒度进行统计信息分层,每一层之间直接访问,无需返回根节点或上层节点,所述统计信息按统一的数据块来进行管理。本发明可以有效减少I/O,显著提高数据库查询性能。
Description
技术领域
本发明涉及时序数据库技术领域,更为具体的,涉及一种时序数据库的架构方法、查询方法和时序数据库。
背景技术
目前时序数据库存储结构主要采用B-Tree、B+Tree、LSM-stree。以LSM-tree为例,LSM-tree其核心思想是充分利用了磁盘批量的顺序写远比随机写性能高很多的原理设计的,这种结构的写入全部是以Append的模式追加,不存在删除和修改,这种结构虽然大大弥补了B+tree的数据写入能力,但却是以牺牲部分读取性能为代价。
发明内容
本发明的目的在于克服现有技术的不足,提供一种时序数据库的架构方法、查询方法和时序数据库,可以有效减少I/O操作,提高数据库查询性能等。
本发明的目的是通过以下方案实现的:
一种时序数据库的架构方法,包括步骤:
S1,根据时序数据本身自带顺序的特点,保留顺序写;
S2,按时间颗粒度进行统计信息分层,每一层之间直接访问,无需返回根节点或上层节点,所述统计信息按统一的数据块来进行管理。
进一步地,步骤S2基于如下框架实现:
最底层为Data-page层,每个数据块中有多条记录;按颗粒度从小到大依次往上排列为Second-Chunk层、Minute-Chuck层、Hour-Chunk层、Root层、Partition层;在Second-Chunk层、Minute-Chuck层和Hour-Chunk层,记录分别以第一时间和第二时间为单位进行统计,统计出第一时间和第二时间内每个字段的特征值信息;同时,每条Minute-Chunk的记录会记下对应的第一时间内第一条Data-page层记录所在的数据块的数据块号Block No;每条Hour-Chunk记录也会记下对应的第二时间内第一条Minute-Chunk层记录所在的Minute-Chunk层数据块的数据块号Block No;在Root层,每一个Hour-Chunk Block对应一条Root记录,每条Root记录只存放对应Hour-Chunk Block中的第一条记录的时间最小值和这个Hour-Chunk Block的数据块号Block No。
进一步地,所述Partition层的颗粒度根据需求调整。
进一步地,所述特征值信息包括最大值、最小值、平均值、数据量以及根据用户需求自定义聚合函数信息中的任一种或多种。
进一步地,所述第一时间设为分钟,所述第二时间设为小时。
一种基于如上所述架构方法的时序数据库查询方法,包括步骤:依据用户SQL语句在框架对应层中快速抓取所需信息,针对不同颗粒度做的统计信息在数据写入时就已经形成,完成降采样查询。
一种基于如上所述架构方法的时序数据库查询方法,包括步骤:当要查询数据中是否存在异常值时,直接根据最上层的记录即可判断下层是否有满足条件的,完成异常值查询。该实施方案可以快速定位异常值所在范围,降低查询所需时长,提高用户使用效率。
一种基于如上所述架构方法的时序数据库,包括可读存储介质和程序,基于可读存储介质运行程序实现所述框架。
本发明的有益效果是:
1、本发明实施例,可以有效减少I/O,提高数据库查询性能。
2、本发明实施例中,可以提高查询速度,可以实现按需返回;具体的,例如要获取分钟级的统计数据,应用本发明实施例可以直接从分钟级去拉取数据,不必下到源数据层,这样可以大大提升数据查询的速度。
3、应用本发明实施例的查询方案,在查询某个向量或几个向量出现异常值的数据,主要用于异常值快读定位,即所有数据都有可能查询,普通索引无法解决此类问题。
4、应用本发明实施例的查询方案,查询某个时间段内设备平均小时间段(时分秒)的平均值、最小值、最大值等,可以用于曲线图的绘制。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的时序数据库框架图;
图2为本发明实施例的步骤流程图;
Data-page:原始数据层;
Second-Chunk:秒级层;
Minute-Chuck:分钟层;
Hour-Chunk:小时层;
partition:数据库会按照维度字段分为多个Partition,每个Partition中包含相同维度的不同数据;
Chunk:一个Partition分为多个Chunk,每一个Chunk都会记录相应时间范围内所有数据字段的范围及统计信息;
Root:每一个Hour-Chunk Block对应一条Root记录,即Root层管理着Hour-Chunk;
BLOCK-No:数据块号,快速定位数据所处位置;
Tags:维度字段,用户在创建表时可以指定哪些字段为维度字段。
具体实施方式
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
下面根据附图1~图2,对本发明解决的技术问题、技术构思、工作原理、工作过程和有益效果作进一步详细说明。
如图1~图2所示,本发明提出了一种时序数据库的架构方法、查询方法和时序数据库,至少解决如下技术问题:减少I/O操作,有效提高查询性能。
在本发明方法实施例中,可以面向专用于存储管理时序的时序数据库,提出一种支持异常值快速查询的分层统计时序数据库架构方法。根据时序数据本身自带顺序的特点,保留了顺序写,并且按时间颗粒度进行统计信息分层,每一层之间可直接访问,无需返回根节点,或上层节点。统计信息按统一的块来进行管理,以此有效减少I/O操作。这样既解决了B+tree写入性能低的问题,也解决了LSM-tree查询性能不足的问题。
在本发明的实施例中,具体可设计如下框架:
最底层为Data-page层,每个数据块中有若干条记录。按颗粒度从小到大依次往上排列为Second-Chunk层,Minute-Chuck层,Hour-Chunk层,Root层,Partition层,上述层级颗粒度可根据需求调整。在Second-Chunk层,Minute-Chuck层,Hour-Chunk层,记录分别以分钟和小时为单位进行统计,统计出每分钟每小时内每个字段的最大值、最小值、平均值、数据量等信息(可根据用户需求自定义聚合函数)。同时,每条Minute-Chunk层的记录会记下对应的分钟内第一条Data-page层记录所在的数据块的Block No。每条Hour-Chunk记录也会记下对应的小时内第一条Minute-Chunk记录所在的Minute-Chunk层数据块的BlockNo。在Root层,每一个Hour-Chunk Block对应一条Root记录,每条Root记录只存放对应Hour-Chunk Block中的第一条记录的时间最小值和这个Hour-Chunk Block的Block No。
为证实本发明实施例提出的时序数据库框架,针对基于时间序列的数据的查询有性能上的明显提升,故在以下环境中进行了测试验证:
表1
表2
由上表的测试数据可以看出,在该架构方法下执行查询基于时间序列的数据,性能非常棒的。在本发明提供的架构方法之下,每次抓取数据,并非直接抓取原始数据,而是根据数据块中的第一条记录直接判定数据块所在位置,后直接获得数据所处位置,不会出现全部数据从头遍历的情况,查询统计信息则更加快速,可以根据每层的统计信息,直接获得数据,例如使用COUNT(*)语句时,只需在Houre-Chunk层就可获得结果。
在进行降采样查询时,可以依据用户SQL语句在框架对应层中快速抓取所需信息,针对不同颗粒度做的统计信息在数据写入时就已经形成,完成降采样查询,降低复杂度,提升查询性能。
在进行异常值查询时,要查询数据中是否存在异常值时,可以直接根据最上层的记录即可判断下层是否有满足条件的,快速定位异常值所在范围,降低查询所需时长,提高用户使用效率。
实施例1:一种时序数据库的架构方法,包括步骤:
S1,根据时序数据本身自带顺序的特点,保留顺序写;
S2,按时间颗粒度进行统计信息分层,每一层之间直接访问,无需返回根节点或上层节点,所述统计信息按统一的数据块来进行管理。
实施例2:在实施例1的基础上,步骤S2基于如下框架实现:
最底层为Data-page层,每个数据块中有多条记录;按颗粒度从小到大依次往上排列为Second-Chunk层、Minute-Chuck层、Hour-Chunk层、Root层、Partition层;在Second-Chunk层、Minute-Chuck层和Hour-Chunk层,记录分别以第一时间和第二时间为单位进行统计,统计出第一时间和第二时间内每个字段的特征值信息;同时,每条Minute-Chunk的记录会记下对应的第一时间内第一条Data-page层记录所在的数据块的数据块号Block No;每条Hour-Chunk记录也会记下对应的第二时间内第一条Minute-Chunk层记录所在的Minute-Chunk层数据块的数据块号Block No;在Root层,每一个Hour-Chunk Block对应一条Root记录,每条Root记录只存放对应Hour-Chunk Block中的第一条记录的时间最小值和这个Hour-Chunk Block的数据块号Block No。
实施例3:在实施例2的基础上,所述Partition层的颗粒度根据需求调整。
实施例4:在实施例2的基础上,所述特征值信息包括最大值、最小值、平均值、数据量以及根据用户需求自定义聚合函数信息中的任一种或多种。
实施例5:在实施例2的基础上,所述第一时间设为分钟,所述第二时间设为小时。
实施例6:在实施例2的基础上,一种基于如上所述架构方法的时序数据库查询方法,包括步骤:依据用户SQL语句在框架对应层中快速抓取所需信息,针对不同颗粒度做的统计信息在数据写入时就已经形成,完成降采样查询。
实施例7:在实施例2的基础上,一种基于如上所述架构方法的时序数据库查询方法,包括步骤:当要查询数据中是否存在异常值时,直接根据最上层的记录即可判断下层是否有满足条件的,完成异常值查询,可以快速定位异常值所在范围,降低查询所需时长,提高用户使用效率。
实施例8:在实施例2的基础上,一种基于如上所述架构方法的时序数据库,包括可读存储介质和程序,基于可读存储介质运行程序实现所述框架。
本发明功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,在一台计算机设备(可以是个人计算机,服务器,或者网络设备等)以及相应的软件中执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、或者光盘等各种可以存储程序代码的介质,进行测试或者实际的数据在程序实现中存在于只读存储器(Random Access Memory,RAM)、随机存取存储器(Random Access Memory,RAM)等。
Claims (8)
1.一种时序数据库的架构方法,其特征在于,包括步骤:
S1,根据时序数据本身自带顺序的特点,保留顺序写;
S2,按时间颗粒度进行统计信息分层,每一层之间直接访问,无需返回根节点或上层节点,所述统计信息按统一的数据块来进行管理。
2.根据权利要求1所述的时序数据库的架构方法,其特征在于,步骤S2基于如下框架实现:
最底层为Data-page层,每个数据块中有多条记录;按颗粒度从小到大依次往上排列为Second-Chunk层、Minute-Chuck层、Hour-Chunk层、Root层、Partition层;在Second-Chunk层、Minute-Chuck层和Hour-Chunk层,记录分别以第一时间和第二时间为单位进行统计,统计出第一时间和第二时间内每个字段的特征值信息;同时,每条Minute-Chunk的记录会记下对应的第一时间内第一条Data-page层记录所在的数据块的数据块号Block No;每条Hour-Chunk记录也会记下对应的第二时间内第一条Minute-Chunk层记录所在的Minute-Chunk层数据块的数据块号Block No;在Root层,每一个Hour-Chunk Block对应一条Root记录,每条Root记录只存放对应Hour-Chunk Block中的第一条记录的时间最小值和这个Hour-Chunk Block的数据块号Block No。
3.根据权利要求2所述的时序数据库的架构方法,其特征在于,所述Partition层的颗粒度根据需求调整。
4.根据权利要求2所述的时序数据库的架构方法,其特征在于,所述特征值信息包括最大值、最小值、平均值、数据量以及根据用户需求自定义聚合函数信息中的任一种或多种。
5.根据权利要求2所述的时序数据库的架构方法,其特征在于,所述第一时间设为分钟,所述第二时间设为小时。
6.一种基于权利要求2所述架构方法的时序数据库查询方法,其特征在于,包括步骤:依据用户SQL语句在框架对应层中快速抓取所需信息,针对不同颗粒度做的统计信息在数据写入时就已经形成,完成降采样查询。
7.一种基于权利要求2所述架构方法的时序数据库查询方法,其特征在于,包括步骤:当要查询数据中是否存在异常值时,直接根据最上层的记录即可判断下层是否有满足条件的,完成异常值查询。
8.一种基于权利要求2所述架构方法的时序数据库,其特征在于,包括可读存储介质和程序,基于可读存储介质运行程序实现所述框架。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111597106.0A CN114297227B (zh) | 2021-12-24 | 2021-12-24 | 时序数据库的架构方法、查询方法和时序数据库 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111597106.0A CN114297227B (zh) | 2021-12-24 | 2021-12-24 | 时序数据库的架构方法、查询方法和时序数据库 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114297227A true CN114297227A (zh) | 2022-04-08 |
CN114297227B CN114297227B (zh) | 2023-06-20 |
Family
ID=80969855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111597106.0A Active CN114297227B (zh) | 2021-12-24 | 2021-12-24 | 时序数据库的架构方法、查询方法和时序数据库 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297227B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102859517A (zh) * | 2010-05-14 | 2013-01-02 | 株式会社日立制作所 | 时序数据管理装置、系统、方法以及程序 |
CN104184568A (zh) * | 2014-09-05 | 2014-12-03 | 中国电子科技集团公司第七研究所 | 通信系统的数据传输方法及系统 |
CN106406759A (zh) * | 2016-09-13 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种数据存储方法及装置 |
US20170185273A1 (en) * | 2015-12-27 | 2017-06-29 | Sap Se | Time Axis Responsiveness In Charts |
CN108460094A (zh) * | 2018-01-30 | 2018-08-28 | 上海天旦网络科技发展有限公司 | 存储统计数据的方法和系统 |
US20180246934A1 (en) * | 2017-02-27 | 2018-08-30 | Timescale, Inc. | Adjusting partitioning policies of a database system in view of storage reconfiguration |
CN109783495A (zh) * | 2019-01-11 | 2019-05-21 | 华青融天(北京)软件股份有限公司 | 一种多维度数据处理方法、装置及计算机设备 |
CN110019085A (zh) * | 2017-10-31 | 2019-07-16 | 上海宝信软件股份有限公司 | 一种基于HBase的分布式时序数据库 |
US20200334254A1 (en) * | 2019-04-19 | 2020-10-22 | Timescale, Inc. | Querying of materialized views for time-series database analytics |
CN111858676A (zh) * | 2020-07-24 | 2020-10-30 | 政采云有限公司 | 一种数据处理的方法及装置 |
CN113760847A (zh) * | 2021-01-28 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 日志数据处理方法、装置、设备及存储介质 |
-
2021
- 2021-12-24 CN CN202111597106.0A patent/CN114297227B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102859517A (zh) * | 2010-05-14 | 2013-01-02 | 株式会社日立制作所 | 时序数据管理装置、系统、方法以及程序 |
CN104184568A (zh) * | 2014-09-05 | 2014-12-03 | 中国电子科技集团公司第七研究所 | 通信系统的数据传输方法及系统 |
US20170185273A1 (en) * | 2015-12-27 | 2017-06-29 | Sap Se | Time Axis Responsiveness In Charts |
CN106406759A (zh) * | 2016-09-13 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种数据存储方法及装置 |
US20180246934A1 (en) * | 2017-02-27 | 2018-08-30 | Timescale, Inc. | Adjusting partitioning policies of a database system in view of storage reconfiguration |
CN110019085A (zh) * | 2017-10-31 | 2019-07-16 | 上海宝信软件股份有限公司 | 一种基于HBase的分布式时序数据库 |
CN108460094A (zh) * | 2018-01-30 | 2018-08-28 | 上海天旦网络科技发展有限公司 | 存储统计数据的方法和系统 |
CN109783495A (zh) * | 2019-01-11 | 2019-05-21 | 华青融天(北京)软件股份有限公司 | 一种多维度数据处理方法、装置及计算机设备 |
US20200334254A1 (en) * | 2019-04-19 | 2020-10-22 | Timescale, Inc. | Querying of materialized views for time-series database analytics |
CN111858676A (zh) * | 2020-07-24 | 2020-10-30 | 政采云有限公司 | 一种数据处理的方法及装置 |
CN113760847A (zh) * | 2021-01-28 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 日志数据处理方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
QI HUANG等: "Gorilla:a fast,scalable,in-memory time series database" * |
刘文: "海量时间序列数据处理的关键技术研究" * |
Also Published As
Publication number | Publication date |
---|---|
CN114297227B (zh) | 2023-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110109923B (zh) | 时序数据的存储方法、分析方法及装置 | |
US20220164345A1 (en) | Managed query execution platform, and methods thereof | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
CN107807932B (zh) | 一种基于路径枚举的层级数据管理方法和系统 | |
CN110196847A (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN108205571B (zh) | 键值数据表的连接方法及装置 | |
US20190340272A1 (en) | Systems and related methods for updating attributes of nodes and links in a hierarchical data structure | |
CN107301249A (zh) | 一种文件访问信息记录方法、系统及分布式集群系统 | |
CN113704248B (zh) | 一种基于外置索引的区块链查询优化方法 | |
CN114297227B (zh) | 时序数据库的架构方法、查询方法和时序数据库 | |
CN113360551B (zh) | 一种靶场中时序数据的存储与快速统计方法及系统 | |
CN115809268A (zh) | 一种基于分片索引的自适应查询方法和装置 | |
CN117171209A (zh) | 一种缓存数据清理方法、装置、存储介质和电子设备 | |
CN112347098B (zh) | 数据库表拆分方法、系统、电子设备及存储介质 | |
Tao et al. | Performance analysis of R*-trees with arbitrary node extents | |
CN112667859A (zh) | 基于内存的数据处理方法及装置 | |
CN110990394B (zh) | 分布式面向列数据库表的行数统计方法、装置和存储介质 | |
RU2389066C2 (ru) | Многомерная база данных и способ управления многомерной базой данных | |
CN110688386A (zh) | 面向新型供电轨道交通大数据的分布式列族数据索引方法 | |
CN114020713B (zh) | 一种日志结构合并树的文件合并方法、装置、电子设备及存储介质 | |
CN112711659B (zh) | 基于海量图数据的模型计算方法及装置 | |
CN117472915B (zh) | 一种面向多Key值的时序数据的层级存储方法 | |
CN118260366B (zh) | 基于审计日志的数据生命周期分析方法、装置及产品 | |
CN116010668B (zh) | 一种应用于数据库的快速检索方法及系统 | |
CN115168409B (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 |