重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
OpenTSDB目前支持Apache HBase作為其主要的存儲后端。截止版本2.3,OpenTSDB也可以使用Google云上的Bigtable。選擇下面的HBase鏈接以存儲架構(gòu)或Bigtable以查找用于云中的配置和設(shè)置。
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,創(chuàng)新互聯(lián)建站面向各種領(lǐng)域:成都食品包裝袋等成都網(wǎng)站設(shè)計、全網(wǎng)營銷推廣解決方案、網(wǎng)站設(shè)計等建站排名服務(wù)。
??OpenTSDB的所有數(shù)據(jù)點都保存在一個獨立的,默認命名為tsdb的海量表中。它利用了HBase排序和region分布優(yōu)勢。所有的值都存儲在列族t中。
?Row Key– Row key是由一個可選的鹽值,metric UID,時間戳,以及tagk/v對的UID組成的字節(jié)數(shù)組:[salt]
?自O(shè)penTSDB 2.2版本啟用salting特性,第一個字節(jié)(或者多個字節(jié))是一個哈希鹽值ID以便在多個regions或region servers上更好地分布數(shù)據(jù)。
?時間戳部分是以4個字節(jié)編碼以秒為單位的Unix epoch值。每個小時一行,由每行中的時間戳反映。因此每個時間戳將會標準化(歸一化)到hour的值,例如:2013-01-01 08:00:00。這是為了避免在單行中填充太多的數(shù)據(jù)點,因為這會影響region的分布。另外,由于HBase 對Row Key進行排序,同一個指標和時間段的數(shù)據(jù),但具有不同標簽的數(shù)據(jù)也將會被組合在一起以便進行高效查詢。(不同標簽組合在一起,是指同一個Region?)
?沒有鹽值的示例row key,以16進制表示如下:
00000150E22700000001000001
00000150E22700000001000001000002000004
00000150E22700000001000002
00000150E22700000001000003
00000150E23510000001000001
00000150E23510000001000001000002000004
00000150E23510000001000002
00000150E23510000001000003
00000150E24320000001000001
00000150E24320000001000001000002000004
00000150E24320000001000002
00000150E24320000001000003
??where
00000150E22700000001000001
'---------''-----------''---------''--------'
metric time tagk tagv
??這代表了一個單一的指標,而是3個小時的4個時間序列。請注意一個時間序列由兩組標簽:
00000150E22700000001000001000002000004
'---------''-----------''---------''--------''---------''---------'
metric time tagk tagv tagk tagv
??標簽名稱(tagk)在存儲之前按照字幕順序排序,所以在rowkey/TSUID中host標簽將始終出現(xiàn)在owner之前。
數(shù)據(jù)點列
?到目前為止,最常見的列數(shù)據(jù)點。這些是數(shù)據(jù)發(fā)送到TSD進行存儲時記錄的實際值。
?Column Qualifier– qualifier有2個或4個字節(jié)組成,這些字節(jié)對行的基準時間的偏移以及確定此值是integer或者decimal(十進制)值的標識進行編碼。Qualifier對行基準時間的偏移量以及存儲的數(shù)據(jù)的格式和長度進行編碼。
?具有2個字節(jié)Qualifier的列是以秒為單位的偏移。Qualifier的前12位(bit)代表一個integer,它是row key中時間戳的增量。例如,如果row key歸一化為1292148000 ,在1292148123時刻來了一個數(shù)據(jù)點,則記錄的增加將為123。最后4位(bit)是格式標識。
?具有4個字節(jié)Qualifier的列是以毫秒為單位的偏移。Qualifier的前4位(bit)將會置為十六進制的1或F。接下來的22位(bit)編碼offset為一個unsigned integer。接下來的2位(bit)保留,最后4位(bit)是格式標識。
?任一列類型的最后4位(bit)描述存儲的數(shù)據(jù)。第一位是一個標識,指示該值是整數(shù)還是浮點數(shù)。值0標識一個整數(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 或十六進制07B4的Qualifier。
?Column Values– 由Qualifier標識指定的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(二進制)
前4bit:1111
22bit: 0110 1011 1001 0011 1010 11 = 1762539(十進制)
最后4bit:0000
因此: 時間戳 = 1525334400*1000 + 1762539 = 1525336162539