05.12 Druid:實時處理時序數據的OLAP數據庫

大數據分析和Druid

大數據一直是近年的熱點話題,隨著數據量的急速增長,數據處理的規模也從GB 級別增長到TB 級別,很多圖像應用領域已經開始處理PB 級別的數據分析。大數據的核心目標是提升業務的競爭力,找到一些可以採取行動的洞察(Actionable Insight),數據分析就是其中的核心技術,包括數據收集、處理、建模和分析,最後找到改進業務的方案。

  最近一兩年,隨著大數據分析需求的爆炸性增長,很多公司都經歷過將以關係型商用數據庫為基礎的數據平臺,轉移到一些開源生態的大數據平臺,例如Hadoop 或Spark 平臺,以可控的軟硬件成本處理更大的數據量。Hadoop 設計之初就是為了批量處理大數據,但數據處理實時性經常是它的弱點。例如,很多時候一個MapReduce 腳本的執行,很難估計需要多長時間才能完成,無法滿足很多數據分析師所期望的秒級返回查詢結果的分析需求。

  為了解決數據實時性的問題,大部分公司都有一個經歷,將數據分析變成更加實時的可交互方案。其中,涉及新軟件的引入、數據流的改進等。數據分析的幾種常見方法如下圖。

Druid:實時處理時序數據的OLAP數據庫

 整個數據分析的基礎架構通常分為以下幾類。

(1)使用Hadoop/Spark 的MR 分析。

(2)將Hadoop/Spark 的結果注入RDBMS 中提供實時分析。

(3)將結果注入到容量更大的NoSQL 中,例如HBase 等。

(4)將數據源進行流式處理,對接流式計算框架,如Storm,結果落在RDBMS/NoSQL 中。

(5)將數據源進行流式處理,對接分析數據庫,例如Druid、Vertica 等。

Druid 的三個設計原則

在設計之初,開發人員確定了三個設計原則(Design Principle)。

(1)快速查詢(Fast Query):部分數據的聚合(Partial Aggregate)+內存化(In-emory)+索引(Index)。

(2)水平擴展能力(Horizontal Scalability):分佈式數據(Distributed Data)+ 並行化查詢(Parallelizable Query)。

(3)實時分析(Realtime Analytics):不可變的過去,只追加的未來(Immutable Past,Append-Only Future)。

Druid 的技術特點

Druid 具有如下技術特點。

• 數據吞吐量大。

• 支持流式數據攝入和實時。

• 查詢靈活且快。

• 社區支持力度大。

Druid 的應用場景

從技術定位上看,Druid 是一個分佈式的數據分析平臺,在功能上也非常像傳統的OLAP系統,但是在實現方式上做了很多聚焦和取捨,為了支持更大的數據量、更靈活的分佈式部署、更實時的數據攝入,Druid 捨去了OLAP 查詢中比較複雜的操作,例如JOIN 等。相比傳統數據庫,Druid 是一種時序數據庫,按照一定的時間粒度對數據進行聚合,以加快分析查詢。

本文選自《Druid實時大數據分析原理與實踐》。


分享到:


相關文章: