2015-12-15 49 views
2

OpenTSDB行鍵被設計爲。我可以理解,密鑰的設計導致在寫入數據時避免熱點。但在閱讀時,如果我看到與特定主機相對應的所有度量標準,則會導致從隨機區域服務器讀取數據。那麼它如何導致優化讀取性能。是否有關於關鍵設計的讀取模式的假設。OpenTSDB Hbase RowKey設計

回答

4

據克里斯·拉森

爲OpenTSDB的假設是,大多數的儀表板和用戶將集中在一個特定指標或小集合在給定時間指標,其中指標在各主機或各種標籤聚集。例如,我的平均或最大CPU使用率是多少?

跨多個區域服務器查詢實際上是一個巨大的好處,因爲您可以並行觸發查詢,例如,如果您要求「sys.cpu.busy host = web01」和「sys.if.bytes_out host = web01」...並且您有多個區域服務器,則TSD將發送這兩個指標,可能是兩個服務器,並且它們可以並行處理,而不是同時在同一臺服務器上的HBase隊列中處理,並在線程可用時處理它們。

此外,使用2.2,您可以爲行鍵啓用salting,現在就可以了。通過並行地跨區域服務器分割每個度量查詢,這有助於查詢高基數度量標準(例如大量主機)。

+0

是否可以對上述2個指標進行預分析?你能否說明如何進行預分割? – karthik

+0

通過prespliting我假設你的意思是兩個度量數據位於不同的地區。通常,度量的區域由Hbase基於其行鍵分配(opentsdb行鍵是度量,時間戳,標籤鍵和標記值的組合)。儘管您可以使用hbase shell手動分割區域https://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/ – shubham003

1

該模式對於給定的一系列(度量標籤+標籤)的時間範圍查詢是有效的。任何其他查詢(如獲取給定服務器收集的所有指標的最後值)都需​​要完整掃描。