https://blog.csdn.net/bluishglc/article/details/31052749
OpenTSDB是基于HBase存储时间序列数据的一个开源数据库,它主要有两个表:tsdb-uid和tsdb。前者描述指标(metrics)相关的元数据,后者存储时间序列数据。我们还需要建立一些标签(Tag)来标识一条数据,对于一条数据来说,应该至少包含一个指标和一个标签。在OpenTSDB的表设计上,就把“指标”和“标签”统一放在tsdb-uid表中存储。格式为:Rowkey(自增ID,3字节数组):name:metrics,name:tagk,name:tagv,同时对它们之间的反向关联也作了展开存储。
再看一个纪录表的rowkey:
指标UID(指标+标签的某个组合)+数据生成时间(取整点时间)+标签1-key的UID+标签1-value的UID+...+标签N-Key的UID+标签N-value的UID
重点看一下时间的处理:
1297574486 = 2011-02-13 13:21:26
MWeP = 01001101 01010111 01100101 01010000 = 1297573200 = 2011-02-13 13:00:00 (截取整点小时位)
PK = 01010000 01101011 = 1286 (从整点小时到记录时间的秒偏差,1286秒正是21分钟26秒)
1297573200+1286=1297574486
PK,即小时内秒数被当作了Column