如果采用壹種基於列存儲的模式,由於查詢中的選擇規則是通過列來定義的,因此整個數據庫是自動索引化的。按照列存儲每個字段的數據聚集存儲,可以動態增加,並且列為空就不存儲數據,節省存儲空間。每個iduan 的數據按照聚集存儲,能大大減小讀取的數據量,查詢時的命中率就會提高,使查找更為直接,無需考慮分庫]分表,來提高命中率、減少IO等瓶頸。
Hbase數據庫支持數據自動切分存儲,並支持高並發讀寫操作,使得海量數據存儲自動具有更強的擴展性。
Hadoop 本身就支持通過JDBC 從數據庫中抽取數據。大部分數據庫系統有批量導出、導入功能。無論是哪種情況,將整個數據庫中的數據經常性地或者以增量的方式導入到Hadoop 中來都是很容易的。由於數據庫系統存儲的數據減少,數據庫系統的軟件授權成本也會得到降低。圖1是Hadoop 與關系型數據庫協同處理計算任務的應用場景。其中,關系型數據庫系統用來處理實時數據,從而保證交易過程中的數據壹致性。如果要求同壹個數據庫系統從
大容量數據中生成復雜的分析報表是極其耗費計算資源的,降低了系統的性能和其處理實時數據工作的能力。
Hadoop 被設計用來存儲海量數據、按任意方式處理海量數據以及按需向任意系統傳遞數據。數據可以經常性地從關系型數據庫系統導出到Hadoop 中,關系型數據庫系統可以經過調整,專門用來處理交互式任務,而復雜的分析工作就可以按離線的方式交由Hadoop 來完成,對實施系統沒有任何影響。