在 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相关推荐

  1. 转:openTSDB 2.0 安装

    OpenTSDB-2.0.0安装布署 2014-02-27 11:07:49|  分类: 大数据 |  标签:hadoop  |举报|字号 订阅 1.介绍 OpenTSDB是一个架构在Hbase系统之 ...

  2. All Things OpenTSDB

    1. OpenTSDB介绍 OpenTSDB用HBase存储所有的时序(无须采样)来构建一个分布式.可伸缩的时间序列数据库.它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易 ...

  3. OpenTSDB 开发指南之 查询数据

    前面博主写了一篇文章去介绍opentsdb的http接口的使用方法,但是某一些接口的使用还是比较复杂,这篇文章会通过example来详细讲述opentsdb的一些特性. 本文的举的例子有这些: 基本的 ...

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

    逝者如斯夫,不舍昼夜.                                                        -- 孔子 时间如流水,一去不复返.自古不乏对时间流逝的感慨,而现 ...

  5. 时序列数据库武斗大会之 OpenTSDB 篇

    在前面的<时序列数据库武斗大会之 TSDB 名录 Part 1>和<时序列数据库武斗大会之TSDB名录 Part 2>中,我们介绍了一些常见的TSDB,并在<时间序列数据 ...

  6. linux7简单应用,centos7下openTSDB简单应用

    一.说明: 常用网址: 官网地址:http://opentsdb.net/ 下载地址:https://github.com/OpenTSDB/opentsdb/releases 官方说明文档:http ...

  7. opentsdb+grafana监控系按使用总结

    一.OpenTSDB简介 开源监控系统OpenTSDB,用hbase存储所有的时序(无须 采样)来构建一个分布式.可伸缩的时间序列数据库.它支持秒级数据采集所有metrics,支持永久存储,可以做容量 ...

  8. opentsdb 简易生动讲解

    摘要  OpenTSDB是一个分布式的.可伸缩的时间序列数据库,在DB-engines的时间序列数据库排行榜上排名第五.它的特点是能够提供最高毫秒级精度的时间序列数据存储,能够长久保存原始数据并且不失 ...

  9. openTSDB详解之Writing Data

    [译]openTSDB详解之Writing Data[待完善] 本文译自:http://opentsdb.net/docs/build/html/user_guide/writing/index.ht ...

最新文章

  1. Android Studio: Debug Android SDK Source Code
  2. Python day 9(6) 调试
  3. 4.3.6无分类编址CIDR(构成超网)
  4. 抽象类可以生成自己的对象吗_大理石可以自己抛光吗?大理石自己抛光方法解答...
  5. Vue优化策略_项目上线_02
  6. 【原创】如何写一个框架:步骤(下)
  7. MVVM基本基础(2)
  8. pytorch经常使用的代码(持续更新)
  9. Python eval 函数
  10. Sql 行转换列(列转换行), JavaScript解决思路
  11. 【优化预测】基于matlab粒子群算法优化SVM预测【含Matlab源码 1424期】
  12. css中 background:0 0;
  13. java排查full gc_一次full gc的排查经历
  14. 清明上河图对计算机技术的启发,走进清明上河图沉浸式数字音画项目在京发布-微软亚洲研究院.PDF...
  15. 开发一个小程序商城需要多少钱?
  16. CCF A类会议或期刊----近两年对比学习相关论文
  17. Eclipse正版(官网下载)安装教程及如何在win7或者win10安装配置jdk1.8
  18. 清华大学百年校庆给清华大学的一封信
  19. 已解决Starting MySQL... ERROR The server quit without updating PID file
  20. 2DBox和3DBox和旋转Box的iou计算

热门文章

  1. vue谷歌地图聚合功能
  2. 单机游戏副业项目,赚钱的虚拟项目,适合新手
  3. 【转载】HTML语法介绍
  4. 使用 ss 代理增加 gradle 编译速度
  5. git配置取消代理_git 设置和取消代理
  6. FOFA Java程序集成fofa
  7. Macbook Pro 201 装Win10 声卡_飞利浦256P1FR显示器一线直连MacBook使用体验分享
  8. python dask_使用 Dask 在 Python 中进行并行计算
  9. 一键部署Kubernetes高可用集群
  10. PTA 7-1 一元多项式的乘法与加法运算 (20 分)