基本概念

名词解释-1

物联网、应用监控、工业互联网等典型的时序场景下,数据源(Data Source,表示数据由谁产生)通常按一定的周期持续产生时序数据,一条时序数据由 Tags、Timestamp、Fields 等元素共同来描述,具有相同特征的一类数据存放在同一张Table当中。

表 1. 时序数据元素说明
元素 描述
表名(Table) 代表一系列同类时序数据的集合,例如为空气质量传感器建立一个Table,存储所有传感器的监测数据。
标签(Tag) Tag描述数据源的特征,通常不随时间变化,例如传感器设备,包含设备DeviceId、设备所在的Region等Tag信息,数据库内部会自动为Tag建立索引,支持根据Tag来进行多维检索查询;Tag由Tag Key、Tag Value组成,两者均为String类型。
时间戳(Timestamp) Timestamp代表数据产生的时间点,可以写入时指定,也可由系统自动生成。
量测值(Field) Field描述数据源的量测指标,通常随着时间不断变化,例如传感器设备包含温度、湿度等Field,Field列无需提前创建固定的Schema,可以在运行过程中动态增减;Field由Field Key、Field Value组成,Field Key为String类型,Field Value支持Boolean、Int、Double、String、Byte等类型。
数据点(Data Point) 数据源在某个时间产生的某个量测指标值(Field Value)称为一个数据点,数据库查询、写入时按数据点数来作为统计指标。
时间线(Time Series) 数据源的某一个指标随时间变化,形成时间线,Tags+Field组合确定一条时间线;针对时序数据的计算包括降采样、聚合(sum、count、max、min等)、插值等都基于时间线维度进行;数据库在存储数据时,会将同一条时间线的数据尽量聚类存储,提升时间线数据访问效率,同时更好的支持时序数据压缩。

时序数据库提供一系列特有的数据访问操作,包括聚合(Aggregation)、降采样(Downsample)、插值(Interpolation)等,同时还提供数据生命周期(数据时效)的管理机制。

表 2. 数据访问操作元素说明
元素 描述
聚合(Aggregation) 对同一时间线、或不同时间线上的数据点进行分组、求和、计数等计算操作。
降采样(Downsample) 查询时间区间跨度较长,且原始数据采样频率较高时,可通过降采样降低数据的查询展现精度,例如按秒采集的数据,查询时按小时级别采样,减少结果集的数据点数。
插值( Interpolation) 时间线中间缺失部分数据点时,可通过插值算法进行数据点自动填充。
数据时效 (TTL) 数据时效是指数据保存有效期,超过有效期的数据会被自动清理,默认数据有效期为永久保存。

场景示例

某风力电厂包含一系列的智能风力发电机设备,创建名为Wind-generators的table来存储所有设备的信息,设备由ID型号厂商等Tag信息描述,每个设备会持续上报功率风速等Field指标,指标数据通过时序数据库的API实时写入到云端时序数据库。

名词解释-2

上述场景三个设备产生的数据如下图所示。

名词解释-3
时序数据库除了支持高并发的写入吞吐以及高压缩率,还能高效的满足如下类型的查询请求:
  • 查询某条时间线一段时间内的数据点。

    例如:查询ID=1234ABC的设备,在2020-10-24T00:00:00Z ~ 2020-10-24T00:30:00Z30分钟时间范围内,运行风速指标值。

  • 查询多条时间线一段时间内的数据点,并按5分钟粒度降采样。

    例如:查询ID=1234ABC的设备,在2020-10-24T00:00:00Z ~ 2020-10-25T00:00:00Z一天时间范围内,功率风速的指标值明细,按5分钟粒度采样返回数据。

  • 对某条时间线按时间范围做聚合。

    例如:查询ID=1234ABC的设备,在2020-10-24T00:00:00Z ~ 2020-10-24T00:30:00Z时间范围内,运行功率的平均值。

  • 查询多条时间线的最新点。

    例如:查询ID=1234ABC的设备,最新的功率风速

  • 按Tag做时间线聚合查询。

    例如:查询厂商=KingWind的设备,在2020-10-24T00:00:00Z的平均风速