溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

OpentTsdb官方文檔中文版----存儲

發(fā)布時間:2020-07-09 04:26:29 來源:網(wǎng)絡(luò) 閱讀:588 作者:Lynn_Yuan 欄目:大數(shù)據(jù)

  OpenTSDB目前支持Apache HBase作為其主要的存儲后端。截止版本2.3,OpenTSDB也可以使用Google云上的Bigtable。選擇下面的HBase鏈接以存儲架構(gòu)或Bigtable以查找用于云中的配置和設(shè)置。

HBase Schema

Data Table Schema

??OpenTSDB的所有數(shù)據(jù)點都保存在一個獨立的,默認(rèn)命名為tsdb的海量表中。它利用了HBase排序和region分布優(yōu)勢。所有的值都存儲在列族t中。
??Row Key – Row key是由一個可選的鹽值,metric UID,時間戳,以及tagk/v對的UID組成的字節(jié)數(shù)組:[salt]<metric_uid><timestamp><tagk1><tagv1>[…<tagkN><tagvN>]。默認(rèn)情況下,UID是3個字節(jié)編碼。
??自O(shè)penTSDB 2.2版本啟用salting特性,第一個字節(jié)(或者多個字節(jié))是一個哈希鹽值ID以便在多個regions或region servers上更好地分布數(shù)據(jù)。
??時間戳部分是以4個字節(jié)編碼以秒為單位的Unix epoch值。每個小時一行,由每行中的時間戳反映。因此每個時間戳將會標(biāo)準(zhǔn)化(歸一化)到hour的值,例如:2013-01-01 08:00:00。這是為了避免在單行中填充太多的數(shù)據(jù)點,因為這會影響region的分布。另外,由于HBase 對Row Key進(jìn)行排序,同一個指標(biāo)和時間段的數(shù)據(jù),但具有不同標(biāo)簽的數(shù)據(jù)也將會被組合在一起以便進(jìn)行高效查詢。(不同標(biāo)簽組合在一起,是指同一個Region?)
??沒有鹽值的示例row key,以16進(jìn)制表示如下:

00000150E22700000001000001
00000150E22700000001000001000002000004
00000150E22700000001000002
00000150E22700000001000003
00000150E23510000001000001
00000150E23510000001000001000002000004
00000150E23510000001000002
00000150E23510000001000003
00000150E24320000001000001
00000150E24320000001000001000002000004
00000150E24320000001000002
00000150E24320000001000003

??where

00000150E22700000001000001
'---------''-----------''---------''--------'
metric    time    tagk  tagv

??這代表了一個單一的指標(biāo),而是3個小時的4個時間序列。請注意一個時間序列由兩組標(biāo)簽:

00000150E22700000001000001000002000004
'---------''-----------''---------''--------''---------''---------'
metric    time    tagk  tagv   tagk  tagv

??標(biāo)簽名稱(tagk)在存儲之前按照字幕順序排序,所以在rowkey/TSUID中host標(biāo)簽將始終出現(xiàn)在owner之前。
數(shù)據(jù)點列
??到目前為止,最常見的列數(shù)據(jù)點。這些是數(shù)據(jù)發(fā)送到TSD進(jìn)行存儲時記錄的實際值。
??Column Qualifier – qualifier有2個或4個字節(jié)組成,這些字節(jié)對行的基準(zhǔn)時間的偏移以及確定此值是integer或者decimal(十進(jìn)制)值的標(biāo)識進(jìn)行編碼。Qualifier對行基準(zhǔn)時間的偏移量以及存儲的數(shù)據(jù)的格式和長度進(jìn)行編碼。
??具有2個字節(jié)Qualifier的列是以秒為單位的偏移。Qualifier的前12位(bit)代表一個integer,它是row key中時間戳的增量。例如,如果row key歸一化為1292148000 ,在1292148123時刻來了一個數(shù)據(jù)點,則記錄的增加將為123。最后4位(bit)是格式標(biāo)識。
??具有4個字節(jié)Qualifier的列是以毫秒為單位的偏移。Qualifier的前4位(bit)將會置為十六進(jìn)制的1或F。接下來的22位(bit)編碼offset為一個unsigned integer。接下來的2位(bit)保留,最后4位(bit)是格式標(biāo)識。
??任一列類型的最后4位(bit)描述存儲的數(shù)據(jù)。第一位是一個標(biāo)識,指示該值是整數(shù)還是浮點數(shù)。值0標(biāo)識一個整數(shù),1表示一個浮點數(shù)。最后3位(bit)表示數(shù)據(jù)的長度,偏移量1。值000表示1字節(jié)值,而010表示2字節(jié)值。長度必須反映1,2,4或8中的值。其他任何內(nèi)容都表示出現(xiàn)錯誤。
??例如:0100表示列值是一個8字節(jié)的有符號整數(shù)。1011表示列值是一個4字節(jié)浮點值。因此在1292148123 時刻的Qualifier的數(shù)據(jù)點將具有整數(shù)值4294967296 ,將會有0000011110110100 或十六進(jìn)制07B4的Qualifier。
??Column Values – 由Qualifier標(biāo)識指定的1到8個字節(jié)編碼。
測試示例:

{"metric":"sys.cpu.system","tags":{"host":"web02","dc":"lax"},"timestamp":1525336162539,"value":4}
查詢結(jié)果:
RowKey{metricUid='1', metricName='sys.cpu.system', ts=1525334400, datetime='2018-05-03 16:00:00', tags=[TagPair{tagKUid='1', tagK='host', tagVUid='3', tagV='web02'}, TagPair{tagKUid='2', tagK='dc', tagVUid='6', tagV='lax'}]}
family: t   qualifier: f6b93ac0  value: 4
計算:
0xf6b93ac0 = 1111 0110 1011 1001 0011 1010 1100 0000(二進(jìn)制)
前4bit:1111
22bit: 0110 1011 1001 0011 1010 11 = 1762539(十進(jìn)制)
最后4bit:0000
因此: 時間戳 = 1525334400*1000 + 1762539 = 1525336162539
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI