opentsdb

简介

opentsdb是基于Hbase的时序数据库[时间序列数据库]。不具备通用性,主要针对具有时间特性和需求的数据,如监控数据、温度变化数据等。opentsdb说是数据库,但并不能称作为数据库,他是在Hbase(HBase才是具有存储功能的)的基础上,进行数据结构的优化和处理,从而适合存储具有时间特性的数据,同时提供特定的工具进行查询等操作。

基础概念
  1. 时间戳(时间序列),指明时间点
  2. 指标名称 :数据的作用,是这个数据的抽象概括,指明监控内容,如温度,湿气,大小
  3. 标签 : 对象,指明监控对象 ,如某个城市,某个CPU,某块区域
  4. 值 : 存储值

以上组合表明 : 某个对象在某时间点对xxx监控的数据。如 : 福州在2018年11月29日12点30分00秒的温度是21摄氏度。

这些也都是 opentsdb 中存储的基础数据类型,opentsdb使用tsdb表及tsdb-uid表存储这些数据,在Hase中会具体讲解opentsdb如何进行存储优化这些数据。

总体架构

  1. servers : 不知道干嘛的。好像跟http api 没关系
  2. TSD : 还是不知道干嘛的 。应该是处理程序
  3. HBase : 存储数据库
HBase

Hbase 是Hadoop 的子项目,负责数据存储。是一种基于列的NoSQL数据库,在opentsdb中HBase 为其提供了高效的数据存储。

  1. tsdb-uid表 : opentsdb 将指标、时间戳、标签名及标签值使用 3个字节的uid 进行存储,而tsdb-uid表就是存储的就是做uid 和 真实值之间的映射关系,使用uid是为了优化HBase 中的Rowkey (行键)
  2. tsdb 表 : 用来保存数据,这图其实是看不懂的。只是知道 Row Key 是用来时存储指标、时间戳、标签的uid映射的,Column Family 存储了是1个小时内的数据(一小时 = 60秒 * 60分钟 = 3600 秒 )
    image-20181130172939991.png

注: 存储时间戳的方式有点特别。opentsdb将获取存储时间戳的所在小时时间戳进行存储到RowKey ,小时时间戳与存储时间戳的差值映射到Column Family 的时间值,表示是在这个小时中的第几秒,这种方式可以开始查找到数据库

HTTP API 使用

Opentsdb 的http aip 接口使用的是非规范的RESTful,不同的请求方法有不同的作用

(关于 RESTful规范可查阅 : http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html

API 描述
/api/put 写入数据
/api/query 查询数据
/api/suggest 查询Metric.Tagk,TagV
/api/dump_meta 查询Tagk下的TagV
/api/query/last 查询最近一个数据(查不出来)

写入数据

api 请求方法 描述
/api/put POST 新增数据

支持多条数据或单条数据插入,注多条数据是需要使用[] 表示数组的。

每个参数都是必传的,因为只有所有参数都具备才能说明该数据的精确信息

注 : 值value 从小位数 换成大位数 ,查询是会发生错误,暂无研究其中规律,猜测跟存储的基础类型有关

如 : 12 转 25595461081

删除数据

api 请求方法 描述
/api/query DELETE 删除数据

删除数据的方法也是使用 /api/query但请求方法是DELETE,也就是说使用 POST 查询出来的数据,换成 DELETE ,就会被删除。好奇葩,要想符合RESTful ,接口取 /api/data ,用/api/query。

而且DELETE 是需要开启配置才能使用,默认下是关的,也就是说你一般你是无法删除数据的

修改数据

api 请求方法 描述
/api/put POST 修改数据

当时间戳 指标 标签 都相同时,就会从新增变成修改,注意标签内的数据要完全相同

查询数据

api 请求方法 描述
/api/query POST|GET 查询数据

必传参数 start 开始时间戳 和 queries 子查询 , 子查询应该理解为条件查询,说明了查询要求,

使用开始时间参数和子查询中的指标参数、聚合参数,可说明最基础的查询要求

如 :

{"start" : 1346846400,"queries" : [ { "aggregator" : "none", "metric" : "sys.area.temperature4" } ] }

说明 区域温度在 2012/9/5 20:0:0后的所有数据

子查询参数解析 (查询名词概念解析)

downsample 降采样 :

dpValue 值过滤 : 就是将值进行比较输出符合 depValue 表达式的值(就是查询条件)

Aggregate 聚合

具有一定体系的api

树 /api/tree

不知道这个树到底是干嘛用的

api 描述
/api/tree/branch
/api/tree/collisions
/api/tree/notmatched
/api/tree/rule
/api/tree/rules
/api/tree/test
uid /api/uid

Uid 是指标、标签名、标签值及时间戳对应的uid,在opentsdb中起到很好的优化作用,但对于其api还不知道其具体使用方法

api 描述
/api/uid/assign
/api/uid/tsmeta
/api/uid/uidmeta
状态 /api/stats

状态相关接口,如jvm,线程等

api 描述
/api/stats/jvm jvm 信息
/api/stats/query 不知道是什么
/api/stats/region_clients HBase各个端的信息
/api/stats/threads 线程信息

非常用api

api 描述
/api/dropcaches 清空数据缓存(暂不清楚当中处理方式,不推进使用)
/api/aggregators 查询聚合函数
/api/config 查询配置信息
/api/serializers 不知道干啥的
/api/suggest 不知道干啥的
/api/version 当前opentsdb 版本信息
/api/histogram

问题

  1. 值value 从小位数 换成大位数 ,查询是会发生错误,暂无研究其中规律,猜测跟存储的基础类型有关
  2. 时间区间的头尾时间节点数据会被忽略
  3. 使用降采样时,使用时间间隔会发生数据丢失情况。如时间间隔为一天(1d-avg)。会发生凌晨0到凌晨8点会数据丢失,不记录到统计中。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容