1. 程式人生 > >快速瞭解Druid——實時大資料分析軟體

快速瞭解Druid——實時大資料分析軟體

Druid 是什麼

  Druid 單詞來源於西方古羅馬的神話人物,中文常常翻譯成德魯伊。 
  本問介紹的Druid 是一個分散式的支援實時分析的資料儲存系統(Data Store)。美國廣告技術公司MetaMarkets 於2011 年建立了Druid 專案,並且於2012 年晚期開源了Druid 專案。Druid 設計之初的想法就是為分析而生,它在處理資料的規模、資料處理的實時性方面,比傳統的OLAP 系統有了顯著的效能改進,而且擁抱主流的開源生態,包括Hadoop 等。多年以來,Druid 一直是非常活躍的開源專案。 
  Druid 的官方網站是http://druid.io。 
  另外,阿里巴巴也曾建立過一個開源專案叫作Druid(簡稱阿里Druid),它是一個數據庫連線池的專案。阿里Druid 和本問討論的Druid 沒有任何關係,它們解決完全不同的問題。

大資料分析和Druid

  大資料一直是近年的熱點話題,隨著資料量的急速增長,資料處理的規模也從GB 級別增長到TB 級別,很多影象應用領域已經開始處理PB 級別的資料分析。大資料的核心目標是提升業務的競爭力,找到一些可以採取行動的洞察(Actionable Insight),資料分析就是其中的核心技術,包括資料收集、處理、建模和分析,最後找到改進業務的方案。 
  最近一兩年,隨著大資料分析需求的爆炸性增長,很多公司都經歷過將以關係型商用資料庫為基礎的資料平臺,轉移到一些開源生態的大資料平臺,例如Hadoop 或Spark 平臺,以可控的軟硬體成本處理更大的資料量。Hadoop 設計之初就是為了批量處理大資料,但資料處理實時性經常是它的弱點。例如,很多時候一個MapReduce 指令碼的執行,很難估計需要多長時間才能完成,無法滿足很多資料分析師所期望的秒級返回查詢結果的分析需求。 
  為了解決資料實時性的問題,大部分公司都有一個經歷,將資料分析變成更加實時的可互動方案。其中,涉及新軟體的引入、資料流的改進等。資料分析的幾種常見方法如下圖。 
【圖1】


  整個資料分析的基礎架構通常分為以下幾類。 
(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)。

1 快速查詢(Fast Query)

  對於資料分析場景,大部分情況下,我們只關心一定粒度聚合的資料,而非每一行原始資料的細節情況。因此,資料聚合粒度可以是1 分鐘、5 分鐘、1 小時或1 天等。部分資料聚合(Partial Aggregate)給Druid 爭取了很大的效能優化空間。 
  資料記憶體化也是提高查詢速度的殺手鐗。記憶體和硬碟的訪問速度相差近百倍,但記憶體的大小是非常有限的,因此在記憶體使用方面要精細設計,比如Druid 裡面使用了Bitmap 和各種壓縮技術。 
另外,為了支援Drill-Down 某些維度,Druid 維護了一些倒排索引。這種方式可以加快AND 和OR 等計算操作。

2 水平擴充套件能力(Horizontal Scalability)

  Druid 查詢效能在很大程度上依賴於記憶體的優化使用。資料可以分佈在多個節點的記憶體中,因此當資料增長的時候,可以通過簡單增加機器的方式進行擴容。為了保持平衡,Druid按照時間範圍把聚合資料進行分割槽處理。對於高基數的維度,只按照時間切分有時候是不夠的(Druid 的每個Segment 不超過2000 萬行),故Druid 還支援對Segment 進一步分割槽。 
  歷史Segment 資料可以儲存在深度儲存系統中,儲存系統可以是本地磁碟、HDFS 或遠端的雲服務。如果某些節點出現故障,則可藉助Zookeeper 協調其他節點重新構造資料。 
  Druid 的查詢模組能夠感知和處理叢集的狀態變化,查詢總是在有效的叢集架構中進行。叢集上的查詢可以進行靈活的水平擴充套件。Druid 內建提供了一些容易並行化的聚合操作,例如Count、Mean、Variance 和其他查詢統計。對於一些無法並行化的操作,例如Median,Druid暫時不提供支援。在支援直方圖(Histogram)方面,Druid 也是通過一些近似計算的方法進行支援,以保證Druid 整體的查詢效能,這些近似計算方法還包括HyperLoglog、DataSketches的一些基數計算。

3 實時分析(Realtime Analytics)

  Druid 提供了包含基於時間維度資料的儲存服務,並且任何一行資料都是歷史真實發生的事件,因此在設計之初就約定事件一但進入系統,就不能再改變。 
  對於歷史資料Druid 以Segment 資料檔案的方式組織,並且將它們儲存到深度儲存系統中,例如檔案系統或亞馬遜的S3 等。當需要查詢這些資料的時候,Druid 再從深度儲存系統中將它們裝載到記憶體供查詢使用。

Druid 的技術特點

  Druid 具有如下技術特點。 
• 資料吞吐量大。 
• 支援流式資料攝入和實時。 
• 查詢靈活且快。 
• 社群支援力度大。

1 資料吞吐量大

  很多公司選擇Druid 作為分析平臺,都是看中Druid 的資料吞吐能力。每天處理幾十億到幾百億的事件,對於Druid 來說是非常適合的場景,目前已被大量網際網路公司實踐。因此,很多公司選型Druid 是為了解決資料爆炸的問題。

2 支援流式資料攝入

  很多資料分析軟體在吞吐量和流式能力上做了很多平衡,比如Hadoop 更加青睞批量處理,而Storm 則是一個流式計算平臺,真正在分析平臺層面上直接對接各種流式資料來源的系統並不多。

3 查詢靈活且快

  資料分析師的想法經常是天馬行空,希望從不同的角度去分析資料,為了解決這個問題,OLAP 的Star Schema 實際上就定義了一個很好的空間,讓資料分析師自由探索資料。資料量小的時候,一切安好,但是資料量變大後,不能秒級返回結果的分析系統都是被詬病的物件。因此,Druid 支援在任何維度組合上進行查詢,訪問速度極快,成為分析平臺最重要的兩個殺手鐗。

4 社群支援力度大

  Druid 開源後,受到不少網際網路公司的青睞,包括雅虎、eBay、阿里巴巴等,其中雅虎的Committer 有5 個,谷歌有1 個,阿里巴巴有1 個。最近,MetaMarkets 之前幾個Druid 發明人也成立了一家叫作Imply.io 的新公司,推動Druid 生態的發展,致力於Druid 的繁榮和應用。

Druid 的應用場景

  從技術定位上看,Druid 是一個分散式的資料分析平臺,在功能上也非常像傳統的OLAP系統,但是在實現方式上做了很多聚焦和取捨,為了支援更大的資料量、更靈活的分散式部署、更實時的資料攝入,Druid 捨去了OLAP 查詢中比較複雜的操作,例如JOIN 等。相比傳統資料庫,Druid 是一種時序資料庫,按照一定的時間粒度對資料進行聚合,以加快分析查詢。 
  在應用場景上,Druid 從廣告資料分析平臺起家,已經廣泛應用在各個行業和很多網際網路公司中,最新列表可以訪問http://druid.io/druidpowered.html

  Druid 的生態系統正在不斷擴大和成熟,Druid 也正在解決越來越多的業務場景。希望《Druid實時大資料分析原理與實踐》一書能幫助技術人員做出更好的技術選型,深度瞭解Druid 的功能和原理,更好地解決大資料分析問題。 
各大電商網站火熱預售中! 
  本文選自《Druid實時大資料分析原理與實踐》,點此連結可在博文視點官網檢視此書。 
                    圖片描述

想及時獲得更多精彩文章,可在微信中搜索“博文視點”或者掃描下方二維碼並關注。
                       圖片描述

相關推薦

快速瞭解Druid——實時資料分析軟體

Druid 是什麼   Druid 單詞來源於西方古羅馬的神話人物,中文常常翻譯成德魯伊。   本問介紹的Druid 是一個分散式的支援實時分析的資料儲存系統(Data Store)。美國廣告技術公司MetaMarkets 於2011 年建立了Druid 專案,並且於2012 年晚期開源了Druid 專案。

如何選擇適合的資料分析軟體

  KNIME.com、 Microsoft、 Oracle、 RapidMiner、SAP、 SAS 和 Teradata,其中有的廠商提供的工具不止一個。這些廠商分別代表著大資料分析市場的不同方面。我們將結合之前文章中提到的特點,對這些產品進行對比,看這些產品是如

主流資料分析軟體全面接觸

現在很多廠商都說自己的產品是大資料分析軟體。如果只是根據功能去區分這些產品,的確是件難事,因為很多工具具有相似的特徵和功能。此外,有些工具的差異是非常細微的。所以,關鍵區分因素可能還是要根據企業的能力以及在資料分析方面的成熟度,重點考慮如何在易用性、演算法複雜性和價格之間尋找平衡。 我們將在本文

視覺化資料分析軟體要掌握這6個核心技術!

大資料技術與商業智慧BI是相輔相成的,大資料技術可以幫助BI產品突破業務和技術的雙挑戰。視覺化大資料分析軟體在快速發展的市場環境中,迎來了越來越多的技術要求。這些核心技術成為大資料獲取、儲存、處理分析或視覺化的有效手段,可以說是我們這些專注研究視覺化大資料分析軟體的工作人員需要去學習和了解的!

關於bi資料分析軟體資料分析軟體

前言 本文的原文連線是: https://blog.csdn.net/freewebsys/article/details/84318480 未經博主允許不得轉載。 博主地址是:http://blog.csdn.net/freewebsys 1,關於bi 商業智慧

springboot 使用clickhouse實時資料分析引擎的方法

宣告: 因專案中使用clickhouse引擎這裡springboot使用的方式是jdbc方式連線,這種方式的好處是可以使用clickhouse 自帶的fetch方法批量從clickhouse中獲取資料,對於大量資料的下載來說,比較好 因為如果全部拿到記憶體中處理,大量資料會有記憶體溢位的結果

淘寶資料分析軟體客戶體驗效果好

淘寶大資料分析軟體的價格是多少呢?一般的情況下,軟體的價格還是比較便宜的,初級軟體的價格每年也就幾百元到一千元左右,但是如果初級軟體不夠企業使用的話,那麼就要購買高階軟體了,高階軟體的功能會比較多,所以整體的價格也會比較昂貴。但是大部分的企業為了能夠更好的經營自

Ebay開源 Pulsar:實時資料分析平臺

作者:汪興朗 汪明明王巧玲   eBay作為全球性的商務平臺和支付行業領先者,擁有海量的使用者行為資料。基於現有的hadoop大資料處理,已經不能夠滿足業務上對實時性的需求。基於eBay過去的大資料處理的經驗和對最新技術的運用,eBay探索出一個對海量的資料流進行實時的收集

快速了解Druid——實時大數據分析軟件

發展 選型 互聯 情況下 oop 有一個 agg 1.4 級別 Druid 是什麽   Druid 單詞來源於西方古羅馬的神話人物,中文常常翻譯成德魯伊。  本問介紹的Druid 是一個分布式的支持實時分析的數據存儲系統(Data Store)。美國廣告技術公司MetaMa

跟我一起學Spark之——《Spark快速資料分析》pdf版下載

連結:https://pan.baidu.com/s/1vjQCJLyiXzIj6gnCCDyv3g  提取碼:ib01 國慶第四天,去逛了半天的王府井書店,五層出電梯右邊最裡面,倒數第三排《資料結構》,找到了一本很不錯的書《Spark快速大資料分析》,試讀了下,我很喜歡,也很適合

spark快速資料分析學習筆記(1)

