CN111400265A - 一种基于大冗余量时序数据的存储方法 - Google Patents
一种基于大冗余量时序数据的存储方法 Download PDFInfo
- Publication number
- CN111400265A CN111400265A CN202010144723.4A CN202010144723A CN111400265A CN 111400265 A CN111400265 A CN 111400265A CN 202010144723 A CN202010144723 A CN 202010144723A CN 111400265 A CN111400265 A CN 111400265A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- redundancy
- time sequence
- time
- 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
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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1737—Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
Abstract
本发明公开了一种基于大冗余量时序数据的存储方法。传统关系型数据库存储时序数据时存储成本大、写入吞吐低、查询性能差。本发明的服务器使用内存数据库作缓存。在传感器发送的时序数据达到设定的一段测控时间或者完成阶段性测量任务后,服务器将内存数据库中缓存的时序数据以去冗余存储格式存储于磁盘数据库中,成为该段测控时间或者该阶段性测量任务的历史数据;需要对历史数据进行搜索和分析时,根据不同存储格式进行调用。本发明以压缩形式存储历史数据,对数据去冗余,以减少服务器硬盘空间开销,减少数据行数,并在需要调用时,快速准确地调用历史数据。
Description
技术领域
本发明属于数据处理技术领域,具体涉及一种基于大冗余量时序数据的存储方法。
背景技术
传感器技术作为信息技术的三大基础之一,是当前各发达国家竞相发展的高新技术。随着经济和技术的进步、互联网的普及和信息高速公路的发展,在社会的各个角落,部署了大量的各种用途的传感器,用于确保人们生活的安全,便捷。
大量的传感器也产生了大量的数据,不但在传输时占用了大量的网络带宽,而且随着应用的积累,也需要大量的硬件系统去存储历史数据。如果不对数据进行相应的处理,将会有很多的冗余数据。在历史数据的检索时,会降低平台系统的效率,占用更多的硬件资源,造成大量硬件资源浪费。
时序数据是基于时间的一系列的数据。在有时间的坐标中将这些数据点连成线,往过去看可以做成多纬度报表,揭示其趋势性、规律性、异常性;往未来看可以做大数据分析,机器学习,实现预测和预警。
时序数据不同于一般关系数据,有持续高并发写入,无更新操作:时序数据库面对的往往是百万甚至千万数量级终端设备的实时数据写入,但数据大多表征设备状态,写入后不会更新。
传统关系型数据库存储时序数据时存在如下问题:
1、存储成本大:对于时序数据压缩不佳,需占用大量机器资源;
2、维护成本高:单机系统,需要在上层人工的分库分表,维护成本高;
3、写入吞吐低:单机写入吞吐低,很难满足时序数据千万级的写入压力;
4、查询性能差:适用于交易处理,海量数据的聚合分析性能差。
发明内容
本发明的目的在于提供一种对传感器时序数据缓存的持久化存储方法,该方法适用于有较大冗余数据的、可阶段性存储的时序数据,最终达到以压缩形式存储历史数据,减少服务器硬盘空间开销,并在需要调用时,快速准确地调用历史数据。
本发明具体如下:
步骤1、传感器发送时序数据到服务器,服务器使用内存数据库作缓存。
步骤2、在传感器发送的时序数据达到设定的一段测控时间或者完成阶段性测量任务后,服务器将内存数据库中缓存的时序数据以去冗余存储格式存储于磁盘数据库中,成为该段测控时间或者该阶段性测量任务的历史数据。
服务器将内存数据库中缓存的时序数据以去冗余存储格式存储于磁盘数据库中的过程具体如下:
服务器将内存数据库中缓存的时序数据根据不同标识的传感器源划分为多个数据段,然后将传感器源标识相同的各数据段归并为一条信息,每条信息存入一个数据库表中。信息存入数据库表的存储格式如下:
①若信息中各数据段间隔相同,则将该信息以以下格式进行存储:
[S][d][v1|a1|v2|a2,…,vi|ai,…,vn|an]
其中:
[]表示各存储列数据之间的分隔;
“|”表示分隔符号,可以根据需要选用其它分隔符号;
S表示数据起始时间戳;
d表示每两个相邻数据间的时间间隔;
vi表示去冗余后的第i个数据值,去冗余过程为相邻且数据值相同的多个数据只保留一个,i=1,2,…,n,n表示去冗余后数据的总个数;
ai表示去冗余之前,第一个数据到连续出现的几个vi值中最后一个对应的数据之间所有数据的个数和;
②若信息中各数据段间隔不相同,则将该信息以以下格式进行存储:
[S][v1|t2|v2,…,tq|vq,…,tm|vm]
其中:
[]表示各存储列数据之间的分隔;
“|”表示分隔符号,可以根据需要选用其它分隔符号;
S表示数据起始时间戳;
m表示去冗余后数据的总个数;
vq表示去冗余后的第q个数据值,q=1,2,…,m;其中,v1对应的时间为S;
tq表示去冗余后的第q个数据与起始时间戳S的时间间隔,单位为毫秒;
去冗余过程具体为:定义kq=(vq+1-vq)/(tq+1-tq)和kq+1=(vq+2-vq+1)/(tq+2-tq+1)为任意相邻三个数据点([tq],[vq])、([tq+1],[vq+1])和([tq+2],[vq+2])之间的两个斜率值,若kq=kq+1,则删除该三个数据点中的中间数据点。
进一步,所述的内存数据库具体为redis数据库。
进一步,步骤1中由服务平台调用内存数据库中的时序数据,并展示给实时数据监控端。
进一步,若需要对历史数据进行搜索和分析,则根据不同存储格式进行:信息以第①种存储格式存入数据库表时,如果要搜索某时刻t的数据或者某时间段范围的数据,则首先通过判断Sj≤t<Sj+1来确定要搜索的数据所在的那条信息的数据行,再通过判断Sj+ai*d≤t<Sj+ai+1*d搜索到该条信息的具体数据点,Sj代表数据行j的数据起始时间戳。信息以第②种存储格式存入数据库表时,如果要搜索某时刻t的数据或者某时间段范围的数据,则首先通过判断Sj≤t<Sj+1来确定要搜索的数据所在的那条信息的数据行,再通过判断Sj+tq≤t<Sj+tq+1搜索到该条信息的具体数据点。
本发明具有的有益效果:
本发明以压缩形式存储历史数据,对数据去冗余,以减少服务器硬盘空间开销,减少数据行数,并在需要调用时,快速准确地调用历史数据。本发明适用于有较大冗余数据的、可阶段性存储的时序数据,特别适用于传感器采集的数据,因为传感器采集数据较为频繁,但数据变化较为平缓。但是本发明不适用于数据冗余较少的应用场景。
具体实施方式
下面结合实施例对本发明作进一步说明。
一种基于大冗余量时序数据的存储方法,具体包括如下步骤:
步骤1、传感器发送时序数据到服务器,服务器使用内存数据库(本实施例采用redis 数据库)作缓存。由服务平台调用内存数据库中的时序数据,并展示给实时数据监控端。数据监控端常规情况下仅需要监控短期内数据,实时的分时数据存储在redis数据库中,本实施例给每个传感器分配一个标识,且分时数据缓存时包含日期。
步骤2、在传感器发送的时序数据达到设定的一段测控时间或者完成阶段性测量任务后,服务器将内存数据库中缓存的时序数据以去冗余存储格式存储于磁盘数据库中,成为该段测控时间或者该阶段性测量任务的历史数据。本实施例设定的一段测控时间为一天,完成一天的数据监控后,这一天的数据将成为历史数据,相当于完成了一天的阶段性测量任务。
服务器将内存数据库中缓存的时序数据以去冗余存储格式存储于磁盘数据库中的过程具体如下:
服务器将内存数据库中缓存的时序数据根据不同标识的传感器源划分为多个数据段,然后将传感器源标识相同的各数据段归并为一条信息,每条信息存入一个数据库表中。信息存入数据库表的存储格式如下:
①若信息中各数据段间隔相同,则将该信息以以下格式进行存储:
[S][d][v1|a1|v2|a2,…,vi|ai,…,vn|an]
其中:
[]表示各存储列数据之间的分隔;
“|”表示分隔符号,可以根据需要选用其它分隔符号;
S表示数据起始时间戳;
d表示每两个相邻数据间的时间间隔;
vi表示去冗余后的第i个数据值,去冗余过程为相邻且数据值相同的多个数据只保留一个,i=1,2,…,n,n表示去冗余后数据的总个数;
ai表示去冗余之前,第一个数据到连续出现的几个vi值中最后一个对应的数据之间所有数据的个数和;
②若信息中各数据段间隔不相同,则将该信息以以下格式进行存储:
[S][v1|t2|v2,…,tq|vq,…,tm|vm]
其中:
[]表示各存储列数据之间的分隔;
“|”表示分隔符号,可以根据需要选用其它分隔符号;
S表示数据起始时间戳;
m表示去冗余后数据的总个数;
vq表示去冗余后的第q个数据值,q=1,2,…,m;其中,v1对应的时间为S;
tq表示去冗余后的第q个数据与起始时间戳S的时间间隔,单位为毫秒;
去冗余过程具体为:定义kq=(vq+1-vq)/(tq+1-tq)和kq+1=(vq+2-vq+1)/(tq+2-tq+1)为任意相邻三个数据点([tq],[vq])、([tq+1],[vq+1])和([tq+2],[vq+2])之间的两个斜率值,若kq=kq+1,则删除该三个数据点中的中间数据点。
若需要对历史数据进行搜索和分析,则根据不同存储格式进行:信息以第①种存储格式存入数据库表时,如果要搜索某时刻t的数据或者某时间段范围的数据,则首先通过判断Sj≤t<Sj+1来确定要搜索的数据所在的那条信息的数据行,再通过判断 Sj+ai*d≤t<Sj+ai+1*d搜索到该条信息的具体数据点,Sj代表数据行j的数据起始时间戳。信息以第②种存储格式存入数据库表时,如果要搜索某时刻t的数据或者某时间段范围的数据,则首先通过判断Sj≤t<Sj+1来确定要搜索的数据所在的那条信息的数据行,再通过判断Sj+tq≤t<Sj+tq+1搜索到该条信息的具体数据点。
Claims (4)
1.一种基于大冗余量时序数据的存储方法,其特征在于:该方法具体如下:
步骤1、传感器发送时序数据到服务器,服务器使用内存数据库作缓存;
步骤2、在传感器发送的时序数据达到设定的一段测控时间或者完成阶段性测量任务后,服务器将内存数据库中缓存的时序数据以去冗余存储格式存储于磁盘数据库中,成为该段测控时间或者该阶段性测量任务的历史数据;
服务器将内存数据库中缓存的时序数据以去冗余存储格式存储于磁盘数据库中的过程具体如下:
服务器将内存数据库中缓存的时序数据根据不同标识的传感器源划分为多个数据段,然后将传感器源标识相同的各数据段归并为一条信息,每条信息存入一个数据库表中;信息存入数据库表的存储格式如下:
①若信息中各数据段间隔相同,则将该信息以以下格式进行存储:
[S][d][v1|a1|v2|a2,…,vi|ai,…,vn|an]
其中:
[]表示各存储列数据之间的分隔;
“|”表示分隔符号,可以根据需要选用其它分隔符号;
S表示数据起始时间戳;
d表示每两个相邻数据间的时间间隔;
vi表示去冗余后的第i个数据值,去冗余过程为相邻且数据值相同的多个数据只保留一个,i=1,2,…,n,n表示去冗余后数据的总个数;
ai表示去冗余之前,第一个数据到连续出现的几个vi值中最后一个对应的数据之间所有数据的个数和;
②若信息中各数据段间隔不相同,则将该信息以以下格式进行存储:
[S][v1|t2|v2,…,tq|vq,…,tm|vm]
其中:
[]表示各存储列数据之间的分隔;
“|”表示分隔符号,可以根据需要选用其它分隔符号;
S表示数据起始时间戳;
m表示去冗余后数据的总个数;
vq表示去冗余后的第q个数据值,q=1,2,…,m;其中,v1对应的时间为S;
tq表示去冗余后的第q个数据与起始时间戳S的时间间隔,单位为毫秒;
去冗余过程具体为:定义kq=(vq+1-vq)/(tq+1-tq)和kq+1=(vq+2-vq+1)/(tq+2-tq+1)为任意相邻三个数据点([tq],[vq])、([tq+1],[vq+1])和([tq+2],[vq+2])之间的两个斜率值,若kq=kq+1,则删除该三个数据点中的中间数据点。
2.根据权利要求1所述一种基于大冗余量时序数据的存储方法,其特征在于:所述的内存数据库具体为redis数据库。
3.根据权利要求1所述一种基于大冗余量时序数据的存储方法,其特征在于:步骤1中由服务平台调用内存数据库中的时序数据,并展示给实时数据监控端。
4.根据权利要求1、2或3所述一种基于大冗余量时序数据的存储方法,其特征在于:若需要对历史数据进行搜索和分析,则根据不同存储格式进行:信息以第①种存储格式存入数据库表时,如果要搜索某时刻t的数据或者某时间段范围的数据,则首先通过判断Sj≤t<Sj+1来确定要搜索的数据所在的那条信息的数据行,再通过判断Sj+ai*d≤t<Sj+ai+1*d搜索到该条信息的具体数据点,Sj代表数据行j的数据起始时间戳;信息以第②种存储格式存入数据库表时,如果要搜索某时刻t的数据或者某时间段范围的数据,则首先通过判断Sj≤t<Sj+1来确定要搜索的数据所在的那条信息的数据行,再通过判断Sj+tq≤t<Sj+tq+1搜索到该条信息的具体数据点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010144723.4A CN111400265B (zh) | 2020-03-04 | 2020-03-04 | 一种基于大冗余量时序数据的存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010144723.4A CN111400265B (zh) | 2020-03-04 | 2020-03-04 | 一种基于大冗余量时序数据的存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400265A true CN111400265A (zh) | 2020-07-10 |
CN111400265B CN111400265B (zh) | 2023-04-07 |
Family
ID=71428527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010144723.4A Active CN111400265B (zh) | 2020-03-04 | 2020-03-04 | 一种基于大冗余量时序数据的存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400265B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966695A (zh) * | 2020-10-23 | 2020-11-20 | 山东鼎滏软件科技有限公司 | 一种用于油气田生产的时序数据库系统 |
CN113051281A (zh) * | 2021-06-02 | 2021-06-29 | 成都四方伟业软件股份有限公司 | 一种时序数据库的实时流数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605805A (zh) * | 2013-12-09 | 2014-02-26 | 冶金自动化研究设计院 | 一种海量时序数据的存储方法 |
CN108052551A (zh) * | 2017-11-28 | 2018-05-18 | 北京航天云路有限公司 | 一种在redis上实现的存储大量时序数据的方法 |
CN110109923A (zh) * | 2019-04-04 | 2019-08-09 | 北京市天元网络技术股份有限公司 | 时序数据的存储方法、分析方法及装置 |
-
2020
- 2020-03-04 CN CN202010144723.4A patent/CN111400265B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605805A (zh) * | 2013-12-09 | 2014-02-26 | 冶金自动化研究设计院 | 一种海量时序数据的存储方法 |
CN108052551A (zh) * | 2017-11-28 | 2018-05-18 | 北京航天云路有限公司 | 一种在redis上实现的存储大量时序数据的方法 |
CN110109923A (zh) * | 2019-04-04 | 2019-08-09 | 北京市天元网络技术股份有限公司 | 时序数据的存储方法、分析方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966695A (zh) * | 2020-10-23 | 2020-11-20 | 山东鼎滏软件科技有限公司 | 一种用于油气田生产的时序数据库系统 |
CN111966695B (zh) * | 2020-10-23 | 2021-01-08 | 山东鼎滏软件科技有限公司 | 一种用于油气田生产的时序数据库系统 |
CN113051281A (zh) * | 2021-06-02 | 2021-06-29 | 成都四方伟业软件股份有限公司 | 一种时序数据库的实时流数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111400265B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400265B (zh) | 一种基于大冗余量时序数据的存储方法 | |
CN107562883B (zh) | 一种数据同步的方法及系统 | |
CN111077870A (zh) | 一种基于流计算的opc数据实时采集监控智能系统及方法 | |
CN114282434A (zh) | 一种工业设备健康管理系统及方法 | |
US6389430B1 (en) | Real-time database object statistics collection | |
CN109391629B (zh) | 轨道交通综合监控系统数据处理方法 | |
CN111966695B (zh) | 一种用于油气田生产的时序数据库系统 | |
CN109507992B (zh) | 一种机车制动系统部件的故障预测方法、装置及设备 | |
US7853568B2 (en) | High speed data historian | |
CN111290913A (zh) | 一种基于运维数据预测的故障定位可视化系统和方法 | |
JPH11316765A (ja) | データベース検索システム及び方法、データベース登録装置、データベース検索装置、記録媒体 | |
CN117473021B (zh) | 一种基于cdc方式的达梦数据库增量同步实现方法 | |
CN111260127A (zh) | 基于全机数字孪生模型的故障预测系统及方法 | |
CN108664579B (zh) | 海量数据实时筛选分析方法、系统及存储介质 | |
CN114253806A (zh) | 一种接入层日志收集分析预警系统 | |
CN112396250B (zh) | 一种柴油机故障预测方法、装置、设备及存储介质 | |
CN109873858B (zh) | 一种业务数据分布式监控方法和分布式监控集群 | |
CN112598142A (zh) | 一种风电机组检修工作质量审查辅助方法与系统 | |
CN110769069B (zh) | 一种告警信息的推送方法与装置 | |
CN110562296A (zh) | 一种基于lkj列控运行文件数据连续波动异常识别方法 | |
CN105843724B (zh) | 一种it系统监测状态指标压缩分析方法 | |
CN114780625A (zh) | 针对民用飞机的数据管理与综合分析系统 | |
CN112214493A (zh) | 一种历史记录存储方法、装置、电子设备以及存储介质 | |
CN103309929A (zh) | 存储和检索数据的方法和系统 | |
CN112434063A (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 |