溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

apache druid有什么用

發(fā)布時(shí)間:2021-02-18 11:52:53 來源:億速云 閱讀:287 作者:小新 欄目:建站服務(wù)器

這篇文章主要介紹了apache druid有什么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

什么是apache druid?

它是一個(gè)集時(shí)間序列數(shù)據(jù)庫(kù)、數(shù)據(jù)倉(cāng)庫(kù)和全文檢索系統(tǒng)特點(diǎn)于一體的分析性數(shù)據(jù)平臺(tái)。

本文會(huì)為大家簡(jiǎn)單了解一下druid的特性、使用場(chǎng)景、技術(shù)特點(diǎn)和架構(gòu)等,這會(huì)有助于我們選擇數(shù)據(jù)存儲(chǔ)方案,深入了解druid存儲(chǔ)和時(shí)間序列存儲(chǔ)等。

概覽

一個(gè)現(xiàn)代化的云原生,流原生,分析型數(shù)據(jù)庫(kù)

Druid是為快速查詢和快速攝入數(shù)據(jù)的工作流而設(shè)計(jì)的。Druid強(qiáng)在有強(qiáng)大的UI,運(yùn)行時(shí)可操作查詢,和高性能并發(fā)處理。Druid可以被視為一個(gè)滿足多樣化用戶場(chǎng)景的數(shù)據(jù)倉(cāng)庫(kù)的開源替代品。

輕松與現(xiàn)有的數(shù)據(jù)管道集成

Druid可以從消息總線流式獲取數(shù)據(jù)(如Kafka,Amazon Kinesis),或從數(shù)據(jù)湖批量加載文件(如HDFS,Amazon S3和其他同類數(shù)據(jù)源)。

比傳統(tǒng)方案快100倍的性能

Druid對(duì)數(shù)據(jù)攝入和數(shù)據(jù)查詢的基準(zhǔn)性能測(cè)試大大超過了傳統(tǒng)解決方案。

Druid的架構(gòu)融合了數(shù)據(jù)倉(cāng)庫(kù),時(shí)間序列數(shù)據(jù)庫(kù)和檢索系統(tǒng)最好的特性。

解鎖新的工作流

Druid為Clickstream,APM(應(yīng)用性能管理系統(tǒng)),supply chain(供應(yīng)鏈),網(wǎng)絡(luò)遙測(cè),數(shù)字營(yíng)銷和其他事件驅(qū)動(dòng)形式的場(chǎng)景解鎖了新的查詢方式和工作流。Druid專為實(shí)時(shí)和歷史數(shù)據(jù)的快速臨時(shí)查詢而構(gòu)建。

部署在AWS/GCP/Azure,混合云,k8s和租用服務(wù)器

Druid可以部署在任何*NIX環(huán)境中。無論是內(nèi)部環(huán)境還是云環(huán)境。部署Druid是非常easy的:通過添加或刪減服務(wù)來擴(kuò)容縮容。

使用場(chǎng)景

Apache Druid適用于對(duì)實(shí)時(shí)數(shù)據(jù)提取,高性能查詢和高可用要求較高的場(chǎng)景。因此,Druid通常被作為一個(gè)具有豐富GUI的分析系統(tǒng),或者作為一個(gè)需要快速聚合的高并發(fā)API的后臺(tái)。Druid更適合面向事件數(shù)據(jù)。

比較常見的使用場(chǎng)景:

點(diǎn)擊流分析(web和mobile分析)

風(fēng)控分析

網(wǎng)路遙測(cè)分析(網(wǎng)絡(luò)性能監(jiān)控)

服務(wù)器指標(biāo)存儲(chǔ)

供應(yīng)鏈分析(制造業(yè)指標(biāo))

應(yīng)用性能指標(biāo)

商業(yè)智能/實(shí)時(shí)在線分析系統(tǒng)OLAP

下面將詳細(xì)分析這些使用場(chǎng)景:

