Doris和Flink在實時數倉實踐
一、Doris簡介
1.1 簡介
Apache Doris是一個現代化的MPP分析型資料庫產品。僅需亞秒級響應時間即可獲得查詢結果,有效地支援實時資料分析。Apache Doris的分散式架構非常簡潔,易於運維,並且可以支援10PB以上的超大資料集。
Apache Doris可以滿足多種資料分析需求,例如固定歷史報表,實時資料分析,互動式資料分析和探索式資料分析等。令您的資料分析工作更加簡單高效!
1.2 架構
想要了解更多doris,可以去官網學習Apache Doris,Flink我也不贅述了,說多了,今天講不完。
我們的業務背景,就是想秒級實時資料呈現。
二、進入正題
2.1 我們的歷史架構
資料量介紹:
a.請求百億級
b.曝光億級
c.點選百萬級
d.其他資料就不說了,我就簡單講哈哈。
2.2 遇到的問題
計算問題:
a. 多表join不易維護
b. sql化還要實現各種udf函式
c. 開發耗時
儲存問題:
a. 寬表需要多流join,還得關聯維度表
b. es不支援join,需要提前加工好寬表
c. es大量聚合查詢效能下降
d. es-sql,計算函式支援不優雅,比如:除法等等
e. es沒有聚合模型,全量寫入會帶來寫入壓力和冗餘資料,需要依託flink視窗預計算來減輕寫入壓力。缺點:flink視窗小,寫入量大帶來資料冗餘和寫入效能差;flink視窗大,寫入資料量會減少,資料時效性差,無法滿足模型訓練秒級別的需求
2.3 解決問題
計算替代思考??
a.多流join,能否在近實時的olap引擎中去做?
b.用olap引擎做能帶給我們什麼價值?
c.web介面服務提供的維度資料如何辦?olap也沒法實時查詢介面服務呀,還有kv記憶體得維度資料,這些都需要flink去擴充。mysql的資料也可以用flink擴充,也可以自己通過指令碼寫入到olap中。
結論:doris可以替代flink做join計算,並且doris的udf函式齊全,自帶colocate join模型(按照相同key分桶,join的時候可以避免網路shuffle)和聚合模型(降低資料量,提升查詢效率),還有好多優勢,我就不多說了,doris真的是個神器。
看上面?這個圖,你就知道doris的優勢了,千萬級資料join,秒級產出,非常贊?。
儲存替代思考??
a.為什麼es不支援join,我們還要去用他?為什麼不能替換?
b.什麼元件替換比較好呢?行業內都在用什麼元件?
總結:直接換成doris,es本身就不適合做olap多維聚合分析,尤其是在join的場景,無法滿足業務需求。
a.計算上olap可以替代部分flink的join任務:
b.兩個kafka流做join,無需關聯kv和介面維度資料,比如點選流+喚起流+mysql維度資訊(多個mysql表),可以直接在doris中做join,無需單獨開發flink去做,複用doris的udf函式。(目前我在doris中都是進行4表join非常方便,千萬級資料join效能在2-3s返回)
c.mysql可以寫個定時任務寫入到doris中
d.hive的維度資料也可以匯入到doris中進行維度關聯。
最後架構:
總結:doris內部做join可以節省開發時間,並且自已維護,不用考慮資料延遲落後的問題。doris內部自帶物化檢視,既可以存明細,也可以實現聚合模型,既方便報表查詢,也方便線上通過明細資料問題排查,同時還方便維護,模型訓練也支援秒級查詢。
為什麼我要all in 這個doris
a.es無法進行join計算
b.druid進行join計算還不夠強大(雖然新版0.18.0本支援了join語法)
c.clickhouse運維複雜(還是長期看好,效能是個亮點)
d.kylin的cube爆炸,計算和管理成本高。
淺談不到位的,還請各位大佬多多指點.
三、業務數倉架構應該具備哪些能力?
a.業務經常變動打法,你的實時資料倉不能構建的太重,需要短時間迭代上線(大家沒有遇到業務提一個需求,一個月時間做完了,業務用了幾次就不用了,還有就是公司改變廣告營銷打法,之前的實時指標可能沒人去看了,打入冷宮了)。
b.你的架構要足夠的輕量化,易維護,同時還得兼顧:明細查詢(線上問題排查),聚合查詢(報表指標呈現)
業務看重的是你支援業務的能力,而不是你花裡胡哨的架構。你要確保業務當天提需求,當天可以完成,你的架構好壞是靠你支援業務的效果來體現,所以適合自己業務的架構,就是好架構。
c.你的架構平時穩只能算及格,你要確保架構在大促和高峰流量來時系統穩定,能不能抗住百億或者千億的流量。
d.不同sla的業務場景設計不同的架構,並不是所有的業務場景都是要求毫秒或者秒級,其實你仔細跟他們聊分鐘級他們也可以接受,不同的sla對你的計算資源成本要求不一樣,適量把控計算資源成本,優秀的工程師都是想辦法給公司省錢,同時還可以圓滿完成任務。
相關文章
- 實時數倉在滴滴的實踐和落地
- 基於 Flink 的實時數倉生產實踐
- Apache Doris 在同程數科數倉建設中的實踐Apache
- BIGO 使用 Flink 做 OLAP 分析及實時數倉的實踐和優化Go優化
- 萬億資料秒級響應,Doris在360數科實時數倉中的優秀實踐
- 網易雲音樂基於Flink實時數倉實踐
- 快手基於 Apache Flink 的實時數倉建設實踐Apache
- Apache Flink X Apache Doris 構建極速易用的實時數倉架構Apache架構
- 快手基於 Flink 構建實時數倉場景化實踐
- 美團點評基於 Flink 的實時數倉建設實踐
- Flink CDC 在大健雲倉的實踐
- 實時數倉混沌演練實踐
- 應用實踐——新東方實時數倉實踐
- 實時數倉構建:Flink+OLAP查詢的一些實踐與思考
- 實時分析全面賦能金融業務,馬上消費基於 Apache Doris 構建實時數倉的實踐Apache
- 幸福裡基於 Flink & Paimon 的流式數倉實踐AI
- Flink Table Store 0.3 構建流式數倉最佳實踐
- 基於 Kafka 的實時數倉在搜尋的實踐應用Kafka
- 位元組跳動資料湖在實時數倉中的實踐
- 微信ClickHouse實時數倉的最佳實踐
- Apache Flink 在移動雲實時計算的實踐Apache
- 萬億資料秒級響應,Apache Doris 在360 數科實時數倉中的應用Apache
- GaussDB(DWS)基於Flink的實時數倉構建
- 基於Flink構建全場景實時數倉
- Flink CDC 系列 - 實現 MySQL 資料實時寫入 Apache DorisMySqlApache
- 快手實時數倉保障體系研發實踐
- 直播預約丨《實時湖倉實踐五講》第三講:實時湖倉在袋鼠雲的落地實踐之路
- 上海久耶基於HBase實時數倉探索實踐
- Flink SQL 在快手的擴充套件和實踐SQL套件
- 農業銀行湖倉一體實時數倉建設探索實踐
- Flink 流批一體方案在數禾的實踐
- 基於 Hologres+Flink 的曹操出行實時數倉建設
- 基於Hologres+Flink的曹操出行實時數倉建設
- Flink 在有贊實時計算的實踐
- Flink在唯品會的實踐
- 複雜查詢響應速度提升10+倍,度言軟體基於 Apache Doris 實時數倉建設實踐Apache
- 位元組跳動基於Doris的湖倉分析探索實踐
- Apache Doris 輕鬆入門和快速實踐Apache