OpenTSDB 存储容量估算 以及 建表方式

容量估算

根据 Rowkey以及表设计,进行存储容量估算的方式,大致如下:
rowkey: metric_name + ts + tag_name + tag_value …..

确定metric_name的个数: m
确定tag_name: tag1 tag2 tag3 tag4….tagN
确定tag_value的个数: t1 t2 t3 t4 ….tn
(假设每个metric的tag数量和类型一样,实际也应该保证)

在一个小时内rowkey的个数计算公式: m * t1 * t2 * t3 ..... * tn = num

假设一个小时内,每秒都在写数据,则在一个小时内存储占用空间为:

num * ( ( 3+4+6*n + (1+2+8) ) * 3600)    // 最终单位 byte

从前到后的含义是:
num: rowkey的个数,也是行数
3:  metric_name编码长度
4:  timestamp 编码长度
6:  tagK, tagV加起来编码长度
n:  tagK,tagV KV对的个数
1:  hbase family name 默认 "t", 认为一个byte存储
2:  列名的 编码长度
8:  metric的value值编码长度(1,2,4,8),取最大的估算
3600: 在精度为秒的假设下,有3600

假设:
200 个metric
3 个tagKV对, 每个tagV的取值个数分别为: 1000 20 5
每10秒采集一次数据
则一个小时内占用的最大存储空间为:
200 * 1000 * 20 * 5 * ((3+4+6*5+1+2+8) * 360) = 321 GB

这个是假设每个机器都是全量采集的估值,实际中可能没这么大。
PS:以上是我根据对OpenTSDB的了解做出的一个大概的估算方式,可能有不对的地方,如果发现有错误的地方,后续会进行纠正。

建表方式

需要根据实际的metric等信息确定,后续补上(主要是hbase Region预分区和是否在rowkey上加salt)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值