时序数据库入门系列: 时序数据库的定义

时序数据库的定义

时序数据是随时间不断产生的一系列数据,简单来说,就是带时间戳的数据。时序数据的主要特点就是数据量大,写多读少。

以车联网场景为例,20000辆车,每个车60个指标,假设每秒采集一次,那么每秒将上报20000 * 60 = 1200000指标值,即120W数据指标值每秒,每个指标值为16字节(假设仅包括8字节时间戳和8字节的浮点数),则每小时将产生64G左右的数据。而实际上每个指标值还会附带标签等额外数据,实际需要存储空间会更大。

另外,时序数据的查询通常是多维聚合查询,对查询的延迟要求比较高。在早期,数据量小时,使用传统的关系型数据库也可以胜任。但是随着5G和物联网的到来,数据呈爆炸式增长,传统关系型数据库越来越力不从心了,因此时序数据库应运而生。

时序数据库(Time Series Database)全称为时间序列数据库, 是专门用于存储和处理时间序列的数据库,支持时序数据高效读写、高压缩存储、插值和聚合等功能。

时序数据库相关概念

时序数据库是专门处理时序数据的数据库,因此其相关概念是和时序数据紧密联系的,下面是时序数据库的一些基本概念。

  • 度量 Metric:Metric 类似关系型数据库里的表(Table),代表一系列同类时序数据的集合,例如为空气质量传感器建立一个 Table,存储所有传感器的监测数据。

  • 标签 Tag:Tag 描述数据源的特征,通常不随时间变化,例如传感器设备,包含设备 DeviceId、设备所在的 Region 等 Tag 信息,数据库内部会自动为 Tag 建立索引,支持根据 Tag 来进行多维检索查询;Tag 由 Tag Key、Tag Value 组成,两者均为 String 类型。

  • 时间戳 Timestamp:Timestamp代表数据产生的时间点,可以写入时指定,也可由系统自动生成;

  • 量测值 Field:Field描述数据源的量测指标,通常随着时间不断变化,例如传感器设备包含温度、湿度等Field;

  • 数据点Data Point: 数据源在某个时间产生的某个量测指标值(Field Value)称为一个数据点,数据库查询、写入时按数据点数来作为统计指标;

  • 时间线 Time Series :数据源的某一个指标随时间变化,形成时间线,Metric + Tags + Field 组合确定一条时间线;针对时序数据的计算包括降采样、聚合(sum、count、max、min等)、插值等都基于时间线维度进行;

timeseries_basic_concepts.jpg

时序数据库的发展趋势

时序数据库的发展趋势,可以从DB-engines(https://db-engines.com)获取获取到,下图是DB-engines收录的数据库近24个月的发展趋势,其中时序数据库的活跃度最高,且随时间呈现越来越活跃的趋势。

timeseries_ranking2.png

下图是DB-engines收录的时序数据库的排名,其中排名最高的时序数据库是2013年开源的InfluxDB。

dbengines_ranking_of_timeseries.png

时序数据库应用场景

时序数据库的应用场景在物联网和互联网APM等场景应用比较多,下面是列举了一些时序数据库的应用场景,但不是全部:

  • 公共安全:上网记录、通话记录、个体追踪、区间筛选;
  • 电力行业:智能电表、电网、发电设备的集中监测;
  • 互联网:服务器/应用监测、用户访问日志、广告点击日志;
  • 物联网:电梯、锅炉、机械、水表等各种联网设备;
  • 交通行业:实时路况、路口流量监测、卡口数据;
  • 金融行业:交易记录、存取记录、ATM、POS机监测;

你可能感兴趣的:(时序数据库入门系列: 时序数据库的定义)