时序数据库(TSDB)-为万物互联插上一双翅膀

1. 什么是时序数据库(Time series database)?

时序数据库(Time Series Database,简称TSDB)是一种特定类型的数据库,主要用来存储时序数据。

维基百科上的解释:

A time series database (TSDB) is a software system that is optimized for handling time series data, arrays of numbers indexed by time (a datetime or a datetime range).

翻译过来就是“时序数据库用来存储时序(time-series)数据并以时间(点或区间)建立索引的软件。”

一般时序数据都具备如下两个特点:

  • 数据结构简单
  • 数据量大

所谓的结构简单,可以理解为某一度量指标在某一时间点只会有一个值,没有复杂的结构(嵌套、层次等)和关系(关联、主外键等)。

数据量大则是另一个重要特点,这是由于时序数据由所监控的大量数据源来产生、收集和发送,比如主机、IoT设备、终端或App等。

随着5G技术的不断成熟,物联网技术将会使得万物互联。物联网时代之前只有手机、电脑可以联网,以后所有设备都会联网,这些设备每时每刻都会吐出大量的按照时间组织的数据,需要存储下来进行查询、统计和分析。

2. TSDB数据库特点

时序数据和普通的业务数据在各个方面都有很大的不同。TSDB作为一种专为时序数据优化而设计的数据库,在很多方面都和传统的RDBMS和NoSQL数据库不太一样,比如它不关心范式和事务。

  • 写多于读,95%-99%的操作都是写操作
  • 顺序读,基本都是按照时间顺序读取一段时间内的数据。

为了提高读取的响应时间,有两种策略:

一是以写性能优先,不为读取做存储优化,但是通过分布式和并发读,来提高读取的速度。

二就是在写入的时候就考虑到读的性能问题,将统一指标、时间段的数据写入到同一数据块中,为读取进行写入优化。

3. DB-Engines中时序数据库排名

DB-Engines Ranking of Time Series DBMS

https://db-engines.com/en/ranking/time+series+dbms

排名前15 名如下所示,其中InfluxDB排名第一,由Golang语言编写。

最近24个月,每种数据库类别的受欢迎程度变化趋势图。TSDB 排名第一。

4. TSDB应用场景

运维、监控系统大多数都采用了TSDB 作为数据库系统来存储海量的、严格按时间递增的、在一定程度来说结构非常简单的各种指标(英文可能为metric、measurement或者类似的其他单词)数据。

实际上,TSDB的潜力还没有爆发,至少在现在还没有。在可预知的未来3~5年,随着物联网以及工业4.0的到来,所有设备都会携带传感器并联网,传感器收集的时序数据将严重依赖TSDB的实时分析能力、存储能力以及查询统计能力。

上图是一个智慧工厂示意图,工厂中所有设备都会携带传感设备,这些传感设备会实时采集设备温度、压力等基本信息,并发送给服务器端进行实时分析、存储以及后期的查询统计。除此之外,比如现在比较流行的各种穿戴设备,以后都可以联网,穿戴设备上采集的心跳信息、血流信息、体感信息等等也都会实时传输给服务器进行实时分析、存储以及查询统计。

5. TSDB时序数据库总结

TSDB将是未来一个非常具有市场性、挑战性的数据库,现在虽然已经有这样那样的服务,但大多都有这样那样的问题,现在很难谈得上成熟。为了在物联网时代、工业4.0 时代中占有一定地位,TSDB是必须要拓展的技术。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();