日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OLAP引擎:基于Druid组件进行数据统计分析

發(fā)布時(shí)間:2025/3/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OLAP引擎:基于Druid组件进行数据统计分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Druid概述

1、Druid簡介

Druid是一款基于分布式架構(gòu)的OLAP引擎,支持?jǐn)?shù)據(jù)寫入、低延時(shí)、高性能的數(shù)據(jù)分析,具有優(yōu)秀的數(shù)據(jù)聚合能力與實(shí)時(shí)查詢能力。在大數(shù)據(jù)分析、實(shí)時(shí)計(jì)算、監(jiān)控等領(lǐng)域都有相關(guān)的應(yīng)用場景,是大數(shù)據(jù)基礎(chǔ)架構(gòu)建設(shè)中重要組件。

與現(xiàn)在相對(duì)熱門的Clickhouse引擎相比,Druid對(duì)高并發(fā)的支持相對(duì)較好和穩(wěn)定,但是Clickhouse在任務(wù)隊(duì)列模式中的數(shù)據(jù)查詢能力十分出色,但是對(duì)高并發(fā)支持不夠友好,需要做好很多服務(wù)監(jiān)控和預(yù)警。大數(shù)據(jù)組件中OLAP引擎的選型有很多,在數(shù)據(jù)的查詢引擎層通常都具有兩種或者以上的OLAP引擎,選擇合適的組件解決業(yè)務(wù)需求是優(yōu)先原則。

2、基本特點(diǎn)

分布式

分布式的OLAP數(shù)據(jù)引擎,數(shù)據(jù)分布在多個(gè)服務(wù)節(jié)點(diǎn)中,當(dāng)數(shù)據(jù)量激烈增長的時(shí)候,可以通過增加節(jié)點(diǎn)的方式進(jìn)行水平擴(kuò)容,數(shù)據(jù)在多個(gè)節(jié)點(diǎn)相互備份,如果單個(gè)節(jié)點(diǎn)出現(xiàn)故障,則可基于Zookeeper調(diào)度機(jī)制重新構(gòu)建數(shù)據(jù),這是分布式OLAP引擎的基本特點(diǎn),在之前Clickhouse系列中也說過這個(gè)策略。

聚合查詢

主要針對(duì)時(shí)間序列數(shù)據(jù)提供低延時(shí)數(shù)據(jù)寫入和快速聚合查詢,時(shí)序數(shù)據(jù)庫特點(diǎn)寫入即可查詢,Druid在數(shù)據(jù)寫入時(shí)就會(huì)對(duì)數(shù)據(jù)預(yù)聚合,進(jìn)而減少原始數(shù)據(jù)量,節(jié)省存儲(chǔ)空間并提升查詢效率;數(shù)據(jù)聚合粒度可以基于特定策略,例如分鐘、小時(shí)、天等。必須要強(qiáng)調(diào)Druid適合數(shù)據(jù)分析場景,并不適合單條數(shù)據(jù)主鍵查詢的業(yè)務(wù)。

列式存儲(chǔ)

Druid面向列的存儲(chǔ)方式,并且可以在集群中進(jìn)行大規(guī)模的并行查詢,這意味在只需要加載特定查詢所需要的列情況下,查詢速度可以大幅度提升。

3、基礎(chǔ)架構(gòu)

統(tǒng)治者節(jié)點(diǎn)

即Overlord-Node,任務(wù)的管理節(jié)點(diǎn),進(jìn)程監(jiān)視MiddleManager進(jìn)程,并且是數(shù)據(jù)攝入Druid的控制器,負(fù)責(zé)將提取任務(wù)分配給MiddleManagers并協(xié)調(diào)Segement發(fā)布。

協(xié)調(diào)節(jié)點(diǎn)

即Coordinator-Node,主要負(fù)責(zé)數(shù)據(jù)的管理和在歷史節(jié)點(diǎn)上的分布,協(xié)調(diào)節(jié)點(diǎn)告訴歷史節(jié)點(diǎn)加載新數(shù)據(jù)、卸載過期數(shù)據(jù)、復(fù)制數(shù)據(jù)、和為了負(fù)載均衡移動(dòng)數(shù)據(jù)。

中間管理節(jié)點(diǎn)

即MiddleManager-Node,攝入實(shí)時(shí)數(shù)據(jù),已生成Segment數(shù)據(jù)文件,可以理解為overlord節(jié)點(diǎn)的工作節(jié)點(diǎn)。

歷史節(jié)點(diǎn)

即Historical-Node,主要負(fù)責(zé)歷史數(shù)據(jù)存儲(chǔ)和查詢,接收協(xié)調(diào)節(jié)點(diǎn)數(shù)據(jù)加載與刪除指令,historical節(jié)點(diǎn)是整個(gè)集群查詢性能的核心所在,因?yàn)閔istorical會(huì)承擔(dān)絕大部分的segment查詢。

查詢節(jié)點(diǎn)

即Broker-Node,扮演著歷史節(jié)點(diǎn)和實(shí)時(shí)節(jié)點(diǎn)的查詢路由的角色,接收客戶端查詢請(qǐng)求,并將這些查詢轉(zhuǎn)發(fā)給Historicals和MiddleManagers,當(dāng)Brokers從這些子查詢中收到結(jié)果時(shí),它們會(huì)合并這些結(jié)果并將它們返回給調(diào)用者。

