Druid(僅對(duì)存量用戶開(kāi)放)
Apache Druid是一個(gè)分布式內(nèi)存實(shí)時(shí)分析系統(tǒng),用于解決如何在大規(guī)模數(shù)據(jù)集下快速的、交互式的查詢和分析問(wèn)題。
基本特點(diǎn)
Apache Druid具有如下特點(diǎn):
支持亞秒級(jí)的交互式查詢。例如,多維過(guò)濾、Ad-hoc的屬性分組和快速聚合數(shù)據(jù)。
支持實(shí)時(shí)的數(shù)據(jù)消費(fèi)。
支持多租戶同時(shí)在線查詢。
支持PB級(jí)數(shù)據(jù)、千億級(jí)事件快速處理,支持每秒數(shù)千查詢并發(fā)。
支持高可用,并且滾動(dòng)升級(jí)。
應(yīng)用場(chǎng)景
實(shí)時(shí)數(shù)據(jù)分析是Apache Druid最典型的使用場(chǎng)景。該場(chǎng)景涵蓋的面很廣,例如:
實(shí)時(shí)指標(biāo)監(jiān)控
推薦模型
廣告平臺(tái)
搜索模型
Apache Druid架構(gòu)
Apache Druid擁有優(yōu)秀的架構(gòu)設(shè)計(jì),多個(gè)組件協(xié)同工作,共同完成數(shù)據(jù)從攝取到索引、存儲(chǔ)和查詢等一系列流程。
Druid工作層(數(shù)據(jù)索引以及查詢)包含以下組件:
Realtime組件負(fù)責(zé)數(shù)據(jù)的實(shí)時(shí)攝入。
Broker組件負(fù)責(zé)查詢?nèi)蝿?wù)的分發(fā)以及查詢結(jié)果的匯總,并將結(jié)果返回給用戶。
Historical組件負(fù)責(zé)索引后的歷史數(shù)據(jù)的存儲(chǔ),數(shù)據(jù)存儲(chǔ)在deep storage。Deep storage可以是本地,也可以是HDFS等分布式文件系統(tǒng)。
Indexing service包含以下兩個(gè)組件:
Overlord組件負(fù)責(zé)索引任務(wù)的管理、分發(fā)。
MiddleManager負(fù)責(zé)索引任務(wù)的具體執(zhí)行。
Druid segments(Druid索引文件)管理層涉及以下組件:
Zookeeper:負(fù)責(zé)存儲(chǔ)集群的狀態(tài)以及作為服務(wù)發(fā)現(xiàn)組件。例如集群的拓?fù)湫畔ⅰverlord leader的選舉、indexing task的管理等。
Coordinator:負(fù)責(zé)segments的管理。例如segments下載、刪除以及如何在historical之間做均衡等。
Metadata storage:負(fù)責(zé)存儲(chǔ)segments的元信息,以及管理集群各種各樣的持久化或臨時(shí)性數(shù)據(jù)。例如配置信息、審計(jì)信息等。
E-MapReduce增強(qiáng)型Druid
E-MapReduce Druid基于Apache Druid做了大量的改進(jìn),包括與E-MapReduce和阿里云周邊生態(tài)的集成、方便的監(jiān)控與運(yùn)維支持、易用的產(chǎn)品接口等,實(shí)現(xiàn)即買即用和7*24免運(yùn)維。
E-MapReduce Druid目前支持的特性如下所示:
支持以O(shè)SS作為deep storage。
支持將OSS文件作為批量索引的數(shù)據(jù)來(lái)源。
支持從日志服務(wù)(Log Service)流式地索引數(shù)據(jù)(類似于Kafka),并提供高可靠保證和exactly-once語(yǔ)義。
支持將元數(shù)據(jù)存儲(chǔ)到RDS。
集成了Superset工具。
方便地?cái)U(kuò)容和縮容(縮容針對(duì)Task節(jié)點(diǎn))。
豐富的監(jiān)控指標(biāo)和告警規(guī)則。
故障遷移。
具有高安全性。
支持HA。