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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

介绍一下Druild,并从Twitter大数据团队分析如何应用 Druid 分析 ZB 级实时数据?

發布時間:2024/2/28 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 介绍一下Druild,并从Twitter大数据团队分析如何应用 Druid 分析 ZB 级实时数据? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

或許很多同學都還沒有用過Druid,那么我們先簡單介紹一下Druid,然后由淺入深的進行分析!

Druild

Druid 是一個用于大數據實時查詢和分析的高容錯、高性能開源分布式系統,旨在快速處理大規模的數據,并能夠實現快速查詢和分析。尤其是當發生代碼部署、機器故障以及其他產品系統遇到宕機等情況時,Druid 仍能夠保持 100% 正常運行。
官網地址:https://druid.apache.org/

基本特點

Apache Druid 具有以下特點:

1.亞秒級 OLAP 查詢,包括多維過濾、Ad-hoc 的屬性分組、快速聚合數據等等。
2.實時的數據消費,真正做到數據攝入實時、查詢結果實時。
3.高效的多租戶能力,最高可以做到幾千用戶同時在線查詢。
4.擴展性強,支持 PB 級數據、千億級事件快速處理,支持每秒數千查詢并發。
5.極高的高可用保障,支持滾動升級。

應用場景

實時數據分析是 Apache Druid 最典型的使用場景。該場景涵蓋的面很廣,例如:

1.實時指標監控
2.推薦模型
3.廣告平臺
4.搜索模型

這些場景的特點都是擁有大量的數據,且對數據查詢的時延要求非常高。在實時指標監控中,系統問題需要在出現的一刻被檢測到并被及時給出報警。在推薦模型中,用戶行為數據需要實時采集,并及時反饋到推薦系統中。用戶幾次點擊之后系統就能夠識別其搜索意圖,并在之后的搜索中推薦更合理的結果。

Apache Druid 架構

Apache Druid 擁有優秀的架構設計,多個組件協同工作,共同完成數據從攝取到索引、存儲、查詢等一系列流程。

下圖是 Druid 工作層(數據索引以及查詢)包含的組件。

Druid工作層

Realtime 組件負責數據的實時攝入。

Broker 階段負責查詢任務的分發以及查詢結果的匯總,并將結果返回給用戶。

Historical 節點負責索引后的歷史數據的存儲,數據存儲在 deep storage。Deep storage 可以是本地,也可以是HDFS 等分布式文件系統。

Indexing service 包含兩個組件(圖中未畫出)。

Overlord 組件負責索引任務的管理、分發。

MiddleManager 負責索引任務的具體執行。

下圖是 Druid segments(Druid 索引文件)管理層所涉及的組件。

Zookeeper 負責存儲集群的狀態以及作為服務發現組件,例如集群的拓撲信息、overlord leader 的選舉、indexing task 的管理等等。
Coordinator 負責 segments 的管理,如 segments 下載、刪除以及如何在 historical 之間做均衡等等。
Metadata storage 負責存儲 segments 的元信息,以及管理集群各種各樣的持久化或臨時性數據,例如配置信息、審計信息等等。


在Twitter的團隊中,為了提高大數據系統的性能,部署規模,和信息安全,Twitter 大數據團隊對 Presto 和 Druid 進行了大量的改進與優化,包括 Presto Druid Connector、Aggregation and Predicate Pushdown、LDAP 為基礎的數據授權和安全保護、Druid Native Indexing 以及利用緩存對 Druid 性能的提升。

Twitter大數據團隊羅震霄老師表示:

Twitter 用 Druid 已經有一年多了,從 0.15 到 0.17,這幾個版本都比較穩定,

Twitter 用 Druid的主要的變化

設計并實現了 Native Ingestion,徹底擺脫了對 MapReduce 的依賴,可以直接 Ingest Parquet,ORC
文件。 Data Ingestion 設計了 Indexer Process。 SQL 功能持續加強。 方便易用的用戶界面。 更全面的
Security and Privacy Support,例如 LDAP Authentication and Authorization。

Druid 的主要特點是性能快,規模大,易用性好。

性能可以達到 1 秒以下,真正實現了大數據的實時性計算; Druid 單群可以擴展至 2000
臺節點以上,很好的滿足了企業對大數據規模的要求; Druid 的用戶界面非常友好,用戶常常可以通過拖拖拽拽進行查詢,方便非技術類人員的應用。

Twitter 業務有很多實時的大數據需求,我們當時對比了市場上現有的開源方案,在穩定性、擴展性、性能和易用性方面 Druid 都有一定優勢,最后選擇 Druid。目前來看公司上下對 Druid 還比較滿意。

Twitter 所有的 user events 都通過內部 Message Queue 導入 Druid,用戶可以實時對 Druid 進行查詢,也可以在 Druid 基礎上設置各類的監控和提醒。實時監控很好的利用了 Druid 性能快和方便查詢的特性。

