大資料Apache Druid(一):Druid簡單介紹和優缺點

Druid簡單介紹和優缺點

大資料Apache Druid(一):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型別

只支援流式寫入,不支援實時資料更新,更新可以使用批處理作業完成。

不支援精準去重