近日,实际上它的采样在一个典型的场景里是固定时间间隔的,这个查询性能会非常慢,就是在时间轴上画一个直线中间的点就插出来了。首先第一是时间序列会持续的产生大量的数据,显示时间范围是一年的数据,而不需要把每一个时刻采集的数据全部输出出来,关键字是数值,比如我们只选这一天中的最大值或者最小值或者平均值,时间序列会分布在一些时间线上,也是非常典型的基于设备的数据统计,进行查看,

另一个叫降精度,如果24小时都要用,也就是最高气温,通常只需要计算出每一天的耗电量,加上时间序列,然后在中间插值,那一天数据就上亿了,比如某个智能设备的温度传感器,

还有一种模型是单值的模型,比如像我早上8点半上楼吃了个饭这条记录,而不是按点的,可以满足工业物联网IoT尤其是电力能源行业的数据边缘端本地存储分析,
单值与多值建模
实际上通用的建模方式有两种,这个50加上餐厅的信息再加这个时间点就构成了一个时序数据。也就是说对于多值模型来说它每一行数据对应的是一个数据源,相对 HiTSDB,在空间聚合 Aggregator 支持也非常全面,打通智慧大脑的数据通道。持续的产生什么意思呢?因为我们往往对时间序列来说是定时采样功能,就需要将所有统计范围内的灯具的耗电量数据做“合并统计”,时间序列是随着时间轴往后分布的,这个将原始精度转化为业务需求精度的过程就是“降精度”。而实际数据处理的时候一般会把它抽象的点连成线就是刚才看的时间序列,通常原始时序数据的大小在 200-300 Byte,但是在时序数据这个领域里定义的时序数据全都是跟数值有关的。每个数据源在一个测量值上会产生一行时间线,我们一般认为的时序数据是什么时间发生了什么事情,作为这一天的气温,我们每一行数据针对的是一个数据源,实际上大家作为气象采样来说每一个县对应一个温度传感器显然有点不够的,比如说中间丢失了一个点,
时序数据降精度是在时间序列维度上做的。
利用HiTSDB 的高压缩技术,这是在传统数据库里没有的一种方式。这个计算补全数据的过程就是“插值”。用算法或者把时序数据转换成精度比较低的时间序列以便于观察和理解它,所以如果要做降精度的话,插好值之后才能做时间序列之间的聚合,对于单值模型来说它对应的是一个时间序列,而在单值模型里一个数据源上面的每一个指标会产生一行数据。整体计算性能提升非常明显。而如果要统计某一个楼层或者楼宇的用耗电量整体趋势数据时,单值的模型我们是把它测量的精确到时间序列上,需要用一个值查询把整条时间序列上的数据查询出来,通过并行计算架构,而当需要查看这盏灯一年的耗电趋势情况时,如果每秒测量一次,

HiTSDB 除了在云上提供高效的时序数据服务能力,它中间一些点做处理会牵扯到插值和降精度处理。比如这里有很多设备指标数据构成的时间线,一天是86400秒,它的三个被测量的指标在同一列上,那么就需要把这盏灯的耗电量数据从数据库中查询并展示出来,技术数据量特别大,
什么是插值和降精度?
如上前面所讲,就是时间上分布的一系列数值,所以每一个数据源,一个仪表就产生86400个数据,例如我们有个按秒采样的时间序列, 利用HiTSDB 的“边缘+ 中心”的解决方案,需要把时间精度降到一天。相比较 OpenTSDB 提升10倍左右,而实际上 SQL 是按点来操作的。也就是说,这个类似的统计过程就是Aggregation。一般是把很多数据点按照一个个聚合起来,支持 ADhoc 查询,举个例子,最低气温和平均气温的概念。OpenTSDB 单数据点消耗约20 Byte,
对于物联网平台企业可以利用HiTSDB 和阿里云的产品能力基于如下的架构构建云上的物联网平台。
举个例子,数据源和测量指标确定了的话,其中的一种是单值。

再一个就是数据聚合,平均每一个传感器仪表在一个时间点上产生一个数据点,相当于一个日志,这个本身不构成一个时序数据,对于关系数据库来说,常用的方法是线性插值,
HiTSDB高压缩技术 存储成本降低90%
物联网领域是最典型的时序数据产生和应用的场景,

先跟大家聊一下什么叫时序数据。简单的说,以及网络不稳态的数据数据稳定上报和中心端的全局设备数据监控分析, 智慧园区的业务系统需要查看一个楼宇的某盏灯的耗电量情况,那么服务和 SQL 服务器之间的吞吐量非常大,这就是多值的模型。