1,背景
時序數據庫在使用上(shang),隨著使用周(zhou)期的增(zeng)長(chang),時間線也會(hui)隨之增(zeng)加(jia),當達到閥(fa)值后,需要進行(xing)時間線的刪除。
2,時間線
時間(jian)線(TSUID),對每一(yi)個(ge)(ge)Data Point,metrics、timestamp、tagKey和tagValue都是必要的(de)(de)構成元素。除(chu)timestamp外,metrics、tagKey和tagValue的(de)(de)UID就可(ke)組成一(yi)個(ge)(ge)TSUID,每一(yi)個(ge)(ge)TSUID關聯一(yi)個(ge)(ge)時間(jian)序列,如(ru)下所示:
<metrics_UID><tagKey1_UID><tagValue1_UID>[…<tagKeyN_UID><tagValueN_UID>]
UID的(de)全稱為Unique Identifier,這(zhe)些UID被保存在OpenTSDB的(de)元數據表(biao)中,默認是(shi)“tsdb-uid”,可以配置。
UID在設計和分配上遵(zun)循部分規則(ze):Metric、TagKey、TagValue的UID都是(shi)獨(du)立分配,且(qie)唯(wei)一(yi);UID的范圍是(shi)0x000000到0xFFFFFF。
3,查詢時間線
列(lie)舉一(yi)種查(cha)詢時間線的方法,步驟如下(xia):
1),使用(yong)/api/suggest接口(kou),查詢(xun)所有Metric
/api/suggest?type=metrics
==>
[
"com.test.metric0","com.test.metric1","com.test.metric10","com.test.metric11",
"com.test.metric2","com.test.metric3","com.test.metric4","com.test.metric5",
"com.test.metric6","com.test.metric7","com.test.metric8","com.test.metric9"
]
2),使用/api/search/lookup接口,查詢Metric包含的(de)TagKey-TagValue對,以(yi)及TSUID
/api/search/lookup?m=com.test.metric8&limit=3
==>
{"type":"LOOKUP","metric":"com.test.metric8","tags":[],"limit":3,"time":30.0,
"results":[
{"tags":
{"tag4":"tag4_0","tag5":"tag5_1","tag2":"tag2_4","tag3":"tag3_1","tag1":"tag1_2"},
"metric":"com.test.metric8",
"tsuid":"00000F00000700002800000800002C00000900003000000A00003500000B00003A"
},
{"tags":
{"tag4":"tag4_0","tag5":"tag5_1","tag2":"tag2_4","tag3":"tag3_1","tag1":"tag1_4"},
"metric":"com.test.metric8",
"tsuid":"00000F00000700002800000800002C00000900003000000A00003500000B00003B"
},
{"tags":
{"tag4":"tag4_0","tag5":"tag5_1","tag2":"tag2_4","tag3":"tag3_1","tag1":"tag1_5"},
"metric":"com.test.metric8",
"tsuid":"00000F00000700002800000800002C00000900003000000A00003500000B00003C"
}
],
"startIndex":0,"totalResults":3
}
4,刪除時間線
使用/api/query接(jie)口,批(pi)量刪除時間線(xian)。其中tag支持正則,示例中部分參數省略。
/api/query -X POST
--header 'Content-Type: application/json'curl \
--data '{
"delete": true,
"start": 1645000000000,
"end": 1645000001000,
"queries": [
{
"aggregator": "none",
"explicitTags": false,
"filters": [
{
"filter": "0.01",
"groupBy": false,
"tagk": "tag",
"type": "lt"
}
],
"metric": "com.test.metric8"
}
]
}
'
5,總結
總體來說(shuo)比(bi)較簡單,沒什么難點(dian)。