1 客户端
opentsdb的hbase客户端,使用了他们自己编写的异步非阻塞
hbase客户端
据说比hbase自带的客户端性能好很多.
下面是一个评测结果
http://www.tsunanet.net/~tsuna/asynchbase/benchmark/viz.html
2 opentsdb的数据存储
2.1 hbase宽列存储
假设一般关系型数据库存储某指标ABX在2014年5月1日08时左右的如下数据
可以看出时间数据前缀有重复,在Hbase中可以通过提取共同前缀,达到减小存储空间,提高存储效率的目标.将上述时序数据在Hbase中以宽列形式存储,逻辑结构表示如下
Hfile中keyvalue的物理存储格式(略去column family和version部分)如下
宽列存储的优势在于Hfile中的row(相同rowkey的keyvalue是一个row)数量会大大减少,提高查询效率,原因如下:
1)Hfile中meta block中会存储bloom filter,用来判定特定的rowkey是否在Hfile中.随着row数量的减少,bloom filter的体积会显著减小,因为bloom filter entry的生成是以row为单位.
2)Hbase中除了rowkey作为检索条件,还可以利用filter在rowkey,keyvalue,keyvalue的集合上进行过滤.在filter执行的早期阶段进行rowkey的比较,如果发现整个row不符合条件,能迅速跳过大量keyvalue,减少filter比对的次数.
2.2 opentsdb的宽列存储的二次compact
宽列存储的硬盘空间节省非常有限,因为keyvalue的数量受column qualifier数量影响.因此可以在宽列存储的基础上进行二次compact,将同一个row的多个column qualifier存储为一个column qualifier.
其keyvalue物理存储格式(略去column family和version部分)为
进过二次compact的时序数据,在存储体积上也显著减小.配合其他压缩算法,可以极大的节省存储空间,提高访问效率.
Opentsdb在添加数据点的时候,把需要compact的row放到一个队列中,然后定时compact.
TSDB的addPointInternal方法中,调用scheduleForCompaction将row放入队列, CompactionQueue类中,启动Thrd这个线程来进行compact
但是有时候一个row已经被compact过了,这个row仍有可能插入数据,所以要对已经compact的row进行第二次compact,所以在scan的时候,仍然有可能进行compact.
ScannerCB类中,每次scan完成仍然调用compact方法进行数据compaction
下图表示一个已经compact的row,插入了新的数据后,又一次进行了compact
3 opents中的tree
Opents中的监控指标都是metric,每个metric都互相独立,带有tag,由用户自定义metric和tag,但是可以通过自定义规则,将metric,tag分解为树的形式进行结构化展现.
比如有上面的metric和tag,可以通过规则(提取tag value,正则表达式分解metric等),变换为如下的tree
先按照数据中心分级,然后按主机,然后按监控类型
- 大小: 2 KB
- 大小: 2 KB
- 大小: 2.7 KB
- 大小: 1.8 KB
- 大小: 1.6 KB
- 大小: 5.3 KB
- 大小: 17 KB
- 大小: 16.9 KB
分享到:
相关推荐
OpenTSDB 2.3 中文文档 OpenTSDB 2.3 中文文档 OpenTSDB 2.3 中文文档
openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB
基于postman的OpenTSDB HTTP 写入,自己编写,值得下载
本文介绍了一种OpenTSDB和OPC的能耗数据采集存储技术,并对时间序列数据库OpenTSDB进行了写入对比测试,展现了其存储优势。
OpenTSDB操作手册,调用方法等.
OpenTSDB是一个时列数据库。时间序列是一段特定metric随时间变化的一系列数字数据点。每个时间序列都包含一个metric加上与该metric相关的一个或多个tags(我们将覆盖一些标记)。metric是您希望随时间跟踪的任何特定...
opentsdb,用于测试hbase性能,官方地址下载不了。包1,需要同时下载另一个
opentsdb默认使用ISO8859-1编码格式,导致使用过程中无法使用汉字,本资源通过整理wordsplit.java类,修改编码格式及字串解析过程并重编译,完美支持汉字。
opentsdb踩坑记录: 1. Int 类型溢出问题 2. tagv超出了最大值 3.不要在compaction时重启OpenTSDB服务 4. 分配UID时行锁问题,导致分配性能很低
opentsdb,用于测试hbase性能,官方地址下载不了。包2,需要同时下载另一个
附件是Opentsdb docker-compose 部署脚本
OpenTSDB描述文档 open time serial database
您或许想直接进入openTSDB并开始将数据写入你的TSD,但要要真正使用OpenTSDB的强大功能优势和灵活性,您可能需要暂停(先停下来)并思考您的命名模式(方式)。完成下面的操作后,您就可以继续通过Telnet或HTTP API...
Opentsdb踩过的坑,亲自参与,并且修改过opentsdb的源码,希望对使用过的人有些帮助!
hbase的插件,大数据metrics监控的界面显示,与mysql类似
opentsdb的源码,可以直接导入到eclipse,在学习opentsdb的利器。 备注,源代码是不能直接导入到eclipse,代码路径是不对的。
CentOS安装基于 HBase 安装 OpenTSDB时序数据库安装文档
开源监控系统OpenTSDB,用hbase存储所有的时序(无须 采样)来构建一个分布式、可伸缩的时间序列数据库。它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划;Grafana是一个跨平台的开源的度量分析和可视...
此页面列出了一些常见的OpenTSDB问题以及提高性能的步骤。 高速缓存 此时,OpenTSDB没有内置缓存(除了内置GUI,将缓存PNG图像文件60秒)。因此,我们依赖于底层数据库的缓存。在HBase(最常见的OpenTSDB后端)中...
opentsdb 写入数据方法,由于不提供格式化或者存储错误导致的数据点无法写入,所以不建议使用Telnet,而是使用Http API