时序数据库用途是什么?
- 2019 年 10 月 6 日
- 筆記
在公有云的数据库产品清单里,近年出现了一个新的名词“时序数据库”。感觉数据库的产品已经不少了,时序数据库的用途是什么?为什么会诞生该产品?我们今天一起来看一下!
一、什么是时序数据库?
相比于传统的关系数据库SQL、非关系型数据库NOSQL,时序数据库是较新的技术,没有行业标准,有很多方面还有待完善。
时序数据库的定义很简单,也就是在时间上分布的一串数字。
例如:某个酒店在晚上8:00有200个房间被入住,那个8:00时间点上存储的200的数字就是时序数据。
而晚上8:00,某个房间被入住,这个数据只是一个日志。
再例如,通过物联网数据采集设备,采集的一串温度数据、压力数据等,也适用于时序数据的范围。
二、时序数据库有一些特别操作。
1、插值。时间序列分布会在一些时间线上,且序列会随着时间的增长往后发展。本质上是在一个固定的时间点记录数据。如果需要根据这些时间点画图,那么涉及到线性插值的问题,一般是将两个时间轴的平均值作为中间数据。
2、降精度。如果我们按分钟记录了温度,如果需要查看一年的数据走向图,则需要下降时间的精度为天计算。这时,我们将涉及到如何选择这一天温度的问题,我们可以选择最大值、最小值或当天的平均值。
这两个问题在传统数据库中是没有的场景。
三、时序数据库有显著的特别
1、数据量大。如果某物联网设备一秒采一次温度,那么一天将产生86400条数据。如果全市有上万个同类的数据,那这个数据量是惊人的。
2、数据量平稳。物联网设备将隔固定的周期采集数据,除非改变采集策略,这个数据量一般不存在波峰或波谷,不需要进行数据高峰期的特殊优化。
3、数据存在时效性。离现在越久的数据,越不会被访问到。例如,我们的手环数据,我们重点将关注近期的数据分析结果。
四、传序数据库不适合干时序数据库的事
讲到这里,大家一定觉得传统的数据库也能做这些场景下的事,但事实是不适合。
1、降精度的场景不合适。例如需要快速选择出当天的温度平均数据作为当天的温度,实际在传统数据库中又是复杂的计算过程。
2、数据量大的场景不合适。刚才讲到一秒钟存一次温度,那一天将存储上8万次数据,而这些大数据量将极大的占用存储空间。如果采用时序数据库,将通过压缩机制极大降低数据的存储量。