用戶活動(dòng)和行為

Druid經(jīng)常用在點(diǎn)擊流,訪問流,和活動(dòng)流數(shù)據(jù)上。具體場(chǎng)景包括:衡量用戶參與度,為產(chǎn)品發(fā)布追蹤A/B測(cè)試數(shù)據(jù),并了解用戶使用方式。Druid可以做到精確和近似計(jì)算用戶指標(biāo),例如不重復(fù)計(jì)數(shù)指標(biāo)。這意味著,如日活用戶指標(biāo)可以在一秒鐘計(jì)算出近似值(平均精度98%),以查看總體趨勢(shì),或精確計(jì)算以展示給利益相關(guān)者。Druid可以用來做“漏斗分析”,去測(cè)量有多少用戶做了某種操作,而沒有做另一個(gè)操作。這對(duì)產(chǎn)品追蹤用戶注冊(cè)十分有用。

網(wǎng)絡(luò)流

Druid常常用來收集和分析網(wǎng)絡(luò)流數(shù)據(jù)。Druid被用于管理以任意屬性切分組合的流數(shù)據(jù)。Druid能夠提取大量網(wǎng)絡(luò)流記錄,并且能夠在查詢時(shí)快速對(duì)數(shù)十個(gè)屬性組合和排序,這有助于網(wǎng)絡(luò)流分析。這些屬性包括一些核心屬性,如IP和端口號(hào),也包括一些額外添加的強(qiáng)化屬性,如地理位置,服務(wù),應(yīng)用,設(shè)備和ASN。Druid能夠處理非固定模式,這意味著你可以添加任何你想要的屬性。

數(shù)字營(yíng)銷

Druid常常用來存儲(chǔ)和查詢?cè)诰€廣告數(shù)據(jù)。這些數(shù)據(jù)通常來自廣告服務(wù)商,它對(duì)衡量和理解廣告活動(dòng)效果,點(diǎn)擊穿透率,轉(zhuǎn)換率(消耗率)等指標(biāo)至關(guān)重要。

Druid最初就是被設(shè)計(jì)成一個(gè)面向廣告數(shù)據(jù)的強(qiáng)大的面向用戶的分析型應(yīng)用程序。在存儲(chǔ)廣告數(shù)據(jù)方面,Druid已經(jīng)有大量生產(chǎn)實(shí)踐,全世界有大量用戶在上千臺(tái)服務(wù)器上存儲(chǔ)了PB級(jí)數(shù)據(jù)。

應(yīng)用性能管理

Druid常常用于追蹤應(yīng)用程序生成的可運(yùn)營(yíng)數(shù)據(jù)。和用戶活動(dòng)使用場(chǎng)景類似,這些數(shù)據(jù)可以是關(guān)于用戶怎樣和應(yīng)用程序交互的,它可以是應(yīng)用程序自身上報(bào)的指標(biāo)數(shù)據(jù)。Druid可用于下鉆發(fā)現(xiàn)應(yīng)用程序不同組件的性能如何,定位瓶頸,和發(fā)現(xiàn)問題。

不像許多傳統(tǒng)解決方案,Druid具有更小存儲(chǔ)容量,更小復(fù)雜度,更大數(shù)據(jù)吞吐的特點(diǎn)。它可以快速分析數(shù)以千計(jì)屬性的應(yīng)用事件,并計(jì)算復(fù)雜的加載,性能,利用率指標(biāo)。比如,基于百分之95查詢延遲的API終端。我們可以以任何臨時(shí)屬性組織和切分?jǐn)?shù)據(jù),如以天為時(shí)間切分?jǐn)?shù)據(jù),如以用戶畫像統(tǒng)計(jì),如按數(shù)據(jù)中心位置統(tǒng)計(jì)。

物聯(lián)網(wǎng)和設(shè)備指標(biāo)

