2012-08-31 30 views

回答

52

我選擇了HBase,因爲它的尺寸爲。 Whisper非常像RRD,它是一個固定大小的數據庫,它必須銷燬數據才能在其空間限制內工作。 HBase的提供以下特性使其非常適合大規模時間序列數據庫:

  1. 線性縮放。想要存儲數據嗎?添加更多節點。在我編寫OpenTSDB的StumbleUpon平臺上,我們的時間序列數據共同位於一個主要用於分析和批處理的20節點羣集上。集羣迅速增長到120個節點,同時OpenTSDB僅佔集羣工作負載的一小部分,增長到一半的數據點的一半個數據點。
  2. 自動複製。您的數據存儲在HDFS中,默認情況下表示3個不同機器上的3個副本。如果一臺機器或一個驅動器死亡,沒有什麼大不了的。當您構建商品服務器時,驅動器和機器會一直死機。但事情是:你並不在乎。
  3. 高效掃描。大多數時間序列數據用於回答類似於「時間X和Y之間的數據點是什麼」的問題。如果你正確地構造你的密鑰,你可以通過簡單的掃描操作非常高效地使用HBase。
  4. 高寫吞吐量。 HBase遵循的Bigtable design使用LSM trees代替B樹,使寫入更便宜(以犧牲潛在更昂貴的讀取爲代價)。

是HBase的是面向列的事實並不那麼重要考慮的事實,這是一個很大的排序鍵值系統,真正尺度。

所有基於RRD RRD和衍生工具不能滿足和規模要求的數據點的能夠準確店數十億永遠非常便宜(只是按實際磁盤空間的幾個字節數據點)。

+1

OpenTSDB的設計者給出了很好的答案。謝謝,庫納! – David

+1

只是擴展了這個問題,當我們已經擁有如石墨那樣強大的東西時,爲什麼你會選擇寫一個新的前端?爲什麼不擴展石墨的後端,以便將TimeSeries數據存儲到HBase而不是竊竊私語? –

+2

前端並不重要。我希望有一個內置的前端來最小化依賴關係,並使項目自成一體,但最終我們不希望強制每個人都使用該前端,而我知道這並不是特別好。下一個功能發佈的重大推動是提供更好的API以允許與第三方前端(包括Graphite)集成。 – tsuna

相關問題