druid 是乙個為在大資料集之上做實時統計分析而設計的開源資料儲存。這個系統集合了乙個面向列儲存的層,乙個分布式、shared-nothing的架構,和乙個高階的索引結構,來達成在秒級以內對十億行級別的表進行任意的探索分析。以下將詳細闡述druid的架構,如何支援快速聚合、靈活的過濾、和低延遲資料匯入。
druid是乙個用於大資料實時查詢和分析的高容錯、高效能開源分布式系統,旨在快速處理大規模的資料,並能夠實現快速查詢和分析。
在最近幾年,網際網路技術的快速增長已經產生了大量由機器產生的資料。單獨來看,這些資料報含很少的有用資訊,價值都是很低的。從這些巨大的資料裡面分析出有用的資訊需要大量的時間和資源。
作為解決方案之一,google推出了mapreduce,應運而生的是hadoop。hadoop擅長的是儲存和大規模mapreduce處理離線資料,但是它並不提供任何效能上的保證它能多快獲取到資料。此外,雖然hadoop是乙個高可用的系統,但是在高併發負載下效能會下降。最後,hadoop對於儲存資料可以工作得很好,但是並沒有對資料匯入進行優化,使匯入的資料立即可讀。hadoop是乙個很好的後端、批量處理和資料倉儲系統。然而hadoop卻無法在高併發環境下(1000+使用者)保證查詢效能和資料可用性和提供產品級別的保證。
傳統的流式處理與批式處理存在以下問題:
1.大資料量查詢速度慢
2.大規模集群構建成本高
3.多維度交叉計算能力差
4.流式計算無法回溯
druid現在可以做類似dremel和powerdrill的單錶查詢。同時增加了一些新特性:
1.為區域性巢狀資料結構提供列式儲存格式
2.分布式查詢樹模型
3.為快速過濾做索引
4.實時攝入資料和查詢(攝入的資料是立即可用於查詢)
5.高容錯的分布式體系架構
至於和其他系統的比較,druid功能介於dremel和powerdrill之間,druid實現了幾乎dremel的所有功能(dremel可以處理任意巢狀資料結構,而druid只能處理單一的陣列型別),從powerdrill借鑑了一下比較實用的資料布局和壓縮方法。
druid是乙個大資料流、單一的資料攝取產品的不錯的選擇。特別是如果你的目標是想構建乙個無停機和流入的資料以時間為導向的產品,druid很適合。當談查詢速度的話題時,要明確乙個很重要說明,"fast"的意義是什麼:druid完全有可能實現不到一秒鐘完成對數以萬億行資料的查詢。
Druid 乙個用於大資料實時處理的開源分布式系統
druid是乙個用於大資料實時查詢和分析的高容錯 高效能開源分布式系統,旨在快速處理大規模的資料,並能夠實現快速查詢和分析。尤其是當發生 部署 機器故障以及其他產品系統遇到宕機等情況時,druid仍能夠保持100 正常執行。建立druid的最初意圖主要是為了解決查詢延遲問題,當時試圖使用hadoop...
Druid 乙個用於大資料實時處理的開源分布式系統
druid是乙個用於大資料實時查詢和分析的高容錯 高效能開源分布式系統,旨在快速處理大規模的資料,並能夠實現快速查詢和分析。尤其是當發生 部署 機器故障以及其他產品系統遇到宕機等情況時,druid仍能夠保持100 正常執行。建立druid的最初意圖主要是為了解決查詢延遲問題,當時試圖使用hadoop...
Druid 乙個用於大資料實時處理的開源分布式系統
druid是乙個用於大資料實時查詢和分析的高容錯 高效能開源分布式系統,旨在快速處理大規模的資料,並能夠實現快速查詢和分析。尤其是當發生 部署 機器故障以及其他產品系統遇到宕機等情況時,druid仍能夠保持100 正常執行。建立druid的最初意圖主要是為了解決查詢延遲問題,當時試圖使用hadoop...