CN103646056A - 一种基于特征值存储的历史数据存储和抽取方法 - Google Patents
一种基于特征值存储的历史数据存储和抽取方法 Download PDFInfo
- Publication number
- CN103646056A CN103646056A CN201310629665.4A CN201310629665A CN103646056A CN 103646056 A CN103646056 A CN 103646056A CN 201310629665 A CN201310629665 A CN 201310629665A CN 103646056 A CN103646056 A CN 103646056A
- Authority
- CN
- China
- Prior art keywords
- data
- historical
- point
- buffer
- file
- 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
-
- 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
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于特征值存储的历史数据存储和抽取方法,包括生成数据的实时服务器和存储历史数据的历史数据库,在历史数据库的内存中设置有暂存数据并进行压缩处理的数据缓冲池,数据缓冲池处理后的数据存储到历史数据库上,读取曲线数据时将此时间段内的初始数据和结尾数据作为曲线的起点和末点,对初始数据和结尾数据之间的所有数据依次进行斜率值计算,取其中斜率值最大的数据作为曲线的中间点。本发明的斜率值取点方法能够在曲线上体现出更好的效果和更大的变化率,从而可以为用户发现问题提供较好的参造。
Description
技术领域
本发明涉及数据存储领域,具体涉及一种针对实时数据进行压缩的方式以及抽取历史数据的方法。
背景技术
随着核电站数字化仪控系统(简称:DCS系统)需要监控的数据不断增长,DCS系统的各方面要求也不断提高,如对查询历史数据时的效率要求,如果查询历史数据是直接对原始数据进行操作,那么随着存储数据内容的不断增加,系统查询效率会急剧降低,因此现在的历史数据存储通常会利用压缩算法存储,然后再根据压缩算法或相应的索引进行历史数据查询。
目前工业控制领域数据存储方法多基于旋转门算法,旋转门算法是一种比较快速的线性拟合算法,常常用于数据库中对数据进行压缩,能够大大减少存储容量。如图1所示,其原理如下:旋转门算法更为形象说法是根据数据构建一个又一个的高度(该高度及有损压缩的阈值)固定的平行四边形去“套住”数据,在不能“套住”时将前一个点进行归档(存储)。其中,旋转门就是图中不断在“扩张”的平行四边形,每时每刻,此平行四边形的竖直方向的边长始终为阈值的2倍。每次扩张之时,都要检查平行四边形能否把所有点都套在平行四边形内部,若有点没有被套住,则之前的所有点就需要被归档(压缩)。这种方式使一些有价值的信息可能被忽略,造成用户的一些困扰。如在某个时间间隔内数据变化了100次,但这个间隔仅仅可以显示三个值的数据,此时现有算法变无能无力。
在核电站数字化仪控系统的现场应用中,现场需要在屏幕上显示某个时间段的历史趋势,为了方便查看历史趋势,要求趋势的两个点的间隔是确定的。这就要求数据库一方面能从大量数据中提取需要的数据,另一方面又可以较真实的表现数据的趋势。因此,显示长时间段的趋势(比如一年时间)时会遇到以下两个问题:
1)从大量无规则的数据中提取数据会造成服务器负荷产生峰值,造成查询效率低下,无法达到满意的系统响应时间;
2)使用的压缩算法仅能提高系统效率,却无法真实体现数据的特征。
发明内容
为解决现有技术中历史数据检索时,现有数据压缩方式易对服务器产生较大负荷且压缩方式无法真实体现检索需要数据的问题,本发明提供一种基于特征值存储的历史数据存储方法,具体方案如下:一种基于特征值存储的历史数据存储和抽取方法,包括生成数据的实时服务器和存储历史数据的历史数据库,在历史数据库的内存中设置有暂存数据并进行压缩处理的数据缓冲池,数据缓冲池处理后的数据存储到历史数据库上,针对数据的处理采用如下方式:
压缩数据时:位于数据缓冲池中的数据按压缩点分成多个队列,其中新加入的数据按顺序加入相应队列的队尾,而新队列按顺序递增;
每个压缩点内的数据包括记录数据识别信息的索引文件和记录数据实际内容的数据文件;
读取曲线数据时:首先从历史数据库中将抽取数据放入数据缓冲池中,然后针对数据缓冲池在历史数库的内存中建立一个映像缓冲池,然后以下述方式选择需要的数据数量:
(1)、将此时间段内的初始数据和结尾数据作为曲线的起点和末点;
(2)、对初始数据和结尾数据之间的所有数据依次进行斜率值计算,取其中斜率值最大的数据作为曲线的中间点,所述斜率值通过后一个数据减去初始数据然后除以选定时间段得到。
为避免数据出错:所述步骤1中,在加入队列时,如后一个数据的时标小于前一个数据的时标,则抛弃这个数据。
为方便查找数据:所述索引文件的信息包括每个压缩点生成的数据点号名称、已存储的数据个数、当前压缩点数据在数据文件中的起始地址;所述数据文件包括每个压缩点数据的时间、值、质量位以及下个压缩点数据在数据文件中的位置。
本发明对压缩数据采用索引文件及数据文件表示且用内存映射的方式,既提高了数据的存储速度,又可以提高数据的查询效率,同时在进行数据操作时,可以像操作内存一样操作文件,减少编码时的错误。本发明的斜率值取点方法能够在曲线上体现出更好的效果和更大的变化率,从而可以为用户发现问题提供较好的参造。
附图说明
图1现有技术中旋转门算法的示意图;
图2本发明的步骤流程图;
图3数据的索引文件和数据文件结构示意图;
图4现有技术在选定时间段内抽取相应数据时形成的曲线图;
图5通过本发明的方法抽取的数据形成的曲线图。
具体实施方式
如图2所示,本发明的基于特征值存储的历史数据存储和抽取方法,
101、包括生成数据的实时服务器和存储历史数据的历史数据库,在历史数据库的内存中设置有暂存数据并进行压缩处理的数据缓冲池,数据缓冲池处理后的数据存储到历史数据库上,正常工作时实时服务器产生的数据直接输入到历史数据库中进行存储,在存储前,历史数据库需要对存储的数据进行相应的压缩操作,本发明针对现有数据压缩方式读取方式进行改变,首先利用直接建立在历史数据库中的数据缓冲池来处理临时存放的数据,其中的压缩和读取过程都在数据缓冲池中实现,这就大大减少了对历史数据库的操作,建立在内存中的数据缓冲池处理速度也会大大快于硬盘的处理速度,相应提高了处理了过程。针对数据的处理采用如下方式:
102、压缩数据时:位于数据缓冲池中的数据按压缩点分成多个队列,其中新加入的数据按顺序加入相应队列的队尾,而新队列按顺序递增;
数据缓冲池采用了队列的模式压缩实时数据,可以支持变长的数据,实现了待压缩的缓冲数据大小的可配置要求。在进行数据插入时,需要找到相应的压缩点对应的队列,本发明采用了哈希的查找算法,从而在查找数据时,大大降低了系统的CPU使用率,避免了使用遍历的方式查找队列而占用较高的CPU使用率的问题。
算法在进行数据运算时,要求被运算的数据在时间上是线性的。因此在进行数据缓冲时还要做一些必要的处理,防止意外的数据对算法造成不必要的影响,本发明根据数据时标来判断新加入的数据是否正确,如果新来数据的时标小于队列中最后一个点的时标,则认为数据出错,抛弃这个数据,从而保证要运算的数据在时间上是线性的。
103、每个压缩点内的数据包括记录数据识别信息的索引文件和记录数据实际内容的数据文件;
压缩后的数据由两部分构成,一部分是索引文件,另一部分是数据文件。索引文件由一个个索引节点构成,每个索引节点中分别记录了当前数据的点号、已存储的数据个数、数据在数据文件中的起始地址。数据文件由一个个数据节点组成,节点中包含数据的时间、值、质量位、下个点在文件中的位置。
索引文件配合数据文件后使得数据容量的扩展性较好,当增加一个新的收集点时,可以在索引中增加这个点的索引节点,数据可以放在文件中的任意位置;此外对数据类型的扩展性也较好,无论什么样的数据类型,仅仅是节点本身的结构不同,大小不同,不影响其它节点,这样在存放数据时,可以存放多种类型的数据,从而有效地扩展数据类型;另外还有较好的数据查询效率,根据索引文件中相应的数据点号即可在数据文件中查到相应的数据文件,各队列中的数据文件采用链式记录方式,每个数据文件仅记录下一个紧邻数据文件的位置信息,在需要查询某个点的数据时,仅仅需要获取这个数据点的值,而不需要关心其它数据点,特别是在大容量的数据查询时,可以体现查询效率的优势。
104、读取曲线数据时:首先从历史数据库中将抽取数据放入数据缓冲池中,然后针对数据缓冲池在历史数库的内存中建立一个映像缓冲池,然后以下述方式选择需要的数据数量:
当运算周期开始时,运算模块需要获得数据缓冲池中的数据,而实时服务器此时可能需要向这个数据缓冲区插入数据,这样就会造成数据的冲突。本发明在操作索引文件及数据文件进均采用内存映射的方法,既可以提高数据的存储速度,又可以提高数据的查询效率,同时在进行数据操作时,可以像操作内存一样操作文件,减少编码时的错误。
本发明利用映射缓冲池开辟了一个容量等同于数据缓冲池的内存大小,运算开始时,仅仅需要将数据做一次内存拷贝,由于内存拷贝效率极高,不会造成采集线程的挂起,仅会增加历史数据库的内存占用,但由于现在服务器内存都比较大,这种的设置方式不会对系统造成影响,故采用数据映像的方式通过实现空间换时间的目的。
105、(1)将此时间段内的初始数据和结尾数据作为曲线的起点和末点;
(2)对初始数据和结尾数据之间的所有数据依次进行斜率值计算,取其中斜率值最大的数据作为曲线的中间点;所述斜率值通过后一个数据减去初始数据然后除以选定时间段得到。
如图5所示,本发明对选定时间段中间的所有值都进行求斜率值计算,然后选取其中斜率值最大的值作为曲线中间点值,通过起点-中间点-末点的方式得到的曲线,相对图4所示现有技术直接采用三个连接点的方式,能够体现更大的变化率和效果,为用户发现问题提供了更好的参造。通过本发明的方法,无论在数据的准确性还是效率方面对比以前的技术都有较大改进。如:在历史数据库收集10000点的数据,每次查询3天的数据,其中查询耗时从以前的8秒降到了现在的1秒,而且在曲线的表现方面更加能体现数据的变化。
以上所述仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例公开如上,然而并非用以限定本发明,任何熟悉本专利的技术人员在不脱离本发明技术方案范围内,当可利用上述提示的技术内容作出些许更 动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明方案的范围内。
Claims (3)
1.一种基于特征值存储的历史数据存储和抽取方法,包括生成数据的实时服务器和存储历史数据的历史数据库,在历史数据库的内存中设置有暂存数据并进行压缩处理的数据缓冲池,数据缓冲池处理后的数据存储到历史数据库上,针对数据的处理采用如下方式:
压缩数据时:位于数据缓冲池中的数据按压缩点分成多个队列,其中新加入的数据按顺序加入相应队列的队尾,而新队列按顺序递增;
每个压缩点内的数据包括记录数据识别信息的索引文件和记录数据实际内容的数据文件;
读取曲线数据时:首先从历史数据库中将抽取数据放入数据缓冲池中,然后针对数据缓冲池在历史数库的内存中建立一个映像缓冲池,然后以下述方式选择需要的数据数量:
(1)、将此时间段内的初始数据和结尾数据作为曲线的起点和末点;
(2)、对初始数据和结尾数据之间的所有数据依次进行斜率值计算,取其中斜率值最大的数据作为曲线的中间点,所述斜率值通过后一个数据减去初始数据然后除以选定时间段得到。
2.如权利要求1所述的一种基于特征值存储的历史数据存储和抽取方法,其特征在于,所述步骤1中,在加入队列时,如后一个数据的时标小于前一个数据的时标,则抛弃这个数据。
3.如权利要求1所述的一种基于特征值存储的历史数据存储和抽取方法,其特征在于,所述索引文件的信息包括每个压缩点生成的数据点号名称、已存储的数据个数、当前压缩点数据在数据文件中的起始地址;所述数据文件包括每个压缩点数据的时间、值、质量位以及下个压缩点数据在数据文件中的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310629665.4A CN103646056B (zh) | 2013-11-29 | 2013-11-29 | 一种基于特征值存储的历史数据存储和抽取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310629665.4A CN103646056B (zh) | 2013-11-29 | 2013-11-29 | 一种基于特征值存储的历史数据存储和抽取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103646056A true CN103646056A (zh) | 2014-03-19 |
CN103646056B CN103646056B (zh) | 2017-02-01 |
Family
ID=50251270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310629665.4A Active CN103646056B (zh) | 2013-11-29 | 2013-11-29 | 一种基于特征值存储的历史数据存储和抽取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103646056B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886083A (zh) * | 2014-03-26 | 2014-06-25 | 中广核工程有限公司 | 核电机组瞬态试验数据处理的方法和系统 |
CN106095828A (zh) * | 2016-06-01 | 2016-11-09 | 积成电子股份有限公司 | 一种基于用电信息采集终端的曲线数据存储方案 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1459743A (zh) * | 2002-05-24 | 2003-12-03 | 中国科学院软件研究所 | 自适应的历史数据压缩方法 |
CN102043795A (zh) * | 2009-10-13 | 2011-05-04 | 上海新华控制技术(集团)有限公司 | 过程控制历史数据文件结构的建立方法和数据读写方法 |
US20130185319A1 (en) * | 2012-01-13 | 2013-07-18 | International Business Machines Corporation | Compression pattern matching |
-
2013
- 2013-11-29 CN CN201310629665.4A patent/CN103646056B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1459743A (zh) * | 2002-05-24 | 2003-12-03 | 中国科学院软件研究所 | 自适应的历史数据压缩方法 |
CN102043795A (zh) * | 2009-10-13 | 2011-05-04 | 上海新华控制技术(集团)有限公司 | 过程控制历史数据文件结构的建立方法和数据读写方法 |
US20130185319A1 (en) * | 2012-01-13 | 2013-07-18 | International Business Machines Corporation | Compression pattern matching |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886083A (zh) * | 2014-03-26 | 2014-06-25 | 中广核工程有限公司 | 核电机组瞬态试验数据处理的方法和系统 |
CN106095828A (zh) * | 2016-06-01 | 2016-11-09 | 积成电子股份有限公司 | 一种基于用电信息采集终端的曲线数据存储方案 |
CN106095828B (zh) * | 2016-06-01 | 2019-03-29 | 积成电子股份有限公司 | 一种基于用电信息采集终端的曲线数据存储方案 |
Also Published As
Publication number | Publication date |
---|---|
CN103646056B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI702506B (zh) | 用於合併樹廢棄項目指標之系統、機器可讀媒體及機器實施之方法 | |
TWI682274B (zh) | 鍵值儲存樹 | |
CN109164980B (zh) | 一种时序数据的聚合优化处理方法 | |
CN103412916B (zh) | 一种监控系统的多维度数据存储、检索方法及装置 | |
CN103488709B (zh) | 一种索引建立方法及系统、检索方法及系统 | |
CN108255981B (zh) | 连续时间段时间戳序号索引分钟冻结的存储和查找方法 | |
TW201837720A (zh) | 用於多串流儲存裝置之串流選擇 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
TW201841123A (zh) | 用於維護操作之合併樹修改 | |
JP6642650B2 (ja) | Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法 | |
CN107122126B (zh) | 数据的迁移方法、装置和系统 | |
CN104881481A (zh) | 一种存取海量时间序列数据的方法及装置 | |
CN103617232A (zh) | 一种针对HBase表的分页查询方法 | |
CN103605805A (zh) | 一种海量时序数据的存储方法 | |
CN103678491A (zh) | 一种基于Hadoop中小文件优化和倒排索引的方法 | |
CN103412889A (zh) | 智能电表的数据存储和查询方法及其系统 | |
CN104699422A (zh) | 缓存数据的确定方法及装置 | |
CN109582598B (zh) | 一种基于外部存储实现高效查找哈希表的预处理方法 | |
CN107704203A (zh) | 聚合大文件的删除方法、装置、设备及计算机存储介质 | |
CN107908357A (zh) | 命名数据网转发平面pit存储结构及其数据检索方法 | |
WO2023155849A1 (zh) | 基于时间衰减的样本删除方法及其装置、存储介质 | |
JP2019204475A (ja) | Hadoopに基づいて、複数の2MB以下のファイルをキャッシュする方法 | |
CN106775464B (zh) | 一种数据分层存储系统及方法 | |
CN107273403A (zh) | 一种历史数据收集及存储的方法 | |
CN103646056A (zh) | 一种基于特征值存储的历史数据存储和抽取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |