實(shí)時(shí)OLAP分析利器Druid介紹

文章目錄

  • 前言
  • Druid
  • 主要特性
  • 基礎(chǔ)概念
    -- 數(shù)據(jù)格式
    -- 數(shù)據(jù)攝入
    -- 數(shù)據(jù)存儲(chǔ)
    -- 數(shù)據(jù)查詢
    -- 查詢類型
    -- 架構(gòu)
    -- 運(yùn)維
  • OLAP方案對(duì)比
  • 使用場(chǎng)景
  • 使用建議
  • 參考
  • 近期主題

前言

項(xiàng)目早期、數(shù)據(jù)(報(bào)表分析)的生產(chǎn)潦匈、存儲(chǔ)和獲取業(yè)務(wù)眼姐,MySQL基本上可以滿足需要喊暖,但是隨著業(yè)務(wù)的快速增長(zhǎng)初肉,數(shù)據(jù)量翻至億為單位時(shí)析校,MySQL無(wú)法滿足例如:快速實(shí)時(shí)返回“分組+聚合計(jì)算+排序聚合指標(biāo)”查詢需求皿哨。記得還是2017年之后映琳,對(duì)當(dāng)時(shí)的幾款OLAP進(jìn)行了調(diào)研机隙,用線上數(shù)據(jù)訓(xùn)練蜘拉。當(dāng)時(shí)Druid在性能和功能上基本上能夠滿足需要,下面介紹一下Apache Druid有鹿。

Druid介紹

Apache Druid 是一個(gè)高性能實(shí)時(shí)分析數(shù)據(jù)庫(kù)旭旭,在復(fù)雜的海量數(shù)據(jù)下進(jìn)行交互式實(shí)時(shí)數(shù)據(jù)展現(xiàn)的OLAP工具。能夠處理TB級(jí)別數(shù)據(jù)葱跋,毫秒級(jí)響應(yīng)持寄。目前國(guó)內(nèi)在使用的公司有:阿里、滴滴娱俺、知乎稍味、360、eBay荠卷,Hulu等模庐。官方網(wǎng)址:http://druid.io

主要特性

  1. 開(kāi)源、列式存儲(chǔ)油宜,預(yù)聚合
  2. 實(shí)時(shí)流式和批量數(shù)據(jù)攝入
  3. 靈活的數(shù)據(jù)模式掂碱、支持SQL查詢
  4. 擴(kuò)展方便,容易運(yùn)維
  5. TB慎冤,PB級(jí)別的數(shù)據(jù)處理

基礎(chǔ)概念

數(shù)據(jù)格式

數(shù)據(jù)源:datasource疼燥,datasource的結(jié)構(gòu)有:時(shí)間列(timestamp)、維度列(Dimension)和指標(biāo)列(Metric)

時(shí)間列:將時(shí)間相近的一些數(shù)據(jù)聚合在一起粪薛,查詢的時(shí)候指定時(shí)間范圍

維度列:標(biāo)識(shí)一些統(tǒng)計(jì)的維度悴了,比如:名稱、類別等

指標(biāo)列:用于聚合和計(jì)算的列违寿,比如:訪問(wèn)總數(shù)湃交、合計(jì)金額等

數(shù)據(jù)攝入

同時(shí)支持流式和批量數(shù)據(jù)攝入。通常通過(guò)像 Kafka 這樣的消息總線(加載流式數(shù)據(jù))或通過(guò)像 HDFS 這樣的分布式文件系統(tǒng)(加載批量數(shù)據(jù))來(lái)連接原始數(shù)據(jù)源藤巢。

?
Druid 通過(guò) Indexing 處理將原始數(shù)據(jù)以 segment 的方式存儲(chǔ)在數(shù)據(jù)節(jié)點(diǎn)搞莺,segment 是一種查詢優(yōu)化的數(shù)據(jù)結(jié)構(gòu)。

數(shù)據(jù)存儲(chǔ)

Druid 采用列式存儲(chǔ)掂咒。根據(jù)不同列的數(shù)據(jù)類型(string才沧,number 等),Druid 對(duì)其使用不同的壓縮和編碼方式绍刮。Druid 也會(huì)針對(duì)不同的列類型構(gòu)建不同類型的索引温圆。

類似于檢索系統(tǒng),Druid 為 string 列創(chuàng)建反向索引孩革,以達(dá)到更快速的搜索和過(guò)濾岁歉。類似于時(shí)間序列數(shù)據(jù)庫(kù),Druid 基于時(shí)間對(duì)數(shù)據(jù)進(jìn)行智能分區(qū)膝蜈,以達(dá)到更快的基于時(shí)間的查詢锅移。

不像大多數(shù)傳統(tǒng)系統(tǒng)熔掺,Druid 可以在數(shù)據(jù)攝入前對(duì)數(shù)據(jù)進(jìn)行預(yù)聚合。這種預(yù)聚合操作被稱之為 rollup非剃,這樣就可以顯著的節(jié)省存儲(chǔ)成本置逻。

數(shù)據(jù)查詢

支持兩種查詢:JSON-HTTP,SQL兩種方式

查詢類型

Timeseries:基于時(shí)間范圍查詢的類型

TopN:基于單維度的排名查詢

GroupBy:基于多維度的分組查詢

架構(gòu)

運(yùn)維

Druid是非常健壯的系統(tǒng)备绽,Druid 擁有數(shù)據(jù)副本券坞、獨(dú)立服務(wù)、自動(dòng)數(shù)據(jù)備份和滾動(dòng)更新疯坤,以確保長(zhǎng)期運(yùn)行报慕,并保證數(shù)據(jù)不丟失。

OLAP方案對(duì)比

Druid:是一個(gè)實(shí)時(shí)處理時(shí)序數(shù)據(jù)的OLAP數(shù)據(jù)庫(kù)压怠,因?yàn)樗乃饕紫劝凑諘r(shí)間分片眠冈,查詢的時(shí)候也是按照時(shí)間線去路由索引。

Kylin:核心是Cube菌瘫,Cube是一種預(yù)計(jì)算技術(shù)蜗顽,基本思路是預(yù)先對(duì)數(shù)據(jù)作多維索引,查詢時(shí)只掃描索引而不訪問(wèn)原始數(shù)據(jù)從而提速雨让。

ES:最大的特點(diǎn)是使用了倒排索引解決索引問(wèn)題雇盖。根據(jù)研究,ES在數(shù)據(jù)獲取和聚集用的資源比在Druid高栖忠。

Spark SQL:基于Spark平臺(tái)上的一個(gè)OLAP框架崔挖,基本思路是增加機(jī)器來(lái)并行計(jì)算,從而提高查詢速度庵寞。

使用場(chǎng)景

  • 廣告數(shù)據(jù)分析
  • 風(fēng)控分析
  • 服務(wù)器指標(biāo)存儲(chǔ)
  • 應(yīng)用性能指標(biāo)
  • 實(shí)時(shí)在線分析系統(tǒng) OLAP
  • 實(shí)時(shí)報(bào)表分析
  • 離線+實(shí)時(shí)數(shù)據(jù)源
  • 行為數(shù)據(jù)分析

使用建議

  1. 時(shí)序化數(shù)據(jù):所有行記錄中必須有日期指標(biāo)
  2. OLAP并發(fā)有限狸相,不適合OLTP查詢,建議首次回源加Cache
  3. 目前不支持JOIN操作捐川,不支持?jǐn)?shù)據(jù)更新
  4. 離線數(shù)據(jù)替換前一天實(shí)時(shí)數(shù)據(jù)
  5. 分頁(yè)支持的不夠完善

另外脓鹃、Druid在項(xiàng)目中已經(jīng)投產(chǎn)多年,用OLAP方案解決業(yè)務(wù)上的問(wèn)題古沥,整理技術(shù)點(diǎn)為了方便相似業(yè)務(wù)同學(xué)參考和使用瘸右。

參考

https://druid.apache.org/docs/latest/design/

近期主題:

  • Druid在數(shù)據(jù)分析需求中的學(xué)習(xí)和應(yīng)用

  • Druid多種應(yīng)用場(chǎng)景的實(shí)戰(zhàn)

  • 定時(shí)任務(wù)到分布式服務(wù)的演變


    image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市岩齿,隨后出現(xiàn)的幾起案子太颤,更是在濱河造成了極大的恐慌,老刑警劉巖盹沈,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件龄章,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)瓦堵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)歌亲,“玉大人菇用,你說(shuō)我怎么就攤上這事∠菥荆” “怎么了惋鸥?”我有些...
    開(kāi)封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)悍缠。 經(jīng)常有香客問(wèn)我卦绣,道長(zhǎng),這世上最難降的妖魔是什么飞蚓? 我笑而不...
    開(kāi)封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任滤港,我火速辦了婚禮,結(jié)果婚禮上趴拧,老公的妹妹穿的比我還像新娘溅漾。我一直安慰自己,他們只是感情好著榴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布添履。 她就那樣靜靜地躺著,像睡著了一般脑又。 火紅的嫁衣襯著肌膚如雪暮胧。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天问麸,我揣著相機(jī)與錄音往衷,去河邊找鬼。 笑死口叙,一個(gè)胖子當(dāng)著我的面吹牛炼绘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妄田,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼俺亮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了疟呐?” 一聲冷哼從身側(cè)響起脚曾,我...
    開(kāi)封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎启具,沒(méi)想到半個(gè)月后本讥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年拷沸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了色查。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撞芍,死狀恐怖秧了,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情序无,我是刑警寧澤验毡,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站帝嗡,受9級(jí)特大地震影響晶通,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哟玷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一狮辽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巢寡,春花似錦隘竭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至爪幻,卻和暖如春菱皆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挨稿。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工仇轻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人奶甘。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓篷店,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親臭家。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疲陕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容