本文是《spark快速大資料分析學習》第三章學習筆記,文中大量摘抄書中原本,僅為個人學習筆記。 RDD基礎: RDD是一個不可變的分散式物件集合。每個RDD都被分為多個分割槽,這個分割槽執行在叢集的不同節點上。RDD可以包含Python、Java、Scala中任意型別的物件。 建立RDD的方式:

初學者如何快速開發資料分析平臺

大資料在近幾年受到越來越多的關注,如何將大資料快速落地於生產實踐,產生相應的經濟價值一直是一個值得關注的問題。當談到大資料,人們首先想到的是,是不是的linux,是不是的學習java,這給大資料技術的應用帶來一定的困難。如果,有一款通用的大資料平臺,只需要針對具體的業務系統修改資料庫和演

Spark快速資料分析(一)

楔子 Spark快速大資料分析 前3章內容,僅作為學習,有斷章取義的嫌疑。如有問題參考原書 Spark快速大資料分析 以下為了打字方便,可能不是在注意大小寫 1 Spark資料分析導論 1.1 Spark是什麼 Spark是一個用來實現快速而通用的叢

顛覆資料分析實時分析的應用

顛覆大資料分析之實時分析的應用 譯者:吳京潤    購書 在這一節,我們將看到構建兩個應用的步驟:一個工業日誌分類系統和一個網際網路流量過濾應用。 工業日誌分類 隨新舊生產工程系統的自動化以及電子工程的發展,大量的機器之間(M2M)的資料正在被生成出來。機器之間的資料可以來自多個不同的源頭,包

Spark快速資料分析——機器學習

楔子 《Spark快速大資料分析》學習 11 基於MLlib的機器學習 ​ MLlib是Saprk中提供機器學習函式的庫。它是專門在叢集上並行的情況而設計的。MLlib中包含許多機器學習演算法,可以在Spark支援的所有程式語言中使用。 11.1 概述

BI資料分析視覺化軟體系統開發

大資料時代,人們對資料的整理分析越來越重BI也稱商業智慧,商業智慧一般被理解為將企業中所產生的資料轉化為知識,幫助企業做出明智經營決策的輔助工具。BI大資料分析視覺化軟體適用於任何或產生資料的行業,尤其是現在是大資料時代,從大資料分析出的結論對各個企業都有深遠影響。 這裡所說的資料包括來自企業的業務系統的訂

BI資料分析資料視覺化軟體系統開發

資訊科技社會,在各個企業基本上都有完善OA、ERP等資訊基礎化系統。長此以往,積累了海量的資料。其中包括來自業務系統的訂單、庫存、交易賬目、客戶和供應商等,來自企業所處行業和競爭對手的資料以及來自企業所處的其他外部環境中的各種資料。這時候就需要BI大資料分析大資料視覺化軟體系統,將資料整合合理利用資料資源做出

《Spark快速資料分析》——讀書筆記(4)

第4章 鍵值對操作 鍵值對RDD通常用來進行聚合計算。我們一般要先通過一些初試ETL(抽取、轉化、裝載)操作來將資料轉化為鍵值對形式。 本章也會討論用來讓使用者控制鍵值對RDD在各節點上分佈情況的高階特性:分割槽。 4.1 動機 pair RDD(包

《Spark快速資料分析》pdf格式下載電子書免費下載

內容簡介 本書由 Spark 開發者及核心成員共同打造,講解了網路大資料時代應運而生的、能高效迅捷地分析處理資料的工具——Spark,它帶領讀者快速掌握用 Spark 收集、計算、簡化和儲存海量資料的方法,學會互動、迭代和增量式分析,解決分割槽、資料本地化和

數字化產業升級資料分析系統建設BI資料軟體開發

流量為王的時代,大資料分析變得越來越重要。使用者更喜歡什麼,更願意購買什麼等各類的問題,完全可以通過大資料分析系統分析出來。企業引入BI大資料分析系統也將更好進行數字化轉型。並且大資料分析系適用於任何企業,只要是需要將資料有效利用起來,它就能夠幫助企業創造更多價值。 大資料分析系統之金融的優勢: 1.提高