CN108595553B - 一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法 - Google Patents
一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法 Download PDFInfo
- Publication number
- CN108595553B CN108595553B CN201810316913.2A CN201810316913A CN108595553B CN 108595553 B CN108595553 B CN 108595553B CN 201810316913 A CN201810316913 A CN 201810316913A CN 108595553 B CN108595553 B CN 108595553B
- Authority
- CN
- China
- Prior art keywords
- time
- data
- data acquisition
- sampling
- point
- 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
Abstract
本发明公开一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法,包含以下步骤:在数据库中建立时序表A和副本表B,在内存中为每个数采点建立缓存对象;表A存储每次数采时间;表B按照压缩规则存储数采数据副本,压缩规则为计算每次数采值与缓存对象的值的绝对差,比较绝对差与定义压缩精度,若小于等于则不存入,若大于则存入表B中,同时将数据更新至缓存对象;为查询时能够识别数采点值不存在或被压缩,规定一定时间内必须存储一次数采数据至表B中。解压查询时,根据所需查询时间和数采点将时序表A与副本表B左连接得到初始结果集R,再将R中的空值(被压缩掉的值)替换为向前搜索最近一次不为空的值。
Description
技术领域
本发明涉及一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法。
背景技术
随着信息技术的快速发展,信息化与工业化的融合已成为当今工业发展的大趋势。在生产加工过程中,以一定频率连续对实时工业数据进行采集存储,利用数据监控生产、分析生产、调控生产是当前制造业转型升级的发展方向。
当前对于工业数采时序数据的存储主要采用时序数据库,时序数据库通常都具备特定的压缩存取算法,具备良好的压缩效率,但一方面时序数据库不仅价格昂贵,还需要按其给定的场景进行存储,解压查询效率不高。另一方面,工业中的业务数据通常采用关系型数据库存储,造成业务数据与工业数采时序数据的分离,致使业务数据与时序数采数据难于关联查询,对数据的利用造成不便。
工业数采时序数据有数采点多,存储频繁,数据量大等特点,在不经压缩处理的情况下采用关系型数据库存取时,存在:写入性能低下,磁盘占用高,查询效率低下等问题。发明者在工作中发现,工业数采时序数据同一个数采点在一定时间内很少变化或者无变化,这样在存储时就产生了较大的数据冗余。
发明内容
本发明的目的是提供一种能有效降低冗余、提高查询效率的基于关系型数据库的工业数采时序数据压缩存储和解压查询方法。
为了解决上述技术问题,本发明的技术方案是:一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法,所述的压缩存储过程,包含以下步骤:
(1)初始化:在关系型数据库中建立时序表A与副本表B,其中表A包含一个字段:采样时间,用于标记每次数采的时间;表B中包含三个字段,分别是:采样点、采样时间和数值,由采样点与采样时间组合成这个表的主键,用于存储符合压缩条件的数采数据副本;数采点的数采信息用 (Ni Tj Pi,j)来表示,其中Ni表示第i个数采点,Tj表示第j次数采时间,Pi,j表示第i个数采点在第Tj时间的数采值(i,j=1,2,3...),每个数采时间Tj,都会对所有的数采点进行一次数采;同时,在内存中为每个数采点Ni建立一个缓存对象,对象的结构为分别表示(采样点,上次存储的数采时间,上次存储的数采值);
(2)数采开始后,所有数采点的第1次数采信息(Ni T1 Pi,1) (i=1,2,3...)都按照表B的结构全部存入表B中,将数采时间T1存入时序表 A中;将第一次的数采信息(Ni T1Pi,1)赋予每个数采点在内存中的对象 中;
(3)对于第二次及以后的数采存储,按照以下步骤进行:
步骤3-1:将数采时间Tj(j=2,3...)存入时序表A中;
其中,T_flag为自定义时间,它的作用是:规定一定时间T_flag内必须存储一次数采数据至表B;在解压查询中,遇到NULL时的最大的向前搜索范围即为T_flag,固定了向前搜索最大范围,既能识别数采点值不存在或被压缩,又能提高查询效率。
若(3)式不成立,转至步骤3-4;
若(3)式成立时,继续步骤3-3;
其中,∈为自定精度(可根据实际情况,进行有损压缩,实现更高的压缩效率);
若(4)式成立,则不需将数采点Ni的数采信息(Ni Tj Pi,j)存入副本表 B中,不进行步骤3-4;
若(4)式不成立,继续步骤3-4;
步骤3-4:将该数采点Ni的数采信息(Ni Tj Pi,j)存入副本表B中,同时将内存中数采点Ni的对象值更新为(Ni Tj Pi,j);
所述的解压查询过程,包含以下步骤:
(1)当需要查询某个数采点Ni在[t1,t2]时间间隔内的数采值时,根据所需查询时间[t1,t2]和数采点Ni为查询条件,将时序表A与副本表B以时序为连接条件进行左连接查询,即得到这个点在时间段[t1,t2]内的查询初始结果集R,因进行了压缩,在R中被压缩了的数采值显示为空值(NULL);
(2)若R中t1时刻的数采值为NULL,则在副本表B中查询数采点Ni在[t1- T_flag,t1]时间内的最后一次记录,即为t1时刻数采值的副本,填补至R中的 t1时刻。
(3)若R中其他时刻Tj的数采值空,可在R中向前搜索离该时刻最近的一次不为空的记录,该记录即为Tj时刻的数采数据副本,填补至R的Tj时刻,以此方法将所有空值填满,得到[t1,t2]时间段内的完整数采信息。特别的,当t1=t2时,即可查询某点在某个时刻的数采值。
本发明包括以下优点:
针对时序数据的特点:在连续时间内,大量的存储数据,并且在某个时间段内,可能出现重复的值。通过在关系型数据库中用两个表做记录的方法,降低数据的存储空间,实现数据压缩;一方面,在存储压缩过程中降低了数据冗余;另一方面,由于数据量减少,且解压与查询数据同时进行,极大的提高了查询效率,发明者在实际的使用当中,压缩率可达10%,尤其随着数采点的增多以及数采频率的提高,压缩率越来越低。
附图说明
图1说明了关系型数据库中两表左连接运算的数据处理关系图;
图2说明了时序表A与采样副本表B的表结构图;
图3是本发明中压缩存储的流程图;
图4是本发明中解压查询的流程图;
图5展示本发明实例中数据在压缩存储前后的变化图;
图6是本发明实例的解压查询的恢复过程图。
具体实施方式
在本实施例中,需要说明的是,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
另,在本具体实施方式中如未特别说明部件之间的连接或固定方式,其连接或固定方式均可为通过现有技术中常用的螺栓固定或钉销固定,或销轴连接等方式,因此,在本实施例中不再详述。
一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法,1、首先在关系型数据库中建立如图2所示结构的时序表A与副本表B;
3、数采开始后,第一次的数采值全部存入副本表B中,第二次及以后数采按照发明方法中的步骤(3)进行压缩存储(本例中的压缩为无损压缩,即ε=0,同时定义T_flag=30min)。图5中的原始数据,经过本发明的压缩存储后,只需用图中的时序表A与副本表B来表示;从图中我们可以看出,原始数据中3个点十次数采总共30条记录,经过压缩后,存储表B中共存储 9条记录,同时在时序表中值存储了10条数采时间;注:在图5中每个表中的第一列为数采序号,用于说明当前是第i次数采,在实际操作中并不需要这一列。
4、解压查询:当需要查询数采点a在时间段[2018/1/12 16:35:04, 2018/1/1216:35:22]内的数采值时,首先,以数采点a为查询条件对时序表 A与副本表B的左连接在时间段[2018/1/12 16:35:04,2018/1/12 16:35:22] 做查询,得到的结果集如图6的表1所示,在表1中为NULL的数据即为被压缩了的数据,在表1中经过向前搜索,再将表1中的空值恢复为最近一次不为空的值,即得到数采点a在时间段[2018/1/12 16:35:04,2018/1/1216:35:22]内的数采数据,如图6中表2所示。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法,其特征在于:所述的压缩存储过程,包含以下步骤:
(1)初始化:在关系型数据库中建立时序表A与副本表B;
(2)数采开始后,所有数采点的第1次数采信息Ni T1 Pi,1i=1,2,3...都按照表B的结构全部存入表B中,将数采时间T1存入时序表A中;在内存中为每个数采点Ni建立一个缓存对象,对象的结构为Ni,TNi,PNi,分别表示:采样点,上次存储的数采时间,上次存储的数采值;将第一次的数采信息Ni T1 Pi,1赋予每个数采点在内存内的对象Ni,TNi,PNi中,i=1,2,3...;
(3)对于第二次及以后的数采存储,按照以下步骤进行:
步骤3-1:将数采时间Tj j=2,3...存入时序表A中;
步骤3-2:对数采点Nii=1,2,3...的数采时间Tj j=2,3...与内存中对应数采点的上次存储的数采时间TNi进行如下比较:
若(1)式不成立,转至步骤3-4;
若(1)式成立时,继续步骤3-3;
步骤3-3:将数采点Ni的数采值Pi,j与内存中对应数采点的上次存储的数采值PNi进行如下比较:
其中,ε为自定精度;
若(2)式成立,则不需将数采点Ni的数采信息Ni Tj Pi,j存入副本表B中,不进行步骤3-4;
若(2)式不成立,继续步骤3-4;
步骤3-4:将该数采点Ni的数采信息Ni Tj Pi,j存入副本表B中,同时将内存中数采点Ni的对象值更新为Ni Tj Pi,j;
解压查询过程,包含以下步骤:
(1)当需要查询某个数采点Ni在t1,t2时间间隔内的数采值时,以所需查询时间t1,t2和数采点Ni为查询条件,将时序表A与副本表B以时序为连接条件进行左连接查询,即得到这个点在时间段t1,t2内的查询初始结果集R,因进行了压缩,在R中被压缩了的数采值显示为空值NULL;
(2)若R中t1时刻的数采值为NULL,则在副本表B中查询数采点Ni在[t1-T_flag,t1]时间内的最后一次记录,即为t1时刻数采值的副本,填补至R中的t1时刻;
(3)若R中其他时刻Tj的数采值空,可在R中向前搜索离该时刻最近的一次不为空的记录,该记录即为Tj时刻的数采数据副本,填补至R的Tj时刻,以此方法将所有空值填满,得到t1,t2时间段内的完整数采信息;特别的,当t1=t2时,即可查询某点在某个时刻的数采值。
2.根据权利要求1所述的基于关系型数据库的工业数采时序数据压缩存储和解压查询方法,其特征在于:在压缩存储过程第(1)步中,其中表A包含一个字段:采样时间,用于记录每次数采的时间;表B中包含三个字段,分别是:采样点、采样时间和数值,由采样点与采样时间组合成这个表的主键,用于存储符合压缩条件的数采数据副本;数采点的数采信息用Ni Tj Pi,j来表示,其中Ni表示第i个数采点,Tj表示第j次数采时间,Pi,j表示第i个数采点在第Tj时间的数采值i,j=1,2,3...,每个数采时间Tj,都会对所有的数采点进行一次数采。
3.根据权利要求1所述的基于关系型数据库的工业数采时序数据压缩存储和解压查询方法,其特征在于:在压缩存储过程第3-2步中,其中,T_flag为自定义时间,它的作用是:规定一定时间T_flag内必须存储一次数采数据至表B;在解压查询中,遇到NULL时的最大的向前搜索范围即为T_flag,固定了向前搜索最大范围,既能识别数采点值不存在或被压缩,又能提高查询效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810316913.2A CN108595553B (zh) | 2018-04-10 | 2018-04-10 | 一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810316913.2A CN108595553B (zh) | 2018-04-10 | 2018-04-10 | 一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108595553A CN108595553A (zh) | 2018-09-28 |
CN108595553B true CN108595553B (zh) | 2022-02-08 |
Family
ID=63621709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810316913.2A Active CN108595553B (zh) | 2018-04-10 | 2018-04-10 | 一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108595553B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684328B (zh) * | 2018-12-11 | 2020-06-16 | 中国北方车辆研究所 | 一种高维时序数据压缩存储方法 |
CN112614519A (zh) * | 2021-01-05 | 2021-04-06 | 中国人民解放军国防科技大学 | 基于时序逻辑的大数据压缩方法及复盘播放方法 |
CN114996245A (zh) * | 2022-04-07 | 2022-09-02 | 济南大学 | 一种应用在水泥生产大数据的数据压缩方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035956A (zh) * | 2014-04-11 | 2014-09-10 | 江苏瑞中数据股份有限公司 | 一种基于分布式列存储的时间序列数据存储方法 |
CN104598270A (zh) * | 2014-12-22 | 2015-05-06 | 北京像素软件科技股份有限公司 | 一种多人网络游戏中资源加载的方法和装置 |
CN104801096A (zh) * | 2015-04-13 | 2015-07-29 | 西安西热水务环保有限公司 | 一种智能型前置过滤器在线监测与诊断装置及方法 |
CN105427033A (zh) * | 2015-11-10 | 2016-03-23 | 广州西麦科技股份有限公司 | 一种基于大数据的个人诚信系统 |
CN106548412A (zh) * | 2016-09-21 | 2017-03-29 | 广西电网有限责任公司电力科学研究院 | 一种变电站在线监测时序数据的高效压缩存储方法 |
CN106648446A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于时序数据的存储方法、装置及电子设备 |
CN107092020A (zh) * | 2017-04-19 | 2017-08-25 | 北京大学 | 融合无人机LiDAR和高分影像的路面平整度监测方法 |
CN107741984A (zh) * | 2017-10-20 | 2018-02-27 | 上海泓戟信息科技有限公司 | 用于在线监测数据采集一致性的采集服务器、系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110198394A1 (en) * | 2010-02-12 | 2011-08-18 | German Hammerl | System and method for long-term archiving of digital data |
-
2018
- 2018-04-10 CN CN201810316913.2A patent/CN108595553B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104035956A (zh) * | 2014-04-11 | 2014-09-10 | 江苏瑞中数据股份有限公司 | 一种基于分布式列存储的时间序列数据存储方法 |
CN104598270A (zh) * | 2014-12-22 | 2015-05-06 | 北京像素软件科技股份有限公司 | 一种多人网络游戏中资源加载的方法和装置 |
CN104801096A (zh) * | 2015-04-13 | 2015-07-29 | 西安西热水务环保有限公司 | 一种智能型前置过滤器在线监测与诊断装置及方法 |
CN106648446A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于时序数据的存储方法、装置及电子设备 |
CN105427033A (zh) * | 2015-11-10 | 2016-03-23 | 广州西麦科技股份有限公司 | 一种基于大数据的个人诚信系统 |
CN106548412A (zh) * | 2016-09-21 | 2017-03-29 | 广西电网有限责任公司电力科学研究院 | 一种变电站在线监测时序数据的高效压缩存储方法 |
CN107092020A (zh) * | 2017-04-19 | 2017-08-25 | 北京大学 | 融合无人机LiDAR和高分影像的路面平整度监测方法 |
CN107741984A (zh) * | 2017-10-20 | 2018-02-27 | 上海泓戟信息科技有限公司 | 用于在线监测数据采集一致性的采集服务器、系统及方法 |
Non-Patent Citations (1)
Title |
---|
生产过程质量控制动态数据挖掘平台的研究开发;吴以凡;《中国优秀硕士学位论文全文数据库 信息科技辑》;20060615;I138-163 * |
Also Published As
Publication number | Publication date |
---|---|
CN108595553A (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595553B (zh) | 一种基于关系型数据库的工业数采时序数据压缩存储和解压查询方法 | |
KR101792168B1 (ko) | 개별 액세스 가능한 데이터 유닛의 스토리지 관리 | |
US20170371551A1 (en) | Capturing snapshots of variable-length data sequentially stored and indexed to facilitate reverse reading | |
CA2841084C (en) | Managing storage of data for range-based searching | |
CN104424258B (zh) | 多维数据查询的方法、查询服务器、列存储服务器及系统 | |
US10726016B2 (en) | In-memory column-level multi-versioned global dictionary for in-memory databases | |
CN107368527B (zh) | 基于数据流的多属性索引方法 | |
CN106407360B (zh) | 一种数据的处理方法及装置 | |
US11507539B2 (en) | Apparatus and method for storing received data blocks as deduplicated data blocks | |
EP3550441B1 (en) | Managing storage of individually accessible data units | |
CN101676899A (zh) | 海量数据库记录的归档和查询方法 | |
US8880463B2 (en) | Standardized framework for reporting archived legacy system data | |
US8189912B2 (en) | Efficient histogram storage | |
CN107357843B (zh) | 基于数据流结构的海量网络数据查找方法 | |
DE10018993B4 (de) | Datenbank-Verwaltungsvorrichtung und Datenbank-Datensatzabfragevorrichtung sowie Verfahren zum Verwalten einer Datenbank und zum Abfragen eines Datenbank-Datensatzes | |
KR101656750B1 (ko) | 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치 | |
CN109684328B (zh) | 一种高维时序数据压缩存储方法 | |
CN107169003B (zh) | 一种数据关联方法及装置 | |
CN113901279B (zh) | 一种图数据库的检索方法和装置 | |
Chen et al. | An optimized algorithm for lossy compression of real-time data | |
CN111291037A (zh) | 一种数据存储和查询方法、装置、设备及计算机存储介质 | |
CN110245118B (zh) | 一种bim资料信息三维网格化检索归档方法及其归档系统 | |
KR20080026772A (ko) | Lempel-Ziv 압축 방법의 복원 속도를 보완한압축 방법 | |
CN114996245A (zh) | 一种应用在水泥生产大数据的数据压缩方法 | |
CN113407538A (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 |