Driud可以作為時(shí)間序列數(shù)據(jù)庫(kù)解決方案,來存儲(chǔ)處理服務(wù)器和設(shè)備的指標(biāo)數(shù)據(jù)。收集機(jī)器生成的實(shí)時(shí)數(shù)據(jù),執(zhí)行快速臨時(shí)的分析,去估量性能,優(yōu)化硬件資源,和定位問題。

和許多傳統(tǒng)時(shí)間序列數(shù)據(jù)庫(kù)不同,Druid本質(zhì)上是一個(gè)分析引擎。Druid融合了時(shí)間序列數(shù)據(jù)庫(kù),列式分析數(shù)據(jù)庫(kù),和檢索系統(tǒng)的理念。它在單個(gè)系統(tǒng)中支持了基于時(shí)間分區(qū),列式存儲(chǔ),和搜索索引。這意味著基于時(shí)間的查詢,數(shù)字聚合,和檢索過濾查詢都會(huì)特別快。

你可以在你的指標(biāo)中包括百萬唯一維度值,并隨意按任何維度組合group和filter(Druid 中的 dimension維度類似于時(shí)間序列數(shù)據(jù)庫(kù)中的tag)。你可以基于tag group和rank,并計(jì)算大量復(fù)雜的指標(biāo)。而且你在tag上檢索和過濾會(huì)比傳統(tǒng)時(shí)間序列數(shù)據(jù)庫(kù)更快。

OLAP和商業(yè)智能

Druid經(jīng)常用于商業(yè)智能場(chǎng)景。公司部署Druid去加速查詢和增強(qiáng)應(yīng)用。和基于Hadoop的SQL引擎(如Presto或Hive)不同,Druid為高并發(fā)和亞秒級(jí)查詢而設(shè)計(jì),通過UI強(qiáng)化交互式數(shù)據(jù)查詢。這使得Druid更適合做真實(shí)的可視化交互分析。

技術(shù)

Apache Druid 是一個(gè)開源的分布式數(shù)據(jù)存儲(chǔ)引擎。Druid的核心設(shè)計(jì)融合了OLAP/analytic databases,timeseries database,和search systems的理念,以創(chuàng)造一個(gè)適用廣泛用例的統(tǒng)一系統(tǒng)。Druid將這三種系統(tǒng)的主要特性融合進(jìn)Druid的ingestion layer(數(shù)據(jù)攝入層),storage format(存儲(chǔ)格式化層),querying layer(查詢層),和core architecture(核心架構(gòu))中。

apache druid有什么用

Druid的主要特性包括:

列式存儲(chǔ)

Druid單獨(dú)存儲(chǔ)并壓縮每一列數(shù)據(jù)。并且查詢時(shí)只查詢特定需要查詢的數(shù)據(jù),支持快速scan,ranking和groupBy。

原生檢索索引

Druid為string值創(chuàng)建反向索引以達(dá)到數(shù)據(jù)的快速搜索和過濾。

流式和批量數(shù)據(jù)攝入

開箱即用的Apache kafka,HDFS,AWS S3連接器connectors,流式處理器。

靈活的數(shù)據(jù)模式

Druid優(yōu)雅地適應(yīng)不斷變化的數(shù)據(jù)模式和嵌套數(shù)據(jù)類型。

基于時(shí)間的優(yōu)化分區(qū)

Druid基于時(shí)間對(duì)數(shù)據(jù)進(jìn)行智能分區(qū)。因此,Druid基于時(shí)間的查詢將明顯快于傳統(tǒng)數(shù)據(jù)庫(kù)。

支持SQL語句

除了原生的基于JSON的查詢外,Druid還支持基于HTTP和JDBC的SQL。

水平擴(kuò)展能力

百萬/秒的數(shù)據(jù)攝入速率,海量數(shù)據(jù)存儲(chǔ),亞秒級(jí)查詢。

易于運(yùn)維

