傳統數據基礎架構 傳統單體數據架構最大的特點便是集中式數據存儲,大多數分為計算層和存儲層。 存儲層,主要是負責存儲企業各種系統產生的數據,如 Web 業務系統、訂單系統、CRM 系統,ERP 系統、監控系統,數據比如系統的訂單交易量,網站的活躍用戶數,每個用戶的交易額。 所有的操作均需要藉助於同一套 ...
傳統數據基礎架構
傳統單體數據架構最大的特點便是集中式數據存儲,大多數分為計算層和存儲層。
存儲層,主要是負責存儲企業各種系統產生的數據,如 Web 業務系統、訂單系統、CRM 系統,ERP 系統、監控系統,數據比如系統的訂單交易量,網站的活躍用戶數,每個用戶的交易額。
所有的操作均需要藉助於同一套資料庫實現。
單體架構初期效率很高,但是隨著時間的推移,業務越來越多,上線迭代很快。
但隨著後期業務越來越多,系統逐漸變的臃腫。資料庫變成了唯一准確的數據源,每個應用都需要訪問資料庫來獲取對應的數據,如果資料庫發生改變或者出現問題,整個業務系統都會受到影響。
微服務架構
微服務將系統拆分成不同的獨立服務模塊,每個模塊有自己獨立的資料庫,不同的業務之間互相不幹擾,微服務架構解決了業務系統拓展性的問題,但是隨之也帶來了新的問題。
就是業務數據過於分散在不同的系統中,很難將數據集中化管理。對於企業內部數據倉庫,數據挖掘之類的應用,需要把各個業務系統資料庫數據抽取到數據倉庫之中,在數據倉庫中進行數據的抽取、轉換、載入(ETL),從而構建不同的數據集市應用,提供給業務系統用。
大數據數據架構
起初,數據是構建在關係型資料庫之上,但隨著企業數據量的暴增,關係型資料庫已經無法支撐起大規模數據集的存儲和分析,於是基於HADOOP構建企業級大數據平臺便成為了共識。
後來,離線的高延遲漸漸的無法滿足企業需求,例如一些時間要求比較高的應用,實時報表統計,需要非常低的延時展示結果。為此業界提出一套lambda架構方案來處理不同類型的數據。
包含了批量計算的 Batch Layer和實時計算的 Speed Layer,通過在一套平臺中,將批計算和流計算結合在一起。
lambda 架構是構建大數據應用程式的一種很有效的解決方案,但還不是最完美的方案
有狀態流式架構
數據產生的本質,其實是一條條真實存在的事件,而前面講的不同的架構所用到的技術,如hadoop,spark,多少都在一定程度上違背了這種本質,需要在一定延時的情況下對業務數據進行處理。
而有狀態的流計算架構,基於實時的流式數據,維護所有計算過程的狀態,所謂狀態就是計算過程中產生的所有中間計算結果,每次計算新的數據進入到流式系統中都是基於中間狀態結果的基礎上進行計算,最終產生正確的統計結果。
這種架構好處是,不需要從原始數據重新從外部存儲中拿出來,從而進行全量計算;另外用戶也無需協調各種批量計算工具,從數據倉庫中獲取統計結果,然後再落地存儲,這些操作全部都可以基於流式操作來完成