當前位置:網站首頁>一篇文章搞懂數據倉庫:數據倉庫架構-Lambda和Kappa對比

一篇文章搞懂數據倉庫:數據倉庫架構-Lambda和Kappa對比

2022-01-27 09:21:41 張家的魚擺擺

在介紹Lambda和Kappa架構之前,我們先回顧一下數據倉庫的發展曆程: 傳送門-數據倉庫發展曆程

寫在前面

咳,隨著數據量的暴增和數據實時性要求越來越高,以及大數據技術的發展驅動企業不斷昇級迭代,數據倉庫架構方面也在不斷演進,分別經曆了以下過程:早期經典數倉架構 > 離線大數據架構 > Lambda > Kappa > 混合架構。
在這裏插入圖片描述
ps.錶中舉例若有不當,歡迎指正

在這裏插入圖片描述

Lambda

Lambda架構原理

Lambda架構的核心思想是把大數據系統拆分成三層:Batch Layer,Speed Layer和Serving Layer。其中,Batch Layer負責數據集存儲以及全量數據集的預查詢。Speed Layer主要負責對增量數據進行計算,生成Realtime Views。Serving Layer用於響應用戶的查詢請求,它將Batch Views和Realtime Views的結果進行合並,得到最後的結果,返回給用戶,如下圖
在這裏插入圖片描述

Lambda架構的缺點

Lambda架構解决了大數據量下實時計算的問題,但架構本身也存在一定缺點。

實時與批量計算結果不一致引起的數據口徑問題:因為批量和實時計算走的是兩個計算框架和計算程序,算出的結果往往不同,經常看到一個數字當天看是一個數據,第二天看昨天的數據反而發生了變化。
批量計算在計算窗口內無法完成:在IOT時代,數據量級越來越大,經常發現夜間只有4、5個小時的時間窗口,已經無法完成白天20多個小時累計的數據,保證早上上班前准時出數據已成為每個大數據團隊頭疼的問題。
開發和維護的複雜性問題:Lambda 架構需要在兩個不同的 API(application programming interface,應用程序編程接口)中對同樣的業務邏輯進行兩次編程:一次為批量計算的ETL系統,一次為流式計算的Streaming系統。針對同一個業務問題產生了兩個代碼庫,各有不同的漏洞。這種系統實際上非常難維護
服務器存儲大:數據倉庫的典型設計,會產生大量的中間結果錶,造成數據急速膨脹,加大服務器存儲壓力。

Kappa

Kappa架構原理

Kappa架構的核心思想包括以下三點:

1.用Kafka或者類似的分布式隊列系統保存數據,你需要幾天的數據量就保存幾天。
2.當需要全量重新計算時,重新起一個流計算實例,從頭開始讀取數據進行處理,並輸出到一個新的結果存儲中。
3.當新的實例做完後,停止老的流計算實例,並把老的一些結果删除。
在這裏插入圖片描述在Kappa架構下,只有在有必要的時候才會對曆史數據進行重複計算,並且實時計算和批處理過程使用的是同一份代碼。

Lambda架構和Kappa架構優缺點對比

在這裏插入圖片描述

小結

1.Lambda 將全量曆史數據和實時增量數據合並輸出。
2.Kappa 兩個流協作輸出,queries每次使用最新一個流處理結果

數倉系列傳送門:https://blog.csdn.net/weixin_39032019/category_8871528.html
轉載於:https://blog.csdn.net/weixin_39032019/article/details/110790403

版權聲明
本文為[張家的魚擺擺]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201270921407604.html

隨機推薦