可以通過添加或移除Server來擴(kuò)容和縮容。Druid支持自動(dòng)重平衡,失效轉(zhuǎn)移。

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

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

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

apache druid有什么用

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

像大多數(shù)分析型數(shù)據(jù)庫(kù)一樣,Druid采用列式存儲(chǔ)。根據(jù)不同列的數(shù)據(jù)類型(string,number等),Druid對(duì)其使用不同的壓縮和編碼方式。Druid也會(huì)針對(duì)不同的列類型構(gòu)建不同類型的索引。

類似于檢索系統(tǒng),Druid為string列創(chuàng)建反向索引,以達(dá)到更快速的搜索和過濾。類似于時(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ǔ)成本。

apache druid有什么用

查詢

Druid支持JSON-over-HTTP和SQL兩種查詢方式。除了標(biāo)準(zhǔn)的SQL操作外,Druid還支持大量的唯一性操作,利用Druid提供的算法套件可以快速的進(jìn)行計(jì)數(shù),排名和分位數(shù)計(jì)算。

apache druid有什么用

架構(gòu)

Druid是微服務(wù)架構(gòu),可以理解為一個(gè)拆解成多個(gè)服務(wù)的數(shù)據(jù)庫(kù)。Druid的每一個(gè)核心服務(wù)(ingestion(攝入服務(wù)),querying(查詢服務(wù)),和coordination(協(xié)調(diào)服務(wù)))都可以單獨(dú)部署或聯(lián)合部署在商業(yè)硬件上。

Druid清晰的命名每一個(gè)服務(wù),以確保運(yùn)維人員可以根據(jù)使用情況和負(fù)載情況很好地調(diào)整相應(yīng)服務(wù)的參數(shù)。例如,當(dāng)負(fù)載需要時(shí),運(yùn)維人員可以給數(shù)據(jù)攝入服務(wù)更多的資源而減少數(shù)據(jù)查詢服務(wù)的資源。

Druid可以獨(dú)立失敗而不影響其他服務(wù)的運(yùn)行。

apache druid有什么用

運(yùn)維

Drui被設(shè)計(jì)成一個(gè)健壯的系統(tǒng),它需要7*24小時(shí)運(yùn)行。Druid擁有以下特性,以確保長(zhǎng)期運(yùn)行,并保證數(shù)據(jù)不丟失。

數(shù)據(jù)副本

Druid根據(jù)配置的副本數(shù)創(chuàng)建多個(gè)數(shù)據(jù)副本,所以單機(jī)失效不會(huì)影響Druid的查詢。

獨(dú)立服務(wù)

Druid清晰的命名每一個(gè)主服務(wù),每一個(gè)服務(wù)都可以根據(jù)使用情況做相應(yīng)的調(diào)整。服務(wù)可以獨(dú)立失敗而不影響其他服務(wù)的正常運(yùn)行。例如,如果數(shù)據(jù)攝入服務(wù)失效了,將沒有新的數(shù)據(jù)被加載進(jìn)系統(tǒng),但是已經(jīng)存在的數(shù)據(jù)依然可以被查詢。

自動(dòng)數(shù)據(jù)備份

Druid自動(dòng)備份所有已經(jīng)indexed的數(shù)據(jù)到一個(gè)文件系統(tǒng),它可以是分布式文件系統(tǒng),如HDFS。你可以丟失所有Druid集群的數(shù)據(jù),并快速?gòu)膫浞輸?shù)據(jù)中重新加載。

滾動(dòng)更新

通過滾動(dòng)更新,你可以在不停機(jī)的情況下更新Druid集群,這樣對(duì)用戶就是無感知的。所有Druid版本都是向后兼容。

想了解時(shí)間序列數(shù)據(jù)庫(kù)和對(duì)比,可移步另一篇文章:

時(shí)間序列數(shù)據(jù)庫(kù)(TSDB)初識(shí)與選擇

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“apache druid有什么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI