TSDB(时序数据库)是当下非常火的数据库, 下图的db-engines看到TSDB的热度遥遥领先其他数据库,当下国内也有很多做TSDB的创业公司,包括TDEngine、DolphinDB、GrepTime等等。
Elasticsearch是一个非常流行的搜索引擎,目前Elasticsearch功能越来越强大,搜索引擎跟数据库的概念也越来越类似。搜索本质就是在海量的数据中找到需要的数据。而数据库功能也类似,存储海量的数据,可以更好的在海量的数据中找到需要的数据。所以可以看到Elasticsearch做的很多功能跟数据库是很类似的。
对于TSDB领域,Elasticsearch最初没有单独的支持,但是TSDB算是通用数据库的一个特定场景,所以Elasticsearch从功能上也基本能满足TSDB的需求。不过由于没有针对TSDB场景的优化,所以在成本、性能、易用性方面相比TSDB会有很大的差距。所以我看到用Elasticsearch支持TSDB场景,一些评论第一反应就是不合适。
接下来的文章我就会给大家介绍下,Elasticsearch做了哪些针对TSDB领域的特定优化,用户再使用最新版本的Elasticsearch时候,Elasticsearch已经能很好的支持TSDB场景了。
TSDB简介
TSDB相关的介绍,网上有很多资料,推荐这两篇文章:
http://hbasefly.com/2017/11/19/timeseries-database-1/
http://hbasefly.com/2017/11/19/timeseries-database-2/
我这里主要总结下TSDB的特点:
1、采样数据:首先,它存储的是采样数据,采样数据是基于稳定频率持续产生的一系列数据,相对应的是基于事件产生的数据,事件型数据是离散、随机产生的,而采样型数据是稳定的,持续产生的。
2、数据模型固定:第二个特点是时序引擎的数据模型非常固定,一般都由时间、维度、指标三类字段组成。
3、时间线:第三个特点是时间线的概念,图中的纵坐标是时间线id,他是由维度组成的,一般是保持不变的。横坐标是指标数据,会随着时间不停地变化,这就组成了时间线的概念。
4、没有波峰波谷:第四个特点,时序引擎存储的数据没有波峰波谷,7*24小时都在稳定的产生数据,跟他相对应的事件型数据一般根据业务的高峰低峰会有起伏。
5、垂直写,水平查:第五个特点是时序引擎是垂直写,水平查,始终都在写最新的数据,查询会基于一个时间段去做一些聚合型的分析。
可以看到TSDB特点非常鲜明,所以对于通用数据库,如果没对TSDB场景做针对的优化,是会比专业TSDB上有不少差距,下篇文章我就给大家介绍下Elasticsearch做TSDB会存在哪些问题。