一、基本概念
时序时空数据库 TSDB :英文全称为 Time Series & Spatial Temporal Database,简称 TSDB,提供高效存取时序数据和统计分析功能的数据管理系统。是一种高性能、低成本、稳定可靠的在线时序时空数据库服务,提供高效读写、高压缩比存储、时序数据插值及聚合计算等服务,广泛应用于物联网(IoT)设备监控系统、企业能源管理系统(EMS)、生产安全监控系统和电力检测系统等行业场景;除此以外,还提供时空场景的查询和分析的能力。除此以外,还提供时空场景的查询和分析的能力。
TSDB 具备秒级写入百万级时序数据的性能,提供高压缩比低成本存储、预降采样、插值、多维聚合计算、可视化查询结果等功能,解决由设备采集点数量巨大、数据采集频率高造成的存储成本高、写入和查询分析效率低的问题。
二、时序时空数据库常用名词
时序数据(Time Series Data):基于稳定频率持续产生的一系列指标监测数据。例如,监测某城市的空气质量时,每秒采集一个二氧化硫浓度的值而产生的一系列数据。
度量(Metric):监测数据的指标,例如风力和温度。
标签(Tag):一个标签(Tag)由一个标签键(TagKey)和一个对应的标签值(TagValue)组成,例如“城市(TagKey)= 杭州(TagValue)”就是一个标签(Tag)。注意:当标签键和标签值都相同才算同一个标签;标签键相同,标签值不同,则不是同一个标签。
值(Value):度量对应的值,例如 15 级(风力)和 20 ℃(温度)。
时间戳(Timestamp):数据(度量值)产生的时间点。
数据点 (Data Point):针对监测对象的某项指标(由度量和标签定义)按特定时间间隔(连续的时间戳)采集的每个度量值就是一个数据点。
时间序列(Time Series):针对某个监测对象的某项指标(由度量和标签定义)的描述。“一个度量 + N 个标签KV组合(N >= 1)”定义为一个时间序列,某个时间序列上产生的数据值的增加,不会导致时间序列的增加。
时间线(Timeline):等同于时间序列的概念。
时间精度:时间线数据的写入时间精度——毫秒、秒、分钟、小时或者其他稳定时间频度。
数据组(Data Group):如果需要对比不同监测对象(由标签定义)的同一指标(由度量定义)的数据,可以按标签这些数据分成不同的数据组。例如,将温度指标数据按照不同城市进行分组查询。
聚合( Aggregation):当同一个度量(Metric)的查询有多条时间线产生(多个指标采集设备),那么为了将空间的多维数据展现为成同一条时间线,需要进行合并计算,例如,当选定了某个城市某个城区的污染指数时,通常将各个环境监测点的指标数据平均值作为最终区域的指标数据,这个计算过程就是空间聚合。
降采样(Downsampling):当查询的时间区间跨度较长而原始数据时间精度较细时,为了满足业务需求的场景、提升查询效率,就会降低数据的查询展现精度,这就叫做降采样,比如按秒采集一年的数据,按照天级别查询展现。
数据时效(Data’s Validity Period):数据时效是设置的数据的实际有效期,超过有效期的数据会被自动释放。
时空数据库:由于IoT领域的特性,其中采集到的很多数据不仅有时间信息,还有空间信息,因此时序数据库也需要能够识别和处理空间信息,以便更好地服务IoT场景。因此在时序数据库的基础上,添加了对空间信息的存储和处理能力。地理空间信息(主要是经纬度)。
三、数据库特点
TSDB 提供时序数据的高效读写。对于百万数据点的读取,响应时间小于 5 秒,且最高可以支撑每秒千万数据点的写入。
支持通过 HTTP 协议 和 TSDB Java Client 两种方式进行数据写入。
TSDB 支持通过 HTTP 协议、TSDB Java Client 以及 TSDB 控制台三种方式进行数据的查询操作。也可以通过 TSDB 控制台的数据查询功能进行数据分组、降采样、空间聚合的可视化数据查询展现。
可以通过控制台或者 API 设置数据的有效期。数据时效开启并设置完成后,系统对于定义的过期数据将立即标记失效,并在特定时间进行自动化清理。
可以在控制台上根据度量(Metric)进行数据清理,或者通过 API 进行更灵活的数据清理。
使用高效的数据压缩技术,将单个数据点的平均使用存储空间降为1~2个字节,可以降低90%存储使用空间,同时加快数据写入的速度。
提供专业全面的时序数据计算函数,支持降采样、数据插值和空间聚合计算,能满足各种复杂的业务数据查询场景。
提供实例运维系统,可以实时的掌握实例的运行情况、性能指标和存储空间使用情况,并通过设置报警通道,实时发现资源瓶颈。
提供 VPC 的实例访问方式,充分保证实例访问的安全性。
提供网络白名单功能:您可以通过设置允许访问实例的机器名单,进一步保证实例和数据的访问安全。
数据存储默认采取三副本策略,充分保证数据的可用性。
四、典型应用场景
设备将原始数据通过 MQTT 协议发送到物联网套件,经由物联网套件将数据转发到消息服务系统,继而通过流计算系统对这些数据进行实时计算处理后写入到 TSDB 中存储,或者经由物联网套件直接将原始数据写入 TSDB 中存储。前端的监控系统和大数据处理系统会利用 TSDB 的数据查询和计算分析能力进行业务监控和分析结果的实时展现。
归纳:物联网的数据传输协议为MQTT,对于时序时空数据库有两种使用方式,物联网套件直接将数据写入数据库中,或者用来存储经过流计算系统处理后的数据。数据在接入流计算系统进行处理前需要经过消息服务系统。
2、系统运维和业务实时监控
对大规模应用集群和机房设备的监控,实时关注设备运行状态、资源利用率和业务趋势,实现数据化运营和自动化开发运维。通过日志或者其他方式对原始指标数据进行采集和实时计算,最后将实时计算的结果数据存储到 TSDB,实现监控和分析的展现。
归纳:数据来源为日志等手段,数据库用来存储经过流计算系统处理后的数据。数据在接入流计算系统进行处理前同样需要经过消息服务系统。
归纳:数据来源为日志等手段,同物联网套件所起的功能相同,在数据进入流计算系统之前同样需要经过消息服务系统,数据库记录的是流计算系统处理过的数据。