`

OpenTSDB设计解读

阅读更多
关于OpenTSDB的表设计,这两篇文章已经写得很好了:

http://blog.csdn.net/bluishglc/article/details/31052749
http://www.jianshu.com/p/0bafd0168647

但对于tsdb-uid这个表,我觉得还是可以说得更详细一点的。以第一个链接提到的例子为例:
我们插入2个metrics:

proc.stat.cpu
proc.stat.mem

以及一条记录:

proc.stat.cpu 1297574486 54.2 host=foo type=user

来观察一下结构

hbase scan:





画个图更形象一点:



看到这个图,其实已经很清晰了:

1.rowKey=0的那一行,只有右边的columnFamily:id才会有值,它记录了metrics/tagk/tagv的个数。可以看到,现在metrics是两个(proc.stat.cpu和proc.stat.mem),tagk也是两个(host和type),tagv也是两个(foo和user)

2.rowKey=1和rowKey=2的这两行,只有左边的columnFamily:name才会有值,提供了根据ID找到名字的功能:
rowKey=1,它记录了id=1的metric/tagk/tagv的名字。也就是,它代表的含义是:proc.stat.cpu是第1个metric,host是第1个tagk,foo是第1个tagv。
rowKey=2跟rowKey=1是类似的含义,它记录了id=2的metric/tagk/tagv的名字。

3.剩余的几行,相当于是rowKey=1和rowKey=2这两行的一个反向关系的存储,提供的功能是根据名字找到ID:
例如rowKey=proc.stat.cpu这一行,它代表proc.stat.cpu是一个metric,且它的id是1(id:metrics=1,表明了类型和ID)


最后,很容易看到,tsdb-uid这个表是很稀疏的,表中空白的地方,永远都不会有值写进去的。但好在hbase是列存储,并不会像关系型数据库那样造成空间的浪费。

从表中也可以看到,即使是不同的metric,只要你的tagk(或者tagv)的名字相同,那这个tagk的ID就相同。例如你新创建一个名为proc.stat.wtf的metric,它也有一个tagk=host,那“host”的ID还是1,不会增加:
proc.stat.wtf 1297574486 54.2 host=bar






  • 大小: 231 KB
  • 大小: 4.7 KB
分享到:
评论

相关推荐

    OpenTSDB 2.3 中文文档

    OpenTSDB 2.3 中文文档 OpenTSDB 2.3 中文文档 OpenTSDB 2.3 中文文档

    openTSDB

    **OpenTSDB** 是一个基于 HBase 的分布式、可扩展的时间序列数据库(Time Series Database,简称 TSDB),专为大规模监控系统设计。它能够高效存储和检索大量的时间序列数据,并提供高并发的写入和查询能力。...

    基于postman的OpenTSDB HTTP 写入

    OpenTSDB是一个分布式时序数据库,它被设计用于高效存储和检索时间序列数据,如系统指标、应用性能监控数据等。OpenTSDB支持多种写入数据的方式,包括TelnetPut、CLI Import、TCollector以及本文重点介绍的HTTP API...

    OpenTSDB相关

    OpenTSDB是一个开源的时间序列数据库(Time Series Database,TSDB),专为大规模监控系统设计,具有高度可扩展性和高性能。这个系统最初由雅虎开发,并在2012年开源,现在是Hadoop生态系统的一部分。OpenTSDB的核心...

    opentsdb.net-gh-pages.zip

    openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB openTSDB

    opentsdb支持汉字版本

    OpenTSDB(全称为Open Time Series Database)是一个开源、分布式的时序数据库,设计用于大规模监控系统中存储和检索时间序列数据。它基于HBase构建,具有高度可扩展性和高吞吐量,能够处理大量的实时指标数据。在...

    flink-kafka-opentsdb风电实时采集项目安装部署+代码.docx

    #### 架构设计 - **Flume**与**Kafka**连接:Flume负责收集风电设备产生的原始数据,并将其发送到Kafka中。 - **Kafka**与**Flink**连接:Kafka作为中间数据存储层,Flink订阅Kafka中的数据流进行实时处理。 - **...

    OpenTsdb+Grafana安装文档

    OpenTSDB(Time Series Database)是一种高性能的时间序列数据库,专门设计用于处理大量的时间戳数据。它可以利用HBase作为后端存储层,为用户提供秒级的数据收集能力,支持永久存储数据,便于进行容量规划。 **1.2...

    OpenTSDB 文档

    OpenTSDB是一种分布式、可扩展的时间序列数据库,其设计目的是为了处理大量来自各种监控系统的数据,例如网络设备、操作系统或应用程序的监控数据。它基于HBase构建,能够高效地存储和检索大量时间序列数据,并且...

    基于opentsdb的分布式实时监控方案.pdf

    OpenTSDB是一个专为处理大量时间序列数据而设计的开源数据库软件,尤其适合分布式系统的实时监控。它构建于Hadoop和HBase之上,具备分布式、可伸缩的特性,能实现毫秒级的时间精度数据存储,并支持高并发的读写操作...

    opentsdb-2.4.0.tar.gz

    OpenTSDB是一个开源的时间序列数据库(Time Series Database,TSDB),它构建在HBase之上,专为大规模收集、存储、查询和分析时间序列数据而设计。这个“opentsdb-2.4.0.tar.gz”文件是Linux版本的OpenTSDB安装包,...

    opentsdb-java-client-master.zip

    OpenTSDB(Open Time Series Database)是一个分布式的、可扩展的时序数据库,专为收集、存储、查询和展示大量时间序列数据而设计。它最初由StumbleUpon开发,现在是开源社区的一个活跃项目。OpenTSDB基于HBase构建...

    基于 HBase 安装 OpenTSDB 单机环境

    基于HBase安装OpenTSDB单机环境的知识点涵盖了从操作系统环境准备到各个组件安装配置的详细步骤,下面是根据提供的内容整理出的知识点。 1. 环境说明 环境说明部分通常会介绍部署OpenTSDB所需的软硬件环境要求。...

    OpenTSDB 2.3文档 »用户指南 -查询或读取数据之了解指标和时间序列.pdf

    OpenTSDB是一个时列数据库。时间序列是一段特定metric随时间变化的一系列数字数据点。每个时间序列都包含一个metric加上与该metric相关的一个或多个tags(我们将覆盖一些标记)。metric是您希望随时间跟踪的任何特定...

    Opentsdb docker-compose 部署脚本

    附件是Opentsdb docker-compose 部署脚本

    opentsdb-2.0.1.part1.rar

    opentsdb,用于测试hbase性能,官方地址下载不了。包1,需要同时下载另一个

    opentsdb踩过的坑.txt

    opentsdb踩坑记录: 1. Int 类型溢出问题 2. tagv超出了最大值 3.不要在compaction时重启OpenTSDB服务 4. 分配UID时行锁问题,导致分配性能很低

    opentsdb-2.0.1.part2

    opentsdb,用于测试hbase性能,官方地址下载不了。包2,需要同时下载另一个

    OpenTSDB描述

    OpenTSDB描述文档 open time serial database

    OpenTSDB 2.3文档 »用户指南-写数据.pdf

    您或许想直接进入openTSDB并开始将数据写入你的TSD,但要要真正使用OpenTSDB的强大功能优势和灵活性,您可能需要暂停(先停下来)并思考您的命名模式(方式)。完成下面的操作后,您就可以继续通过Telnet或HTTP API...

Global site tag (gtag.js) - Google Analytics