1. 程式人生 > >開源工具之Druid.io

開源工具之Druid.io

是什麼?

Druid.io是面向海量資料的、用於實時查詢與分析的OLAP儲存系統。

Druid的四大關鍵特性:

  • 亞秒級的OLAP查詢分析。Druid採用了列式儲存、倒排索引、點陣圖索引等關鍵技術,能夠在亞秒級別內完成海量資料的過濾、聚合以及多維分析等操作。
  • 實時流資料分析。區別於傳統分析型資料庫採用的批量匯入資料進行分析的方式,Druid提供了實時流資料分析,採用LSM(Long structure merge)-Tree結構使Druid擁有極高的實時寫入效能;同時實現了實時資料在亞秒級內的視覺化。
  • 豐富的資料分析功能。針對不同使用者群體,Druid提供了友好的視覺化介面、類SQL查詢語言以及REST 查詢介面。
  • 高可用性與高可拓展性。Druid採用分散式、SN(share-nothing)架構,管理類節點可配置HA,工作節點功能單一,不相互依賴,這些特性都使得Druid叢集在管理、容錯、災備、擴容等方面變得十分簡單。

大資料時代,如何從海量資料中提取有價值的資訊,是一個亟待解決的難題。針對這個問題,IT巨頭們已經開發了大量的資料儲存與分析類產品,比如IBM Netezza、HP Vertica、EMC GreenPlum等,但是他們大多是昂貴的商業付費類產品,業內使用者寥寥。而受益於近年來高漲的開源精神,業內出現了眾多優秀的開源專案,其中最有名的當屬Apache Hadoop生態圈。時至今日,Hadoop已經成為了大資料的“標準”解決方案,但是,人們在享受Hadoop便捷資料分析的同時,也必須要忍受Hadoop在設計上的許多“痛點”,下面就羅列三方面的問題:

  • 何時能進行資料查詢?對於Hadoop使用的Map/Reduce批處理框架,資料何時能夠查詢沒有效能保證。
  • 隨機IO問題。MapReduce批處理框架所處理的資料需要儲存在HDFS上,而HDFS是一個以叢集硬碟作為儲存資源池的分散式檔案系統,那麼在海量資料的處理過程中,必然會引起大量的讀寫操作,此時隨機IO就成為了高併發場景下的效能瓶頸。
  • 資料視覺化問題。HDFS是一個優秀的分散式檔案系統,但是對於資料分析以及資料的j及時查詢,HDFS並不是最優的選擇。

傳統的大資料處理架構Hadoop更傾向於一種“後臺批處理的資料倉庫系統”,其作為海量歷史資料儲存、冷資料分析,確實是一個優秀的通用解決方案,但是 如何保證高併發環境下海量資料的查詢分析效能,以及如何實現海量實時資料的查詢分析與視覺化,

Hadoop確實顯得有些無能為力。 Druid的母公司MetaMarket在2011年以前也是Hadoop的擁躉者,但是在高併發環境下,Hadoop並不能對資料可用性以及查詢效能給出產品級別的保證,使得MetaMarket必須去尋找新的解決方案,當嘗試使用了各種關係型資料庫以及NoSQL產品後,他們覺得這些已有的工具都不能解決他們的“痛點”,所以決定在2011年開始研發自己的“輪子”Druid,他們將Druid定義為“開源、分散式、面向列式儲存的實時分析資料儲存系統”,所要解決的“痛點”也是上文中反覆提及的“在高併發環境下,保證海量資料查詢分析效能,同時又提供海量實時資料的查詢、分析與視覺化功能”。