Twitter 內部 Druid

Twitter 內部用 Druid 很多,有三大類:其一,將用戶行為數據導入 Druid,進行實時用戶行為分析;其二,通過 Druid 為廣告商提供實時的廣告效果分析;其三,利用 Druid 的實時特性,做實時監控和實時報表。

Druid 需要自己的存儲,可以將 Message Queue 同時導入離線系統和實時系統(Druid)。
如果對一些數據經過濾后有實時的計算需求,也可以通過 Hadoop Distributed File System 將數據導入 Druid。

一般來說,企業的 Message Queue 可以共享,Hadoop Distributed File System 也可以作為 Druid 的數據源進行共享。

Twitter 現在正在開發 Presto Druid Connector,通過 Presto 實時查詢 Druid 數據,這樣企業內部的查詢語言,查詢系統也可以共享。

因為 Twitter 數據分析大多數是通過 SQL 進行的。公司上下對 SQL on Druid 的需求很高。
現有的 DruidSQL 功能不太完善,SubQuery、Join 都不支持。如果將 Druid 數據再導入其他存儲系統,不僅費時費力,而且很難保證數據的一致性。基于這些考慮,我們決定開發 Presto Druid Connector,用 Presto 對 Druid 數據提供完整的 SQL 分析,避免了數據重復,節省了存儲空間,而且還可以利用 Presto Connector 的優勢,跨平臺進行 Join 操作,比如,Join Hadoop Data with Druid Data。

現在有一些用戶在使用 Presto Druid Connector,大家還是比較滿意的。下一步,我們會進一步提升性能,pushdown 各類子運算到 Druid。最終的愿景是爭取將所有的 SQL 操作統一到 Presto 上來。

為了性能的提升,Druid 需要自己的存儲。對 Twitter 而言,查詢速度,和系統的易用性,較之存儲空間,更為重要。

Druid 需要做自己的存儲的原因是

Druid 一個重要的設計目標是實時查詢,也就是查詢延遲一定要在 1 秒以下。
現有硬件的基本性能決定,從內存中順序讀取 4GB 數據的延時在 1 秒左右,實際應用場景中,我們處理的數據遠遠大于 4GB,所以,沒有索引,僅僅靠掃描文件,是不可能達到實時查詢要求的。
基于這些考慮,Druid 設計并實現了自己的存儲格式,主要是列式存儲,并應用字典、RLE 等方式進行優化。
Druid 還設計了 bitmap 索引。在實際應用中,bitmap 索引會以 mmap 方式放在內存中。絕大多數查詢可以通過 bitmap 索引直接找到結果,少數查詢會通過列式存儲進行有選擇性的文件查詢。
我們也在開發一些項目,盡量減少不必要的數據重復。比如 Presto Druid Connector,通過 Presto 實時查詢 Druid 數據,這樣當用戶需要對 Druid 數據進行 SQL 分析時,用 Presto 就可以了,不必要拷貝數據。

Druid 相對OLAP平臺有何優勢

現有的 OLAP 平臺比較多,開源方面,有 Hive、 Impala、Spark、Presto、Drill、Druid、Pinot 等等。Twitter 現在的技術布局:對實時計算,統一于 Druid,對秒級到幾十分鐘級的數據分析,統一于 Presto,對小時級別的 ETL,統一于 Spark。Druid 主要的優勢在性能,穩定性,擴展性,和易用性。能夠達到 1 秒以下的實時引擎,只有 Druid 和 Pinot,如果考慮到擴展性和穩定性,Druid 的優勢比較明顯。

在 Twitter 里,關于 Druid 的開發功能

主要是四個方面: 對 Thrift 文件格式的支持,Twitter 內部有大量的 Thrift 文件。
Presto Druid Connector,通過 Presto 對 Druid 數據進行 SQL 分析。
Multi-tenancy Druid,Druid支持不同的用戶類型,包括數據安全,隱私保護,和數據隔離。
Native Ingestion,擺脫對 MapReduce 的依賴,直接導入Parquet 文件。

未來,Twitter 還計劃對 Druid 開發或加強哪些功能

主要有以下計劃:

Unified Indexing Service,為用戶提供方便的一鍵式導入。 Secure Druid,完整的 Druid 信息安全,包括
LDAP Authentication and Authorization。 Pushdown for Presto Druid
Connector,用 Presto 為 Druid 提供完整的 SQL 分析,并充分發揮 Druid 的性能優勢,包括 Predicate
Pushdown, Aggregation Pushdown,Limit Pushdown。

補充前沿知識,充實職業生涯!

參考資料:阿里云,info

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的介绍一下Druild,并从Twitter大数据团队分析如何应用 Druid 分析 ZB 级实时数据?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。