天天看點

Druid:實時處理時序資料的OLAP資料庫大資料分析和DruidDruid 的三個設計原則Druid 的技術特點Druid 的應用場景

大資料分析和Druid

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

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

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

Druid:實時處理時序資料的OLAP資料庫大資料分析和DruidDruid 的三個設計原則Druid 的技術特點Druid 的應用場景

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實時大資料分析原理與實踐》。

歡迎關注

高廣超的簡書部落格

與 收藏文章 !

頭條号:網際網路技術棧

個人介紹:

高廣超:多年一線網際網路研發與架構設計經驗,擅長設計與落地高可用、高性能、可擴充的網際網路架構。

本文首發在

轉載請注明!