黑马程序员技术交流社区

标题: 【上海校区】未来会是时序数据库的天下吗? [打印本页]

作者: 梦缠绕的时候    时间: 2019-10-9 14:24
标题: 【上海校区】未来会是时序数据库的天下吗?
时序数据简介
时序数据库最近正在爆发,各搜索引擎的搜索指数也都是呈上升趋势的。
DB-Engine 上的排名:
这份排行榜,都是时序数据库.
时序数据库的兴起是有原因的。就拿无人驾驶来说,无人车在运行时需要监控各种状态,包括坐标,速度,方向,温度,湿度等等,并且需要把每时每刻监控的数据记录下来,用来做大数据分析。每辆车每天就会采集将近8T的数据。如果只是存储下来不查询也还好(虽然已经是不小的成本),但如果需要快速查询“今天下午两点在北京路,速度超过60km/h的无人车有哪些”这样的多纬度分组聚合查询,那么时序数据库会是一个很好的选择。
比如,证券交易,智能家具,城市大脑等这些应用程序均依赖一种衡量事物随时间的变化的数据形式,这里的时间不只是一个度量标准,而是一个坐标的主坐标轴。
这就是时间序列数据,它渐渐在我们的世界中发挥更大的作用。目前,时间序列数据库(TSDB)已经成为增长最快的数据库类别。未来随着 5G 的到来,时序数据库将更加流行
时序数据的基本概念和意义
对时序数据进行建模的话,会包含三个重要部分,分别是:主体,时间点和测量值。套用这套模型,你会发现你在日常工作生活中,无时无刻不在接触着这类数据。
如果你是一个股民,某只股票的股价就是一类时序数据,其记录着每个时间点该股票的股价。
如果你是一个运维人员,监控数据是一类时序数据,例如对于机器的CPU的监控数据,就是记录着每个时间点机器上CPU的实际消耗值。
时序数据从时间维度上将孤立的观测值连成一条线,从而揭示软硬件系统的状态变化。孤立的观测值不能叫时序数据,但如果把大量的观测值用时间线串起来,我们就可以研究和分析观测值的趋势及规律。
时序数据的数学模型
数据的存储要考虑其数学模型和特点,时序数据当然也不例外。
下图为一段时序数据,记录了一段时间内的某个集群里各机器上各端口的出入流量,每半小时记录一个观测值。这里以图中的数据为例,介绍下时序数据的数学模型(不同的时序数据库中,基本概念的称谓有可能不同,这里以腾讯CTSDB为准):
这组数据的measurement为Network,每个point由以下部分组成:
同一个host、同一个port,每半小时产生一个point,随着时间的增长,field(bytes_in、bytes_out)不断变化
时序数据特点传统数据库在时序数据场景下存在的问题
当数据量少的时候在传统关系型数据库上加上时间戳一列就能作为时序数据库。但时序数据往往是由百万级甚至千万级终端设备产生的,写入并发量比较高,属于海量数据场景。

MySQL在海量的时序数据场景下存在如下问题:
Hadoop生态(Hadoop、Spark等)存储时序数据会有以下问题:
时序数据库需要解决以下几个问题:
所以,时序数据库的诞生就是为了解决传统关系型数据库在时序数据存储和分析上的不足和缺陷的。
开源时序数据库对比
目前行业内比较流行的开源时序数据库产品有 InfluxDB、OpenTSDB、Prometheus、Graphite等,其产品特性对比如下图所示:
InfluxDB 是一个开源的时序数据库,使用 GO 语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据,它目前是时序数据库中的佼佼者。


作者: 梦缠绕的时候    时间: 2019-10-9 14:25
有问题欢迎在评论区留言
作者: 梦缠绕的时候    时间: 2019-10-9 14:25
或者添加学姐微信
DKA-2018




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2