日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

文章目錄
  • 基于 IOTA 架構的秒算引擎如何設計?
  • 數據處理性能提升 200% 秒算引擎 2.0 如何優化?
  • 開放技術,擁抱開源

聲明:本文來自于微信公眾號 Analysys易觀(ID:enfodesk),作者:黃顯東,授權轉載發布。

近年來,大數據技術發展迅速,從過去的 Hive、Spark,到現在的 Flink、ClickHouse、Iceberg 等,各種大數據技術推陳出新,不斷演進大數據存儲和引擎系統的架構,來適應大數據時代的海量數據處理需求。

大數據

而隨著技術的更迭,每次架構演進都需開發人員重構一次業務代碼,既耗費了開發人員的精力,又會影響數據處理的效率。另外,在 PB 級數據體量下,開發人員還面臨數據秒級處理與數據準確兼顧的挑戰。

為此,易觀基于 IOTA 架構思想設計出秒算引擎架構,以解決開發人員在數據處理上遇到的難題,并提升數據處理效率與質量。那可以秒級查詢響應的秒算引擎是如何設計的呢?易觀 CTO 郭煒與易觀架構師高俊,給出了詳細的分析和解讀。

基于 IOTA 架構的秒算引擎如何設計?

秒算引擎是一個用戶行為分析的數據解決方案,包含數據接收、數據實時處理、數據冷熱存儲和 OLAP 分布式 SQL 查詢引擎,基于下一代 IOTA 架構設計,可針對各種業務場景進行快速分析查詢。

1.jpg

基于IOTA架構,支持引擎快速升級

整體架構上,通過 SDK 在設備端將采集的數據轉化成統一的數據模型,然后傳送到秒算引擎中。秒算引擎分為臨時存儲、歷史存儲和查詢引擎,由查詢引擎將臨時數據和歷史數據合并,并提供統一的查詢接口供用戶查詢。

架構以統一的數據模型貫穿始終,秒算引擎內部模塊支持熱插拔,可以保持前端查詢引擎不變的情況下,將存儲引擎個性化更換。

數據模型采用高度抽象的主謂賓數據模型,既能規范各端數據格式,又具有通用性和擴展性,解決了傳統非結構化數據在結構化存儲時帶來的數據質量問題。秒算引擎還可實時處理用戶上報的數據并入庫,并立即和歷史數據一起被分析計算。

除此之外,秒算引擎中數據表的表結構是由收到的真實數據動態生成,用戶可以隨時上報自己感興趣的數據和字段,解決了過去分析系統 Schema 維護難的問題。還具有熱數據自動 Dump 到磁盤、磁盤上的小文件自動 Merge、支持多種數據源的數據統一查詢分析等特點。

數據處理性能提升 200% 秒算引擎 2.0 如何優化?

 一、實時數據緩沖層架構升級

秒算引擎中,歷史數據都保存在 Hive 中,不過 HDFS 文件對追加寫的支持不友好,需要將最近一段時間內上報的數據暫時存儲在支持高吞吐、低延遲寫入更新的數據庫中。當數據量達到一定的閥值時,由秒算的后臺線程將數據 Dump 到 Hive 中。整個過程,通過 Presto 的視圖來保證 Hive 中的數據和實時緩沖層的數據同時參與分析計算。

2.jpg

Kudu引擎“透明”替換,數據處理性能數倍提升

由于單一的技術方案無法應對越來越差異化的需求場景,在秒算引擎 2.0 中抽象了 Buffer 層,以實現快速的切換新的緩沖層數據庫,同時也讓秒算引擎擁有更好的擴展性。秒算 2.0 通過采用 Kudu 替換 Hbase,數據處理的消費性能和持久化性能分別分別提升 200% 和 300%。

 二、智能虛擬分桶

秒算引擎 1.0 中用戶上報的事件在 Hive 中是以用戶 id 和事件發生時間排序后保存的,保證同一個用戶的行為數據在磁盤上是連續的,可以減小查詢時的磁盤尋址時間。同一個用戶的行為數據按事件發生的時間做好排序,這樣在漏斗等分析場景下可以優化排序的時間,提升查詢性能。

不過,大部分產品在版本的迭代中會產生很多的事件,有些事件是核心事件,經常需要參與分析查詢。還有些事件日常的分析場景使用不多,但會產生大量的事件數據,比如熱圖事件,如果把這類事件的數據和核心事件的數據放到一起,會影響到核心事件的查詢性能。

3.jpg

核心數據和行為數據隔離,提升數據分析查詢性能

因此,秒算引擎 2.0 中新增了智能虛擬分桶這一特性,通過智能虛擬分桶,可以將核心數據和行為數據隔離。借助這一特性,可以將核心事件放到同一個桶中,非核心的事件放到其它桶中,這樣便可以提升數據分析查詢的性能。

智能虛擬分桶主要分為以下一個步驟:首先是智能生成分桶策略。其次根據分桶策略,在數據從 Buffer 層 Dump 到 HDFS 時,將對應的事件數據放到該事件的分桶文件中。最后是查詢引擎根據查詢涉及的事件讀取該事件對應的 HDFS 文件。

 三、優化查詢計劃

秒算引擎的一部分最新數據保存在 Buffer 中,歷史數據保存在 Hive 中,通過使用了 Presto 的視圖功能來同時查詢 Buffer 和 Hive 中的數據,在視圖里 Union all 不同存儲庫里的表,來提供統一的查詢能力。

但在使用過程中,Union all 的兩個子查詢可能有不同的過濾條件,會導致 Presto 在處理 Union all 時的執行計劃和查詢單表的執行計劃不一樣。所以 Presto 查詢引擎針對 Union all 的場景需要先將 Union all 兩邊的數據都讀出來,之后再在上層做 Where 條件的過濾。

4.jpg

修改Presto執行計劃,提升秒算查詢性能

不過,如果 Union all 兩邊子查詢的過濾條件本身一樣,或者沒有過濾條件,那就可以將這個視圖的查詢當成查詢單表來處理的,即直接將 Where 條件下推到執行計劃的 Source 階段。

基于此認知,秒算引擎 2.0 修改了 Presto 的執行計劃,專門針對這一點做了優化,提升了秒算的查詢性能。同時針對 Presto 的優化,也已經反饋給 Presto 社區,通過社區為更多的人提供支持和幫助。

基于通用性、可二次開發的底層架構,秒算 2.0 引入了分池(Pool)查詢。分池查詢支持復雜長查詢和短查詢分開運行,保證在高并發訪問與查詢數據量大時,普通查詢不會被一個復雜長查詢阻塞。

5.jpg

引入分池(Pool)查詢,解決大查詢困擾

開放技術,擁抱開源

在易觀多年的技術開發過程中,開源是基本的技術價值觀。在 2019 年 8 月,易觀自主研發的分布式任務調度引擎 DolphinScheduler 通過了 Apache 軟件基金會的投票決議,正式成為 Apache 孵化器項目。

DolphinScheduler 是一個分布式、去中心化、易擴展的可視化 DAG 工作流任務調度系統,致力于解決數據處理流程中錯綜復雜的依賴關系,使調度系統在數據處理流程中開箱即用。易觀希望通過開源的方式,讓更多的人參與到大數據的生態建設中來。

目前,秒算引擎也計劃逐步開源,通過開源將秒算的能力開放給更多需要的人,為更多的企業和開發者提供簡單易用的服務。同時,也為技術社區的發展添磚加瓦,履行易觀數據能力平民化的使命。

分享到:
標簽:大數據 架構設計 大數據時代
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定