日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

如何設計時間線結構提升查詢效率

更新時間:

本文介紹通過設計時間線結構提升查詢效率。

時間線概念

在TSDB里,我們將一個指標+一組標簽組合稱為一條時間線。在一條時間線下面,連續時間點的采樣數據則為時序數據。比如:{“metric”:“cpu”,“tags”:{“site”:“et2”,“ip”:“1.1.1.1”,“app”: “TSDB”} }這個metric+tags的組合為一條時間線,在同一條時間線下面產生連續的(timestamp,value)。例如,下圖有3條時間線:圖1

時間線倒排索引概念

為了加速查詢,TSDB會給每一條時間線都生成倒排索引。具體來說,TSDB會給時間線上的每個tag、metric生成索引,索引到該tag、metric對應到的時間線上。例如,在時間線概念里出現的3條時間線,會生成如下所示的倒排索引:

倒排索引

最佳實踐

  • 減少時間線數量

    在TSDB中,唯一決定時間線的有如下因素:

    • metric相同。

    • tags數量相同。

    • 每一個tag的TagKey和TagValue都相同。

      說明

      在設計時間線的tag的TagValue時,不建議將進程ID或時間戳設置為TagValue,需要讓同一tag的Value值變化盡可能少。TagValue如果設計得有誤,即便metric,TagKey都沒有顯著變化時,時間線數量也有可能飛速膨脹。

    • 字段名 (僅在使用多值模型時)。

線數量的上限等于metric和tag的集合的笛卡爾積(若是多值模型時,還需要加上field的集合)。因此,建議用戶在設計時間線時,盡量減少metric或者tag的變化,以免時間線不斷膨脹,超過規格限制。

  • 減少單個Tag 標簽索引時間線量

    避免在每一條時間線上都設置一個相同的標簽,以免該標簽索引的時間線數量過多,影響查詢時的性能。

  • 減少查詢時間線覆蓋

    如果標簽1索引的時間線的集合是標簽2的子集,那么查詢時可以只使用標簽1,以提升查詢性能。例如,在上面的例子中,若我們想查詢時間線1的數據,有如下兩種查詢方式:

    • 方式一:{“metric”:“cpu”,”tags”:{“site”:“et2”,“ip”:“1.1.1.1”,“app”:“TSDB”} }

    • 方式二:{“metric”:“cpu”,”tags”:{“ip”:“1.1.1.1”} }

      查詢方式二只使用了1個標簽,因為ip=1.1.1.1這個標簽只索引了1條時間線。因此,相比查詢方式一,查詢方式二的性能反而是更好的。