锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

时序数据库

时间:2022-11-22 13:00:00 id压缩型传感器

文章目录

    • 什么是时序数据库?
    • 时序数据库相关概念
    • 时序数据库应用场景
    • 时序数据库的特点
      • 数据写入的特点
      • 数据存储的特点
    • 数据模型
    • 对比和选择
    • TDengine与InfluxDB对比测试

什么是时序数据库?

时间序列数据库 Time Series Database (TSDB)

时序数据是随时间不断产生的一系列数据,简单来说,就是带时间戳的数据。

虽然其他数据库也可以在一定程度上处理数据规模较小的时间序列数据,但是 TSDB数据摄取、压缩和聚合可以随着时间的推移更有效地处理。以车联网场景为例,每辆车2万辆,60个指标,假设每秒收集一次,每秒报告2万辆 * 60 = 1200000指标值,即120W数据指标值为每秒16字节(假设只包括8字节时间戳和8字节浮点),每小时产生64字节G左右数据。事实上,每个指标值都会附加额外的数据,如标签,这实际上需要更多的存储空间。

时序数据库相关概念

时序数据库是专门处理时序数据的数据库,因此其相关概念与时序数据密切相关,以下是时序数据库的一些基本概念。

* 度量 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等)、插值等都是基于时间线维度进行的;

时序数据库应用场景

物联网和互联网中时序数据库的应用场景APM有下是一些时序数据库的应用场景,但并非全部:

* 公共安全:网络记录、通话记录、个人跟踪、区间筛选;

* 电力行业:集中监控智能电表、电网、发电设备;

* 互联网:服务器/应用监控、用户访问日志、广告点击日志;

* 物联网:电梯、锅炉、机械、水表等网络设备;

* 交通行业:实时路况、交叉口流量监测、交叉口数据;

* 金融行业:交易记录,存取记录,ATM、POS机监测;

也许除了这台空调,下一个电梯项目也是时间数据库

时序数据库的特点

不变、独特、时间排序

  • 时间序列数据是一系列基于时间的数据。将这些数据点连接到有时间的坐标中,过去可以制作多纬度报告,揭示其趋势、规律性和异常性;未来可以进行大数据分析、机器学习、预测和预警。

  • 时序数据库是存储时序数据的数据库,需要支持时序数据的快速写入、持久性、多纬度聚合查询等基本功能。

数据写入的特点

  • 写入稳定、持续、高并发、高吞吐量:时间序列数据的写入相对稳定,这与应用数据不同。应用数据通常与应用程序的访问量成正比,而应用程序的访问量通常是峰谷。时间序列数据通常以固定的时间频率生成,不受其他因素的限制,数据生成速度相对稳定。
  • 写多读少:时序数据上95%-99%的操作都是写操作,是写多读少的典型数据。这与它的数据特性有关,比如监控数据。你可能有很多监控项目,但你可能读得更少。通常,你只关心几个特定的关键指标或在特定的场景下阅读数据。
  • 实时写入最新生成的数据,没有更新:时间序列数据的写入是实时的,每个写入都是最新生成的数据,这与数据生成的特征有关,因为数据生成是随着时间的推移而实时写入的,而新生成的数据是实时的。数据没有更新。在时间维度上,随着时间的推移,每个数据都是新数据,旧数据不会更新,但不排除人工纠正数据。

数据存储的特点

  • 数据量大:以监控数据为例。如果我们收集的监控数据的时间间隔是1s,监控项每天产生86400个数据点。如果有1万个监控项,每天将产生864万个数据点。这个数字在物联网场景下会更大。整个数据的规模是TB甚至是PB级的。
  • 冷热分明:时序数据具有非常典型的冷热特征,历史数据越多,被查询和分析的概率越低。
  • 时效性:时间序列数据具有时效性。数据通常有一个保存周期。超过此保存周期的数据可视为无效和可回收。一方面,历史数据越多,可用价值越低;另一方面,为了节省存储成本,可以清理低价值数据。
  • 多精度数据存储:考虑到存储成本和查询效率,查询特征中提到的时序数据需要多精度查询和多精度数据存储。

数据模型

时间序列数据可分为两部分

  • 序列 :标识符(维度)的主要目的是方便搜索和筛选
  • 数据点:由时间戳和数值组成的数组
    • 行存:一个数组包含多个点,如 [{t: 2017-09-03-21:24:44, v: 0.1002}, {t: 2017-09-03-21:24:45, v: 0.1012}]
    • 列存:两个数组,一个存时间戳,一个存数值[ 2017-09-03-21:24:44, 2017-09-03-21:24:45], [0.1002, 0.1012]
      一般来说,列存能具有更好的压缩率和查询性能

对比和选择

可根据以下需要选择合适的存储:

  • 小而精,性能高,数据量小(亿级) InfluxDB
  • 简单,数据量小(千万级),有联合查询和关系数据库基础:timescales
  • 大数据量、大数据服务基础、分布式集群需求: opentsdb、KairosDB
  • 分布式集群需求,olap实时在线分析,资源充足:druid
  • 性能极端追求,数据冷热差异大:Beringei
  • 兼顾检索加载,分布式聚合计算: elsaticsearch
  • 假如你需要索引和时间序列。Druid和Elasticsearch这是最好的选择。它的性能并不差,同时满足了检索和时间序列的特点,并且都是高可用容错架构。

TDengine与InfluxDB对比测试

TDengine与InfluxDB对比测试 - TDengine | 涛思数据 (taosdata.com)

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章