美文网首页程序员简友广场每天写1000字
时间序列数据存储和检索设计方法

时间序列数据存储和检索设计方法

作者: 皮皮杂谈 | 来源:发表于2019-02-28 00:29 被阅读2次

        时间序列数据存储和检索设计,是设备运行监测应用领域的关键技术环节。我根据以往项目中的经验,结合设备运行监测数据特征,基于Oracle数据库,采用创新的时间序列数据存储模式,在不降低数据质量的前提下,极大的压缩存储空间,提升检索效率。

        考虑到实时运行监测数据特性和业务应用要求,自定义时间序列数据存储格式,以减少数据存储容量,提升数据访问效率,时间序列库存储格式如下:

基于时间序列的存储和检索模式  

        (1)以光伏发电为例,光伏发电是白天并网发电夜间离网的周期性运行模式,以天为单位将每个测点5分钟一次的数据基于时间序列库进行压缩存储。每天生成一个唯一的RowKey作为标识,每个RowKey使用6个字节存储设备编号、测点编号和日期;一天内的数据采用Key-Value模式顺序存储,Key为距离第一个数据的个数,Value为测量点数值。如上图中所示,某逆变器效率数据每5分钟采集一次,2月1日,逆变器设备并网时间为15小时,则改组数据中共有180条记录;2月2日并网14小时,共有168条记录。每组数据按照字节流方式顺序存储。

        (2)在时间序列库中进行一天的数据块的特征值汇聚。特征值是针对这一类监测点再设计阶段定义的,例如针对逆变器效率的测量点,预先定义的特征值为最大效率、最小效率、平均效率、效率小于98%的次数等。数据处理功能对于每天的原始数据进行特征值汇聚,并将这些特征值的结果与RowKey关联并存储。

        (3)在数据库中建立反向索引。再设计阶段定义特征值可能被查询的方式,例如逆变器效率告警条件为一天内出现效率小于98%的次数大于3次,这些相当于全文检索中的关键字。针对这些关键字建立反向索引。反向索引则直接指向时间序列库中的RowKey。当用户针对全部历史数据查询曾经出现逆变器效率告警所有设备的名称时,无需进行全数据扫描,直接利用反向索引就可以快速检索出所对应的设备名称。

        (4)在系统设计阶段,根据用户所有的历史数据检索需求进行分解,解构成为若干反向索引,保证用户查询速度。

相关文章

  • 时间序列数据存储和检索设计方法

    时间序列数据存储和检索设计,是设备运行监测应用领域的关键技术环节。我根据以往项目中的经验,结合设备运行监测...

  • 【键值数据库】和【时间系列数据库】与量化投资分析

    一、键-值储存 1.1、含义 键-值数据库,或键-值存储,是设计用来存储、检索和管理关联数组的数据存储范式,关联数...

  • Python | 掌握并熟悉列表、元祖、字典、集合数据类型

    序列对象( sequence ) "序列”是程序设计中经常用到的数据存储方式。在其他程序设计语言中,"序列”通常被...

  • mysql索引底层原理

    mysql的数据检索性能取决于其底层的储存引擎和数据检索引擎,尤其是数据的存储形式和索引的设计。 索引的作用是做数...

  • 第6章 集群与高可用

    Prometheus内置了一个基于本地存储的时间序列数据库。在Prometheus设计上,使用本地存储可以降低Pr...

  • 2018-03-12

    ios通过Runtime动态完成数据存储(归档/解档) 实现数据序列化和反序列化,必定实现的两个方法: 当属性比较...

  • 时间序列数据的存储和计算

    什么是时间序列数据 什么是时间序列(Time Series,以下简称时序)数据?从定义上来说,就是一串按时间维度索...

  • MySql 全球化和本地化

    数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此,MySQL需要适应不同的字符集(...

  • ELASSTICSEARCH DATA

    Elasticsearch数据的存储格式 Elastcisearch 是分布式的 文档 存储。它能存储和检索复杂的...

  • Apache Storm集成OpenTSDB时序库

    随着物联网、智能设备等技术迅速发展和推广应用,导致大量的时间序列数据需要集成和存储。OpenTSDB 为时间序列数...

网友评论

    本文标题:时间序列数据存储和检索设计方法

    本文链接:https://www.haomeiwen.com/subject/zzlcuqtx.html