首页 -> 数据分析

时间序列数据库 (TSDB,时序数据库)

流星雨 190 天前建立 •  179   

时间序列数据库 Time Series Database (TSDB) 是相对于关系型数据库 (RDBMS)的一种概念。 以时间作为主要的查询纬度,相对于关系型数据库,它一定有一个字段是时间,基本的记录数据就是某个时间在某地产生了一个数据。例如:2019新型冠状病毒疫情时间序列数据仓库( /t/18558 ),就是记录某个时间新增多少病例,治愈多少病例的一种数据。


时序数据库,基于时序数据大量,快速产生的特点,需要支持时序数据的快速写入、分布保存等特点。比如用 MySQL 的 VividCortex, 用 Postgres 的 Timescale。 很多人觉得特殊的问题需要特殊的解决方法,于是很多时间序列数据库从头写起,不依赖任何现有的数据库, 比如 Graphite,InfluxDB。


基本概念

不同的时序数据库定义可能会有所不同,如下是其使用时常见的基本概念。

metric 度量,相当于关系型数据库中的表table;

data point 数据点,相当于关系型数据库中的行row;

timestamp 时间戳,代表数据点产生的时间,一般是必须的列;

field 度量下的不同字段,一般存放随着时间戳的变化而变化的数据;

tag 标签,一般存放的是标示数据点来源的属性信息。

通常 timestamp 加上所有的 tags 可以认为是 table 的 key;如下图是采集风向的数据:


实际的GA时序数据中,每个卡点的每个时间点都可能会产生多条数据,而且有可能有大量重复数据,所以Key的选择比较麻烦,我们一般使用时间做前缀后面加卡点编号和序列号。

时序数据库要求写入平稳、持续、高并发高吞吐,一般情况下写多读少,但实际GA内部采集时是这样的,但一旦涉及到对数据的使用就完全不同了。这类数据应该从业务库中抽出重建主题分析库,以在保证基本数据更新的情况下,支持更快的查询和分析,这类分析一般有大量的数据交叉比对,数据I/O比较大,典型的时序数据库也不太适合。

交通路口的车牌识别系统,人像识别系统、电子数据采集系统可能都是时序数据库的典型案列。移动通信运营商的基站采集数据,就是每个手机在不断和基站打招呼的数据。

随着现在智能设备、监控设备的突飞猛进,时序数据以后会越来越普遍,有可能成为工作主要研究的数据库类别,因为一些基础数据相对较少并且已经有了成熟的解决方案。


参考阅读:

https://www.jianshu.com/p/31afb8492eff
https://learnku.com/articles/37149
https://www.infoq.cn/article/3s6RDKijPoJKKgSu8rVh

时序数据库 

回复

登录发表 or 还没有账号?去注册