了解更多开源请访问:51CTO开源基础软件社区https://ost.51cto.com[看什么在本期】Hadoop与Spark框架的性能优化体系。云计算重复数据删除技术减少了冗余。压缩框架Ares如何统一不同的算法。在线数据压缩“摇摆门趋势”。揭开新移动云存储SDM的神秘面纱。【科技DNA】物联网什么是物联网?物联网就是将任何物品通过信息传感设备按照一定的协议与互联网连接起来,进行信息交换和通信。在这个网络中,物与物之间可以通过“通信”,无需人工干预,将现实世界中的物体连接到数字世界,实现智能化。渗透力强,带动作用大,综合效益好。它可以实现“万物互联”,如智能家居、智慧医疗、智慧城市……设备采集数据的传输和存储是物联网(IoT)的重要组成部分。如今,数据生成的增长速度远远超过存储容量的增长速度。云计算可以通过最少的管理工作快速启动和配置,并为物联网带来巨大优势。但是当传输不相关或冗余的数据时,会消耗更多的能量。使用通信通道来处理对应用程序贡献不大的数据无疑是一种浪费。传输和存储数据的压缩是必要的,因此建议在IoT应用中使用SwingingDoorTrend(SDT)。SwingDoorTrend(SDT)SwingDoorTrend(SDT)是一种在线有损数据压缩算法,常用于监控和数据采集系统,用于存储来自过程信息系统的历史数据。压缩偏差(CD)是其最重要的参数,它表示当前样本与用于表示先前收集的数据的当前线性趋势之间的最大差异。传统的SDT算法是在一定的误差范围内,用起点和终点确定的直线代替两点之间的其他数据点。SDT算法的压缩率主要取决于公差(门)的大小。并且在起点上下距离为CD处有上边界UP和下边界LP,构成两个旋转门。这两个门一旦在压缩过程中被打开,直到压缩间隔结束时它们才能关闭。如果两个门的内角之和大于或等于180度,则停止压缩,否则继续压缩。压缩区间结束后,以压缩区间的终点作为下一个压缩区间的起点继续压缩。SDT结构简单,计算复杂度低,用线性趋势表示一个数据量。通过具有固定枢轴的“摆动门”顺序构建图形来过滤数据。但是因为公差CD参数应该是事先定义的“门”,所以有时会不准确,后面会提出改进的方法。获得第一点的八个步骤。建立上下枢轴点。接收下一个点。计算相对于上轴和下轴的当前斜率。将当前斜率与之前的极端斜率进行比较。当一个点在平行四边形之外时,计算最后一个点和当前点之间的斜率。交叉边界被调整为与其他边界平行。计算相交边界和斜坡之间的截点并确定新的第一点。点c作为输出信号的压缩数据流中的输出点被传递。性能标准压缩误差(CE)和压缩比(CR)是评价压缩算法性能的重要指标。CE测量压缩后观察到的相对误差量,计算方法是将未压缩数据(Ti)与解压缩过程后的压缩数据结果(T0i)之差之和除以未压缩数据Sum的绝对值.CR旨在评估压缩过程的效率,并表示使用压缩算法实现的样本减少。它被计算为压缩样本除以未压缩样本的补码。建议称为CompressionCriterion(CC),好的压缩体现在CC值接近1,对应高CR和低CE值。论文中提出了四种不同的数学方程式版本:算术平均数(MEAN):指数移动平均数:不带零的平均值:范围:使用这四个方程式可以更容易地找到最优解。相关工作本节介绍一些用于物联网环境的数据压缩算法以及更多关于SDT的信息。DatacompressionintheInternetofThings物联网输入数据流的逼近算法该算法的主要思想是利用数据中的某些值来逼近所有数据。该算法的特点是计算复杂度低,压缩率高,但错误率高。下面结合原论文中的一组图直观感受算法的过程:输入一组时间间隔相同的离散时间序列数据,按照时间从1开始编号。将上面编号的数据分成“最大值”和“最小值”两部分。最大值定义为大于先前数据的值,最小值定义为小于先前数据的值。如果序列开头或结尾的A数据或等于前一个数据的值,则可以同时标记为两种状态。分别在“最大值”和“最小值”中找到它们对应的极值。依次连接“最大值”和“最小值”对应的极值点。增量压缩编码方案所谓增量是指一组数据中相邻值之间的差值,通过记录一组差值和初始值就可以表示整个数据。下面描述基于增量压缩的编码方案。论文中的分析场景是一组温度数据的压缩。数据特点:传感器通过ADC将现实世界中的温度转换成离散数据,而这个数据是有限的。假设ADC可以将温度映射到一个包含1024个值的集合,那么某一时刻对应的温度也就是,即此时的状态必然对应于状态空间S中的一个状态。假设传感器记录温度的频率为f_sfs,数据之间的时间间隔为T=1/f_sT=1/fs,我们用u(nT)\inS,n=0,1,...,\inftyu(nT)∈S,n=0,1,...,∞表示一组ADC的输出,那么增量可以表示为\Delta(kT)=u[kT]-u[(k-1)T]Δ(kT)=u[kT]?u[(k?1)T],或者简单地说\Delta(k)=u(k)-u(k-1)Δ(k)=u(k)?u(k?1),一组增量的统计分析:可以看出\DeltaΔ的频率服从正态分布,-1、0、1三个值的频率加起来接近0.9。参考霍夫曼编码的思想,如果可以设计一种编码方案,可以用更短的编码来代替高频的\DeltaΔ,那么就可以达到更好的压缩效果。增量压缩:考虑到传感器和ADC所能检测到的温度变化是有限的,即当数据变化小于一个阈值θθ时,可以认为它们是相等的。作者设计了六个基本符号,其中三个可以直接表示\DeltaΔ的值为0,\theta,-\theta0,θ,?θ,其余三个符号需要组合起来表示\DeltaΔ的绝对值DeltaΔ大于\thetaθ的情况:表1的六个基本符号。表2\Delta的绝对值大于\theta。如果增量的绝对值超过一个阈值,则用FLAG+UPF/DOWNF+FLAG表示增量的大小,其中UPF或DOWNF的个数为abs(\Delta/\theta)-1abs(Δ/θ)-1。当增量较大时,不对数据进行编码,否则编码后的比特数大于原来的比特数,但出现这种情况的概率极低。云存储中物联网传感器数据的压缩和存储优化在本文中,作者提出了一种物联网数据的双层压缩框架,可减少数据量,同时将错误率保持在最低水平并避免带宽浪费。该方案在雾节点上进行50%的初始压缩,在云存储中将数据压缩至90%。论文还显示,解压后误差在原始数据的0%到1.5%之间。具体步骤为:1.雾节点的压缩。A。从传感器节点接收一组数据。b.判断传感器节点是否已经注册,如果是则进入下一步,否则丢弃该数据。C。将数据按升序排序,并计算连续两个值的平均值,通过这一步将数据压缩到原来的50%。d.将压缩后的数据写入文件并发送到云端。2.云压缩。A。接受来自雾节点的数据文件。b.判断雾节点是否已经注册,如果是则进入下一步,否则丢弃该数据。C。从文件中读取数据,然后统计每个值出现的频率,重写文件,记录为两列。此时压缩率达到90%。例子:数据由1到10的100个值组成,最后得到十个数字及其对应的频率。SDT自适应SDT(AdaptiveSwingingDoorTrending)的基本过程与SDT相同,只是采用了自适应压缩偏差CD。通过使用指数移动平均线(EMA)作为过滤器来分析数据。指数移动平均线与线性移动平均线的区别在于,它可以在平滑数据的同时突出局部变化。因此采用加权平均,越接近当前时刻的值的权重越大。公式中的N是一个需要手动设置的参数,所以ASDT的一个缺点就是需要提前设置E??MA的参数。改进的SDT改进的SDT(ISDT)旨在1)检测和移除异常值,以及2)通过自适应压缩偏差实现更好的压缩。ISDT与前面提到的SDT相比,多了强制存储记录限制(ForcedStorage-RecordingLimit,FSRL)和调整因子(adjustmentfactor,F_{adj}\in(0,1)Fadj∈(0,1)),这两个值是自适应调整压缩偏差的关键。ISDT检测异常值SDT算法结束当前压缩区间并开启新的压缩区间的条件是最大上角(a_{umax})和最大下角(a_{lmax})之间的最大上角(aumax)和最大下角(almax)且大于等于180。在ISDT中,当一个数据值x_kxk满足开启一个新的压缩区间时,不会立即关闭当前区间,而是关闭下一个数据值x_{k+1}xk+1可以包含在当前压缩区间内。.如果是,说明x_kxk是异常值,所以不记录这个值,而是从x_{k+1}xk+1继续当前压缩区间。ISDTAdaptiveCompressionDeviation我们先来了解一下FSRL,它是强制存储记录限制,意思是当一个压缩区间内记录了k个值且k=FSRL时,即使当前区间内可以包含下一个值,强制关闭当前区间,并将当前点作为下一个区间的初始值。如果一个区间在区间长度达到FSRL后被强行截断,说明当前压缩偏差过大或者数据处于稳定阶段,那么CD:=CD\timesf_{adj}CD:=CD×fadj可以用于替换原来的压缩区间;反之,如果在区间长度达到FSRL之前关闭,说明当前压缩偏差设置太小或者数据波动较大。这时候就可以用CD:=CD/f_{adj}CD:=CD/fadj来代替原来的压缩区间。面向智能电网的分布式SDT电力物联网具有以下特点:拥有大量传感器。带有多种传感器。具有非常高的数据采集频率。高度异构的网络。形式上由于上述特点,如果将传感器采集的所有原始时序数据通过网络传输到传感数据中心,然后压缩保留,分别对计算网络和传感数据中心的带宽和资源需求,是不可接受的。传感器对原始传感数据进行压缩,然后将经过初步压缩的数据传输到传感数据中心,数据在传感数据中心进一步压缩并保留。这样,网络和传感数据中心的带宽和计算资源需求都大大降低。DSDT是传统SDT的分布式版本。类似于上述物联网数据的双层压缩架构,在传感器节点压缩数据可以降低传输压力。而且由于SDT算法本身的优势,压缩区间的每次更新只需要确定一个初始点和压缩偏差即可,因此可以实现转移压缩中心的操作,即压缩中心可以在传感器数据中心和传感器之间动态变化。如何传输取决于计算资源和带宽资源的分配。下图是对SDT和DSDT区别的直观解释:了解更多开源请访问:51CTO开源基础软件社区https://ost.51cto.com。
