TSDB相关技术探讨 

(整期优先)网络出版时间:2023-04-25
/ 2

 TSDB相关技术探讨 

徐爱芸

江汉大学人工智能学院  湖北武汉 430056)

摘要:时间序列数据主要在于IT基础设施、运维监控系统和物联网等实时监测、检查与分析设备所采集、产生的数据这些工业数据的典型特点是数据产生的时间间隔短检测点,严重依赖于采集时间,每一条数据均要求对应唯一的时间,测点多信息量大。针对时序数据的特点,本文对时序数据的采集、写入、存储、数据的查询及查询结果显示技术等进行探讨。

关键词:时序数据;采集;存储;大数据处理;显示

1引言

序数据就是按照时间维度索引的数据,对某些指标或者状态按时间序列进行统计和分析的场景,典型的如股票大盘走势、气象变化、内存监控等。时序数据的数据量呈井喷式爆发,它的特点是数据量大,数据随着时间增长,相同维度重复取值,指标平滑变化高并发写入,且不会更新按不同维度对指标进行统计分析,存在明显的冷热数据,一般只会查询近期数据

关系型数据库无法对时序数据进行高效的存储和数据的查询时序大数据解决方案能够完成按时间序列存放大量数据使用分级存储方式,存储空间减半时间序列函数优越的查询性能远超过关系型数据库能够从多个时间维度进行查询查询速度极大的提高能够线性处理所获取的数据能够对实时数据进行趋势分析。时序大数据可以高效存储和快速处理海量时序大数据,极大提高了时间相关数据的处理能力

目前开源生态的时序数据库结构主要可以用开源数据收集软件telegraf,开源时序数据库influxdb处理数据,开源数据grafana展示工具三者组成,

2数据采集

对时序数据进行建模包含measurement为度量的数据集,类似于关系型数据库中的table;point为一个数据点,类似于关系型数据库中的row;imestamp为时间戳,表征采集到数据的时间点;tag为维度列,代表数据的归属、属性,用来标记数据有索引的属性;field是指标列,代表数据的测量值,随时间平滑波动。

数据采集工具Telegraf,用于收集很多方面的数据,修改telegraf.conf配置文件,修改其日志文件目录并通过命令行telegraf -sample-config -input-filter cpu:mem -output-filter influxdb > telegraf.conf来实现读取本机一些硬件性能的相关数据,如读取cpu,内存,I/O效率等数据也可从第三方获取数据

3数据写入

对于写入场景远远多于读出场景的时序数据库高写入性的方法采用LSM tree顺序的写入磁盘LSM tree包括两部分,分别是内存里的数据结构和磁盘上的文件对应Hbase里的MemStore和HLog;对应Cassandra里的MemTable和sstable。读取功能有所受限,因为同一个key的值可能存在于多个HFile中为了获取更好的读取性能,可以通过bloom filter和compaction得到。LSM tree操作流程

(1)首先内存中的数据结构起到接收数据写入同时WAL文件的存在也有效的避免了数据的丢失。

(2)当内存中的数据达到一定量,或者达到用户指定时间时,可以将数据存到磁盘上,此时磁盘上的文件就是不会被修改的。

(3)磁盘上的文件可以进行合并操作,有利于冗余数据的消除,可以有效地释放磁盘空间,缓解文件数量过多的问题。

4数据存储

分级存储是在时序数据库中常见的一种存储策略,将数据分级,不同级别的数据存储在不同的存储硬件中。分为三个等级最常访问的数据,将其存储在内存缓存中能通过快表调用的部分;访问的比较多但是并不是需要高频次访问的区域将其存放在固态硬盘中;不需要经常访问,只是留存做数据备份或者数据分析的数据存放在机械硬盘中内存快表中的数据可以尽可能方便地将数据转移到固态硬盘中固态硬盘中的数据也需要定期的进行转移,从而降低固态硬盘的存储压力,减少成本

5数据压缩

针对不同的数据,会有不同的压缩,压缩的对象可以分为文档、音频、视频等采取更加适合时序数据的压缩算法。时序数据的压缩可以分为无损压缩和有损压缩。

5.1无损压缩

无损压缩被压缩的数据解压缩前后数据精度不发生改变,数据完全一样,它是针对有一定规律的数据进行规律性总结时序数据的规律可以总结为两点:1、timestamp 稳定递增,如等差递增数列;2、数值稳定变化且有规律性。InfluxDB无损压缩算法就是一个典型的算法,它也可以用在浮点数的压缩上。

5.2有损压缩

有损压缩就是在一定可以接受的范围内,压缩前后出现一定的数据丢失,主要对于浮点数而言。我们需要找到合适的精度范围减少损失。时序数据主要是对数据进行一定的拟合。也就是去寻找一条一次函数线,是数据尽量分布在线的两侧,这条线的形状并不是确定的,无论曲线还是直线都可以实现。SOIsoft公司的SDA算法,我们称其为

旋转门压缩算法

虽然判断压缩算法最优是不可计算的,但是设计好的压缩算法仍然是可计算的问题。可以看到,前面提到的时序数据的无损压缩有损压缩算法都会基于时序数据的特征采取方案,达到更好的压缩率。

6.数据的查询

用户对数据库的查询有对原始数据的查询和对数据聚合后的查询,前者是对一定时间范围的时序数据的查询,查询结果的时间戳范围小,不太具有规律性,因此不容易进行趋势分析暨所得结果,这种查询一般用以查询原始数据后者主要用来对数据的发展趋势分析,为了得到更高的分析精度,需要更大范围的数据,更多的数据,按照时间戳对符合条件的数据进行合并,形成原始数据,这种运算查询采用分布式聚合查询和数据预处理。分布式聚合查询时,利用好并发的特性,来进行数据查询使各个节点并发查询,这样做不仅能降低聚合运算时间,同时也使得分片查询效率大大提高从而达到秒级运算。而数据预处理则是通过空间换时间,数据根据查询先计算减少返回值的量

7.查询结果数据处理

常规的SQL语句对时序数据库进行简单查询,得到的数据不规范,杂乱无章。采用开源平台的数据可视化工具Grafana,从设定好的数据源中获得一些存储好的数据,然后将其转化为比较好理解的可视化图形,并及时通知。该工具的特点展示方式多种多样,可以是图表或不同数据模型的可视化图形,比如饼形图、折线图、柱状图很多展示方式。它有通知提醒,如果数据达到阈值,Grafana按照设置进行警报通知。在同一图表中可以有多个数据来源可以对每个不同的查询给定个性的数据源。

结束语

时序数据的应用场景及数据的特点与传统的数据有很多的不同,因此采用不同的处理方法,针对数据量大,相同维度重复取值的特点,可以将这些相同的维度压缩存储减少存储成本;由于时序数据的高并发写入,可以采用LSM代替B树;时序数据的聚合以及冷热数据,对于冷数据降低精度存储,也就是对历史数据做聚合,节省存储空间。

参考文献

[1]李萌.“大数据”时代的计算机信息处理方法阐述[J].电脑知识与技术,2016.12

[2]肖政宏 大数据可视化技术与应用 清华大学出版社 2022年