數(shù)據(jù)文件存儲(chǔ)庫

即DeepStorage,存放生成的Segment數(shù)據(jù)文件。

元數(shù)據(jù)庫

即MetadataStorage,存儲(chǔ)Druid集群的元數(shù)據(jù)信息,比如Segment的相關(guān)信息。

協(xié)調(diào)中間件

即Zookeeper,為Druid集群提供協(xié)調(diào)服務(wù),如內(nèi)部服務(wù)的監(jiān)控,協(xié)調(diào)和領(lǐng)導(dǎo)者選舉。

二、Druid部署

1、安裝包

imply對(duì)druid做了集成,并提供從部署到配置到各種可視化工具的完整的解決方案。

https://static.imply.io/release/imply-2.7.10.tar.gz

解壓并重新命名。

[root@hop01 opt]# tar -zxvf imply-2.7.10.tar.gz [root@hop01 opt]# mv imply-2.7.10 imply2.7

2、Zookeeper配置

配置Zookeeper集群各個(gè)節(jié)點(diǎn),逗號(hào)分隔。

[root@hop01 _common]# cd /opt/imply2.7/conf/druid/_common [root@hop01 _common]# vim common.runtime.properties druid.zk.service.host=hop01:2181,hop02:2181,hop03:2181

關(guān)閉Zookeeper內(nèi)置校驗(yàn)并且不啟動(dòng)。

[root@hop01 supervise]# cd /opt/imply2.7/conf/supervise [root@hop01 supervise]# vim quickstart.conf

注釋掉如下內(nèi)容:

3、服務(wù)啟動(dòng)

依次啟動(dòng)相關(guān)組件:Zookeeper、Hadoop相關(guān)組件,然后啟動(dòng)imply服務(wù)。

[root@hop01 imply2.7]# /opt/imply2.7/bin/supervise -c /opt/imply2.7/conf/supervise/quickstart.conf

注意虛擬機(jī)內(nèi)存問題,在如下的目錄中Druid各個(gè)組件的JVM配置,條件不允許的話適當(dāng)拉低,并且要拉高JVM相關(guān)內(nèi)存參數(shù)。

[root@hop01 druid]# cd /opt/imply2.7/conf/druid

啟動(dòng)默認(rèn)端口:9095,訪問界面如下:

三、基礎(chǔ)用法

1、數(shù)據(jù)源配置

選擇上述Http的方式,基于imply提供的JSON測試文件。

https://static.imply.io/data/wikipedia.json.gz

2、數(shù)據(jù)在線加載

執(zhí)行上述:Sample and continue。

樣本數(shù)據(jù)加載配置:

數(shù)據(jù)列的配置:

配置項(xiàng)總體概覽:

最后執(zhí)行數(shù)據(jù)加載任務(wù)即可。

3、本地樣本加載

[root@hop01 imply2.7]# bin/post-index-task --file quickstart/wikipedia-index.json

這樣讀取兩份數(shù)據(jù)腳本。

4、數(shù)據(jù)立方體

數(shù)據(jù)加載完成后,查看可視化數(shù)據(jù)立方體:

數(shù)據(jù)立方體中提供一些基礎(chǔ)的視圖分析,可以在多個(gè)維度上拆分?jǐn)?shù)據(jù)集并進(jìn)行數(shù)據(jù)分析:

5、SQL查詢

可以基于可視化工具對(duì)Druid進(jìn)行SQL查詢,語法與常用規(guī)則幾乎一樣:

SELECT COUNT(*) AS Edits FROM wikipedia; SELECT * FROM wikipedia WHERE "__time" BETWEEN TIMESTAMP '開始' AND TIMESTAMP '結(jié)束'; SELECT page, COUNT(*) AS Edits FROM wikipedia GROUP BY page LIMIT 2; SELECT * FROM wikipedia ORDER BY __time DESC LIMIT 5; SELECT * FROM wikipedia LIMIT 3;

6、Segment文件

文件位置:

/opt/imply2.7/var/druid/segments/wikipedia/

Druid基于Segment實(shí)現(xiàn)對(duì)數(shù)據(jù)的切割,數(shù)據(jù)按時(shí)間的時(shí)序分布,將不同時(shí)間范圍內(nèi)的數(shù)據(jù)存儲(chǔ)在不同的Segment數(shù)據(jù)塊中,按時(shí)間范圍查詢數(shù)據(jù)時(shí),可以避免全數(shù)據(jù)掃描效率可以極大的提高,同時(shí)面向列進(jìn)行數(shù)據(jù)壓縮存儲(chǔ),提高分析的效率。

四、源代碼地址

GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent

往期推薦

? OLAP查詢引擎,ClickHouse集群化管理
? HBase集群環(huán)境搭建和應(yīng)用案例
? 搜索引擎框架,ElasticSearch集群應(yīng)用
? 分布式NoSQL系統(tǒng),Cassandra集群管理

總結(jié)

以上是生活随笔為你收集整理的OLAP引擎:基于Druid组件进行数据统计分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。