Lambda架構與Kappa架構 區別

 

 

Lambda 架構:

Lambda 架構總共由三層系統組成的:批處理層(Batch Layer),速度處理層(Speed Layer),以及用於響應查詢的服務層(Serving Layer)。

 

 

 

批處理層:
使用可處理大量數據的分佈式處理系統預先計算結果。它通過處理所有的已有歷史數據來實現數據的準確性。這意味着它是基於完整的數據集來重新計算的,能夠修復任何錯誤,然後更新現有的數據視圖。輸出通常存儲在只讀數據庫中,更新則完全取代現有的預先計算好的視圖。

速度層:
通過提供最新數據的實時視圖來最小化延遲。速度層所生成的數據視圖可能不如批處理層最終生成的視圖那樣準確或完整,但它們幾乎在收到數據後立即可用。而當同樣的數據在批處理層處理完成後,在速度層的數據就可以被替代掉了。

總結:

批處理層保證數據的完整性和準確性,速度層保證數據的時效性,但是缺點是需要維護兩套邏輯代碼,維護較複雜,有沒有可能在批處理中實現實時計算,或者在實時處理中實現批處理計算呢?於是就有了下面的kappa架構。

Kappa架構:

 

 

 

與 Lambda 架構不同的是,Kappa 架構去掉了批處理層這一體系結構,而只保留了速度層。你只需要在業務邏輯改變又或者是代碼更改的時候進行數據的重新處理。

借用kafka的架構來說明kappa架構:

kafka可以通過設置來決定數據的保留時長,七天、一個月、或者永久保留,且kafka是通過offset來決定從哪裏讀取數據,因此當我們的業務邏輯改變時,需要從新讀取所有歷史數據時,只需要把offset設置爲0即可。

總結:

1、如果你所面對的業務邏輯是設計一種穩健的機器學習模型來預測即將發生的事情,那麼你應該優先考慮使用 Lambda 架構,因爲它擁有批處理層和速度層來確保更少的錯誤。

2、如果你所面對的業務邏輯是希望實時性比較高,而且客戶端又是根據運行時發生的實時事件來做出迴應的,那麼你就應該優先考慮使用 Kappa 架構。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章