Druid簡單介紹和優缺點
一、什麼是Apache Druid
Druid(德魯伊)是一個
分散式
的、支援
實時多維 OLAP 分析
、
列式儲存
的資料處理系統,支援高速的實時資料讀取處理、支援實時靈活的多維資料分析查詢。在Druid數十臺分散式叢集中支援每秒百萬條資料寫入,對億萬條資料讀取做到亞秒到秒級響應。此外,Druid支援根據時間戳對資料進行預聚合攝入和聚合分析,在時序資料處理分析場景中也可以使用Druid。
Druid有對應的GUI頁面,適用於實時資料提取、高效能查詢場景,例如:點選流分析、網路效能監控分析、實時線上OLAP分析等。Druid官網地址:http://druid。apache。org/
注意:
阿里巴巴有個開源專案也叫Druid,是一個數據庫連線池專案。這裡說的Apache Druid與阿里巴巴的Druid沒有關係。
二、Druid優缺點
Druid有如下特點,也可以看做是Druid的優點:
列式儲存
Druid使用面相列的儲存,對於OLAP分析需要讀取列分析的場景加快了速度,同時一列資料中有很多共性的資料,資料的壓縮效果好,佔用空間小,支援快速掃描及聚合查詢。
可擴充套件的分散式架構
Druid在生產環境中可以部署到數十臺多數百臺伺服器組成的叢集中,可以提供每秒百萬條資料的寫入,針對萬億條記錄做到亞秒到秒級查詢。
支援平行計算
Druid可以在叢集中並行執行一個查詢。
支援實時或者批次讀取資料
Druid支援實時獲取資料,實時獲取的資料可以實時查詢,也支援批次讀取資料。
叢集自動平衡,方便運維
Druid叢集擴大或者縮小時,只需要增加或者減少對應的機器數,Druid叢集自動會平衡各個節點,不需要停機。
對資料進行預聚合或預計算
Druid可以人為指定按照某些時間粒度對相同維度的資料進行預聚合計算,既加快了查詢速度,也減少了資料儲存空間。
bitmap索引快速過濾
Druid中可以透過bitmap構建索引,對資料進行壓縮,加快查詢過濾速度。
基於時間的分割槽
Druid首先按照時間對資料進行分割槽,也可以使用其他欄位作為分割槽,這樣可以加快查詢速度,例如:基於時間的查詢只會查詢與時間匹配的分割槽。
Druid主要的優點在於支援流式和批次資料的匯入、高併發亞秒級查詢、儲存索引最佳化。但是還有一些缺點,缺點如下:
有限的join能力
Druid適用於清洗好的資料實時寫入,不需要更新資料,所以資料在寫入Druid之前一般需要拉寬處理,在從Druid中查詢資料時,直接查詢這張寬表即可。在Druid最新版本0。21。1支援join,join右側的表都會自動存放記憶體再做關聯,這樣會降低效能。
不支援多時間維度,所有維度為String型別
只支援流式寫入,不支援實時資料更新,更新可以使用批處理作業完成。
不支援精準去重