时间序列数据库才是未来

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 原本是为《阿里云数据库金笔杆大赛》准备的,结果主办方说我自己抄袭自己的,哼!转载自http://www.zeusro.com/2020/04/02/tsdb/

首先,我们先理清一个概念:

关系型数据库是非关系数据库的真子集,非关系数据库是时间序列数据库的真子集。

关系型数据库

mysql.png

关系型数据库是这样定义的:

采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。

关系型数据库的集大成者是 MySQL 。关系型数据库的问题在于强调“关系”。但实际上,对象之间的关系是弱关系。强关系只是一种特例

举个例子。我们定义三个对象:小明,小红和小王。小明和小红是同居的情侣,小王住在他们隔壁。有一天,小明回到家看到小红和小王呆在同一个房间里。这时小明会有什么想法呢?

他到底应该说小王和小红在过家家呢,还是认同他们的解释,认为小王是在给房间里换电灯泡呢?

这个关系的问题,其实就是关系型数据库的最大问题——乱搞关系。在现在很多开发设计规范里面,已经把关系型数据库当做一个数据存储的仓库(堆表),禁止存储过程,也禁止了外键。可以说,这是历史发展的必然结果。

非关系型数据库

那么,非关系型数据库,自然就是 NoSQL 。

NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

其中有以 Redis 为代表的 key-value 数据库,也有以 MongoDB 为代表的文档型数据库。

redis.jpg

Redis 是基于内存的(虽然也可以持久化到硬盘),内存是相当珍贵的资源。资源的有限限制了资源的广泛使用。

Mongodb.png

MongoDB 其实有点像 Excel ,在 Excel 文件里面,每一行可以有任意个单元格。

比如,新亘结衣在 MongoDB 中的“爱好”和“配偶”不是空(Null),而是压根就没有这个字段。

姓名 性别 电话 爱好 偶像 特长
王蟑螂 +8617051026064 吃耙耙 新亘结衣
新亘结衣 +8113766621544 唱歌

如果说 Redis 的问题在于内存过于珍贵,那么我觉得非关系型数据库的问题在于描述的对象“不够自然”。

时间序列数据库

tsdb.jpg

“不够自然”的意思,就是缺少“时间”这个属性。实际上,时间才是数据的第一属性。任何数据如果没有时间这个属性,那么都变得毫无意义。所以很多表在设计的时候,从规范层面就是这样说的:要有创建时间这个属性

除此以外,时间序列数据库应该满足这样一个特征:不可变性(Immutable) 。不可变性是指数据录入之后不可变更。数据库的业务靠实时数据流引擎去处理。

时间序列数据库,才是最切合现实世界的模型。举个最简单的例子:我要用小拳拳捶你胸口。我们先简化一下这个动作,然后再录入到时序数据库里面吧 ~

“小拳拳捶你胸口”,最简化的模型就是,描述一个点在三维空间里面“线段”(因为移动的距离有限,所以叫线段)运动到另外一个点。

在三维空间里面,求两点之间的距离,其实跟在一维空间求两点的距离,没啥差别,泛化勾股定理就行了。我会这样说,勾股定理,是升高维度的“梯子”。

有这样的认识,在时序数据库里面,定义数据非常之自然而简单。还是以这个问题为例,解决这个问题,只需要隔一段采集数据,并录入即可。

时间 X Y Z
2020-04-01 09:35:00 1 1 1
2020-04-01 09:35:01 2 2 2
2020-04-01 09:35:02 3 3 3
2020-04-01 09:35:03 3 3 3

监控分析

monitor.jpg

杭州迪火科技监控平台负责人董兵林是这样说的:“(阿里云)TSDB 帮助我们解决了指标数据存储的问题,其表现出的极佳性能,零运维成本,数据永久存储,专门的技术支持,都是我们一直使用的原因。目前我们可以很方便的查看实时指标信息和回溯历史的指标信息,及时发现问题,为进一步的决策提供依据,TSDB 是我们不可缺少的一部分。”

趋势分析

趋势分析,是用来预测未来的一种概率。比如,在上面的数据中,用三维直角坐标系建模,就会得到一条线性趋势线。我们可以预测2020-04-01 09:35:04,我的小拳拳大概率会落于(4,4,4)这个坐标点。

溯源分析

溯源分析跟趋势分析是相反的,是时间倒序的另外一种数据结构。

时间 X Y Z
2020-04-01 09:35:03 3 3 3
2020-04-01 09:35:02 3 3 3
2020-04-01 09:35:01 2 2 2
2020-04-01 09:35:00 1 1 1

在这个问题中,我们建立一条线性趋势线之后,可以用溯源推理分析出2020-04-01 09:34:59我的拳头大概率位于 (0,0,0) 。

也就是说,这是用来预测“过去”的一种概率。溯源分析可以用于刑侦破案,历史遗留问题溯因等场景。

现在的时间序列化数据库,每一行的记录还是比较结构化的。而且,被大量应用于监控领域,这其实是一种误解。
广义的时间序列数据库,每一行数据支持任意属性。

结论

我相信在未来,时序数据库将超越关系型数据库和非关系型数据库,成为应用开发的首选方案

参考链接

  1. 关系型数据库
  2. NoSQL
  3. 散点图是什么?有什么用?
  4. 时间序列数据库 TSDB
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
存储 算法 数据库
HBase在时间序列数据库中的应用
2017云栖大会HBase专场,阿里巴巴高级技术专家悠你带来题为HBase在时间序列数据库中的应用的演讲。本文主要从时序数据和数据库说起,着重分享了HiTSDB针对时序场景的优化,最后分析了HBase作为底层存储的优势。
7321 0
|
3月前
|
存储 druid 关系型数据库
时间序列数据库(TSDB)初识与选择
时间序列数据库(TSDB)初识与选择
61 0
|
7月前
|
存储 数据库 时序数据库
InfluxDB是一个开源的时间序列数据库
InfluxDB是一个开源的时间序列数据库
103 2
|
分布式数据库 数据库 Hbase
|
存储 SQL druid
时间序列数据库(TSDB)初识与选择
我们开始存储大量的数据,并总结出这些数据的结构特点和常见使用场景,不断改进和优化,创造了一种新型的数据库分类——时间序列数据库(time series database).
1450 0
时间序列数据库(TSDB)初识与选择
|
存储 传感器 Prometheus
时间序列数据库的内容,原因和方式
  什么是时间序列数据? 为什么我们需要单独的数据库来处理数据库? 时间序列数据库如何处理数据?   如果您关注技术,则很有可能遇到术语"时间序列数据库"。 本文旨在传达-   · 什么是时间序列数据?   · 为什么时间序列现在变得越来越重要?   · 为什么我们需要一个单独的数据库来处理时间序列数据?
128 0
|
新零售 监控 物联网
阿里云发布时间序列数据库TSDB,关于时序你了解多少?
阿里云发布时间序列数据库TSDB,专家帮你解答时序那些事。
8512 0
|
新零售 存储 物联网
HiTSDB高性能时间序列数据库产品解析
2018云栖大会武汉峰会IOT物联网专场,阿里巴巴数据库产品专家艾乐强带来题为HiTSDB高性能时间序列数据库产品解析的演讲。主要内容从四个方面进行解说,首先介绍了物联网数据特征和数据库困境,然后是对HiTSDB 核心能力进行介绍,紧接着对物联网平台方案和架构设计进行了讲解,最后对时序数据库应用场景进行了详细的阐述。
2073 0
|
传感器 SQL 存储
为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
近日,阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。
5384 1

热门文章

最新文章