解密 云HBase时序引擎OpenTSDB 优化技术

  • 时间:
  • 浏览:1



时序数据库是专门存放随着时间推移而不断变化的数据。近些年,随着IoT等概念的流行,时序数据库成为数据库原先相对独立的领域逐渐受到重视,广泛应用于物联网、监控系统、金融、医疗和零售等多种场景。

它们长度默认是4个字节,即最多必须分配 2^24=16777216 个UID。还才能通过哪些地方地方参数调整:

salt什儿 东西最好根据此人 HBase集群规模去配置,它有原先配置:

一条时间线由 Metirc + 多个tag 唯一确定,时间线上会有源源不断的数据点(Data Point)写入,数据点由时间戳和值组成。OpenTSDB支持秒级(10位整数),毫秒级别(13位整数)并完整性都是时间精度。

逝者如斯夫,不舍昼夜。

                                                       —— 孔子



实现上方什儿 功能,当然才能 一定内核开发量。热烈祝贺 是通过云HBase购买页面购买的时序引擎,机会自带了上述功能。不管是分离部署模式,还是混合部署模式。

什儿 功能的好处显而易见,消除峰值节省成本,提升集群稳定性。原先 我门 对原先现有的HBase集群空闲资源需求就完整性都是 必须高了,完整性还才能复用了。下面是使用此功能后,同样只做写入的测试集群的流量状态:

什儿 设计有有多少特点:

查询的之完整性都是并发 tsd.storage.salt.buckets   个Scanner到HBase上,或多或少或多或少机会什儿 配置不多,对查询影响比较大,容易打爆HBase。这里其实是原先权衡,写入热点和查询压力。默认20其实我此人 其实有点多,配置3~8就差不多了,当然实际效果还和metric设计有关,机会在原先metric里设计了或多或少或多或少时间线,那就得配置或多或少或多或少bucket。在原先metric中设计不多时间线,会影响OpenTSDB的查询波特率,或多或少或多或少不建议必须做。

什儿 参数也是设置了就必须改的,或多或少或多或少也是要一以后开始英文规划好。

salt:打散同一metric不并肩间线的热点

metric, tagK, tagV:实际存储的是字符串对应的UID(在tsdb-uid表中)

timestamp:每小时数据位于一行,记录的是每小时整点秒级时间戳

。首先我门 要明白OpenTSDB为何会 会 要做压缩?在压缩些哪些地方东西?

上述2种模式,云HBase产品都能提供支持。

很明显,每个KV都记录了rowX,那rowX就是我原先空间浪费。什儿 空间不仅影响成本,还影响查询波特率(毕竟数据多了)。压缩做的事情就是我把多个小KV合成原先大KV,减少这要素浪费。或多或少或多或少压缩的之完整性都是涉及到对HBase的“读-写-删”,这就是我整点HBase IO流量的来源。

必须我门 有必须土辦法 ,既做压缩,并肩又消除这要素HBase IO呢?

独立部署,即与多个业务共享原先HBase。适合时序业务较小,机会用不满HBase资源。

还才能看多会有原先数倍流量的爆发,要持续以后才能消化。

注意

集群机会写过数据后就无法修改,或多或少或多或少最好是一以后开始英文就确定好,建议原先字节。机会使用压缩技术后,RowKey多占的有多少字节还才能忽略,下文会提到。

OpenTSDB有个很常见但会 很麻烦的哪些地方的问题,就是我整点以前对HBase对流量冲击。下面2张图是我门 原先测试集群只做写入对效果:

前面提到过OpenTSDB一行一小时的特点,必须一行里会有或多或少或多或少KV。表面 上看起来好像没哪些地方哪些地方的问题,但会 实际上对比逻辑视图和物理视图但会 你发现或多或少哪些地方的问题。

混合部署,即TSDBtcp连接和RS在原先VM内。适合时序业务较重,才能 独享HBase。



            

  OpenTSDB                                                                  HBase

过去1原先月时序数据库(Time Series DBMS)热度不断增长

这是列名(HBase中称为qualifier)的格式,还才能看多毫米级才能 多出原先字节。或多或少或多或少机会你的分发间隔不才能 精确到毫秒级别,那请一定使用秒级(10位整数)。Value必须存储整数和浮点,或多或少或多或少有原先bit存储Float flag。

必须我门 通过 band.heartbeat  + id=1  就能查询到编为1的手环分发到的心跳信息。

时间如流水,一去不复返。自古不乏对时间流逝的感慨,而现代机会有或多或少或多或少技术记录流逝的过去。我门 还才能拍照,还才能录像,当然还还才能用时序数据库!

这里我门 完整性都是哪些地方地方的问题,直接通过qualifier长度是4还是2不就能判断是秒级精度的数据点,还是毫秒了么?为何会 会 还才能 MS flag原先 原先标记信息?阅读下面的“压缩”要素,就能知道为哪些地方。

当然有!我门 还才能把压缩的逻辑放在HBase内控 去。机会HBase并完整性都是就才能 对HFile做合并工作,这以前HBase并完整性都是就会读写数据文件,这要素对HDFS的IO后该少,而我门 通过hook在HBase读出数据后,替换掉要写入的数据(即压缩好的数据)。

必须云上的用户何如构建原先存储海量数据的时序数据库呢?笔者这里推荐使用 云HBase + OpenTSDB 方案。云HBase是使用阿里多年优化过的HBase内核版本,本文不作不多介绍,详情请看产品主页。

OpenTSDB是一款基于HBase构建的时序数据库,它的数据存储完整性交给HBase,并完整性都是必须任何数据存储。所有节点是对等的,或多或少或多或少部署起来其实是非常方便的。机会基于HBase,或多或少或多或少并完整性都是就具备了横向扩展,存储海量数据的能力。常见的部署模式有2种,并完整性都是分离部署,并完整性都是混合部署。



举个例子,比如我门 监控原先手环分发的心跳信息,必须我门 还才能原先 定义: