大多數傳統的數據倉庫都是建立在Hadoop之上的。這種傳統的倉庫盤點技術帶來了近乎無限的橫向擴展能力,但也造成了傳統倉庫盤點技術效率低下的缺陷。效率低下主要體現在以下幾個方面。
部署效率低:必須在部署Hive/HBase/Kylin之前部署Hadoop集群。相比傳統數據庫,這種部署效率是非常低效的。
運維效率低:Hive/HBase/Kylin基於Hadoop,Hadoop生態系統會帶來非常嚴重的單點故障,即Hadoop系統中的任何壹個組件都可能導致整個系統不可用。使用傳統倉庫對運維要求非常高。
計算效率低:主要體現在Hive和Kylin,這兩個數據倉庫沒有自己的存儲引擎和計算引擎,導致Hive和Kylin只能依靠堆機來實現復雜的查詢,而不能從數據本身出發。大數據後期,壹些專門為快速數據查詢設計的數據存儲格式成為標準,這種現象有所改變。HBase的優化核心是重新設計的存儲引擎,使HBase能夠優化數據本身的查詢速度。
02,高延遲
基於Hadoop構建的倉庫引擎不僅效率低下,還面臨著高延遲的挑戰。高延遲主要體現在以下幾個方面。
高查詢延遲:Hive作為數據倉庫,受限於HDFS的性能瓶頸。Hive的查詢速度較慢,難以支持低延遲場景,無法應用於實時計算場景。
寫數據延遲高:同樣受到HDFS的限制,Hive的數據寫延遲也很高,這意味著數據無法實時寫入Hive,因此無法支持實時分析場景。
03、成本高
傳統的點倉引擎也會帶來高成本的挑戰,主要表現在以下幾個方面。
部署成本高:由於Hadoop的計算邏輯通過堆集計算資源來攤銷復雜查詢的時間,如果需要達到壹個理想的性能,就必須要求集群中的節點數量達到壹定的規模,否則由於計算效率低,單機很容易成為性能瓶頸。這就導致了Hive等基於Hadoop的倉庫部署成本很高。
運維成本高:集群服務器達到壹定規模後,運維成本會成倍增長。同時,由於Hadoop中組件太多,任何壹個組件的故障都可能導致整個服務的不可用,所以運維團隊必須包括所有組件的運維人員,否則運維團隊可能無法很好地執行任務。這也大大增加了運維團隊的人力成本。
存儲成本高:為了避免集群中服務器故障導致的不可用,Hadoop的HDFS默認使用三份拷貝策略存儲數據,即數據會被保存為三份拷貝。這樣會大大增加存儲成本。即使新壹代Hadoop采用了EC糾刪碼技術來減少副本數量,但其有限的使用場景只適用於冷數據存儲,而不適用於需要頻繁查詢的熱數據。
決策成本高:由於傳統大數據部署成本高,企業在決策時面臨相對較大的決策成本。壹方面是前期投入太大,短期看不到效果,長期效果如何也很難說清楚。另壹方面,即使企業下定決心要建幾個倉庫,昂貴的基礎設施和專業技術人員的缺乏也會導致建設周期較長,帶來很多不可預測的變數,最終影響企業的決策。