OpenTSDB 的UID
在 OpenTSDB 中,一条数据包括 Metric(指标) A UNIX timestamp(时间戳) Value(值) Tags (标签键值对形式 k=v 这种)。
OpenTSDB 在插入数据的时候,会为每个 Metrics,标签名称(k)和(v)分配唯一标识符,这个唯一标识符就是OpenTSDB的UID,UID 是一个正整数,对于 UID 对象的名称及其类型是唯一的。
为了方便大家理解,会对应OpenTSDB存储数据的Hbase数据进行讲解,在我们部署OpenTSDB的时候创建Hbase表的脚本中会创建一个名为 tsdb-uid 的表
创建表的语句为(可以看到有2个Hbase列族id和name)
UID_TABLE=${UID_TABLE-'tsdb-uid'}
create '$UID_TABLE',
{NAME => 'id', COMPRESSION => '$COMPRESSION', BLOOMFILTER => '$BLOOMFILTER', DATA_BLOCK_ENCODING => '$DATA_BLOCK_ENCODING'},
{NAME => 'name', COMPRESSION => '$COMPRESSION', BLOOMFILTER => '$BLOOMFILTER', DATA_BLOCK_ENCODING => '$DATA_BLOCK_ENCODING'}
以RestApi的方式插入数据,对应上面的数据我们可以看到标红的部分,插入一条共插入了6条红色的数据
{"metric": "me1","timestamp": 1654567205,"value": 1.3, "tags": { "tag1": "tag1value" }}
metric为me1 标签key为tag1 标签值为tag1value
Hbase表tsdb-uid的数据
hbase(main):003:0> scan 'tsdb-uid'
ROW COLUMN+CELL
\x00 column=id:metrics, timestamp=1654679536773, value=\x00\x00\x00\x00\x00\x00\x
\x00 column=id:tagk, timestamp=1654679537275, value=\x00\x00\x00\x00\x00\x00\x00\
\x00 column=id:tagv, timestamp=1654679537284, value=\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x01 column=name:metrics, timestamp=1654668335590, value=sys.cpu.nice
\x00\x00\x01 column=name:tagk, timestamp=1654668335604, value=host
\x00\x00\x02 column=name:tagk, timestamp=1654668335619, value=dc
\x00\x00\x02 column=name:tagv, timestamp=1654668335628, value=lga
\x00\x00\x03 column=name:metrics, timestamp=1654679536876, value=me1
\x00\x00\x04 column=name:tagv, timestamp=1654671073001, value=name1
\x00\x00\x05 column=name:tagk, timestamp=1654679537279, value=tag1
\x00\x00\x05 column=name:tagv, timestamp=1654671544526, value=name2
\x00\x00\x09 column=name:tagv, timestamp=1654679537291, value=tag1value
dc column=id:tagk, timestamp=1654668335622, value=\x00\x00\x02
host column=id:tagk, timestamp=1654668335606, value=\x00\x00\x01
lga column=id:tagv, timestamp=1654668335629, value=\x00\x00\x02
me1 column=id:metrics, timestamp=1654679536880, value=\x00\x00\x03
name1 column=id:tagv, timestamp=1654671073003, value=\x00\x00\x04
name2 column=id:tagv, timestamp=1654671544528, value=\x00\x00\x05
sys.cpu.nice column=id:metrics, timestamp=1654668335595, value=\x00\x00\x01
tag1 column=id:tagk, timestamp=1654679537281, value=\x00\x00\x05
tag1value column=id:tagv, timestamp=1654679537293, value=\x00\x00\x09
UID是OpenTSDB 分配的,Hbase表 tsdb-uid 存储了正向和反向 UID映射,列族id 存储 字符串到UID的映射,列族name存储UID到字符串的映射。由上图可知,metric(值为me1)分配的UID为\x00\x00\x03,列名为metrics,标签的key(值为tag1)分配的UID为\x00\x00\x05, 列名为tagk,标签的value(值为tag1value)分配的UID为\x00\x00\x09,列名为tagv,正向反向数据各一份。
由于Hbase通过rowkey进行匹配,用这种方式可以快速双向查询到UID和数据的映射关系。
上图紫色的部分rowkey是单字节键\x00,
这是针对正确的列类型(Metrics,tagk 或 tagv)递增的 UID 行。列值是 8 个字节的带符号整数,反映了为每种类型分配的最大 UID,这样才可以保证UID递增。
OpenTSDB 的UID相关推荐
- 转:openTSDB 2.0 安装
OpenTSDB-2.0.0安装布署 2014-02-27 11:07:49| 分类: 大数据 | 标签:hadoop |举报|字号 订阅 1.介绍 OpenTSDB是一个架构在Hbase系统之 ...
- All Things OpenTSDB
1. OpenTSDB介绍 OpenTSDB用HBase存储所有的时序(无须采样)来构建一个分布式.可伸缩的时间序列数据库.它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易 ...
- OpenTSDB 开发指南之 查询数据
前面博主写了一篇文章去介绍opentsdb的http接口的使用方法,但是某一些接口的使用还是比较复杂,这篇文章会通过example来详细讲述opentsdb的一些特性. 本文的举的例子有这些: 基本的 ...
- 解密 云HBase时序引擎OpenTSDB 优化技术
逝者如斯夫,不舍昼夜. -- 孔子 时间如流水,一去不复返.自古不乏对时间流逝的感慨,而现 ...
- 时序列数据库武斗大会之 OpenTSDB 篇
在前面的<时序列数据库武斗大会之 TSDB 名录 Part 1>和<时序列数据库武斗大会之TSDB名录 Part 2>中,我们介绍了一些常见的TSDB,并在<时间序列数据 ...
- linux7简单应用,centos7下openTSDB简单应用
一.说明: 常用网址: 官网地址:http://opentsdb.net/ 下载地址:https://github.com/OpenTSDB/opentsdb/releases 官方说明文档:http ...
- opentsdb+grafana监控系按使用总结
一.OpenTSDB简介 开源监控系统OpenTSDB,用hbase存储所有的时序(无须 采样)来构建一个分布式.可伸缩的时间序列数据库.它支持秒级数据采集所有metrics,支持永久存储,可以做容量 ...
- opentsdb 简易生动讲解
摘要 OpenTSDB是一个分布式的.可伸缩的时间序列数据库,在DB-engines的时间序列数据库排行榜上排名第五.它的特点是能够提供最高毫秒级精度的时间序列数据存储,能够长久保存原始数据并且不失 ...
- openTSDB详解之Writing Data
[译]openTSDB详解之Writing Data[待完善] 本文译自:http://opentsdb.net/docs/build/html/user_guide/writing/index.ht ...
最新文章
- Android Studio: Debug Android SDK Source Code
- Python day 9(6) 调试
- 4.3.6无分类编址CIDR(构成超网)
- 抽象类可以生成自己的对象吗_大理石可以自己抛光吗?大理石自己抛光方法解答...
- Vue优化策略_项目上线_02
- 【原创】如何写一个框架:步骤(下)
- MVVM基本基础(2)
- pytorch经常使用的代码(持续更新)
- Python eval 函数
- Sql 行转换列(列转换行), JavaScript解决思路
- 【优化预测】基于matlab粒子群算法优化SVM预测【含Matlab源码 1424期】
- css中 background:0 0;
- java排查full gc_一次full gc的排查经历
- 清明上河图对计算机技术的启发,走进清明上河图沉浸式数字音画项目在京发布-微软亚洲研究院.PDF...
- 开发一个小程序商城需要多少钱?
- CCF A类会议或期刊----近两年对比学习相关论文
- Eclipse正版(官网下载)安装教程及如何在win7或者win10安装配置jdk1.8
- 清华大学百年校庆给清华大学的一封信
- 已解决Starting MySQL... ERROR The server quit without updating PID file
- 2DBox和3DBox和旋转Box的iou计算