現(xiàn)狀和需求
大量的企業(yè)經(jīng)營性數(shù)據(jù)(訂單,庫存,原料,付款等)在企業(yè)的業(yè)務(wù)運營系統(tǒng)以及其后臺的(事務(wù)型) 數(shù)據(jù)庫 中產(chǎn)生的。
企業(yè)的決策者需要及時地對這些數(shù)據(jù)進行歸類分析,從中獲得企業(yè)運營的各種業(yè)務(wù)特征,為下一步的經(jīng)營決策提供數(shù)據(jù)支撐。
困難
對數(shù)據(jù)的歸類分析往往涉及到對多張數(shù)據(jù)庫表數(shù)據(jù)的同時訪問,即需要同時鎖住多張可能正在被不同事務(wù)更新的表單。這對業(yè)務(wù)繁忙的數(shù)據(jù)庫系統(tǒng)來說可能是一件非常困難的事情。
一方面很難把多張表同時鎖住,造成復(fù)雜查詢的時延增加。
另一方面如果鎖住了多張表,又會阻擋數(shù)據(jù)庫表單更新的事務(wù),造成業(yè)務(wù)的延時甚至中斷。
解決方案
數(shù)據(jù)倉庫 主要適用于企業(yè)數(shù)據(jù)的關(guān)聯(lián)和聚合等分析場景,并從中發(fā)掘出數(shù)據(jù)背后的商業(yè)情報供決策者參考。這里的數(shù)據(jù)發(fā)掘主要指涉及多張表的大范圍的數(shù)據(jù)聚合和關(guān)聯(lián)的復(fù)雜查詢。
使用數(shù)據(jù)倉庫,通過某個數(shù)據(jù)轉(zhuǎn)換(ETL)的過程,業(yè)務(wù)運營數(shù)據(jù)庫的數(shù)據(jù)可以被拷貝到數(shù)據(jù)倉庫中供分析計算使用。同時支持把多個業(yè)務(wù)運營系統(tǒng)的數(shù)據(jù)匯集到一個數(shù)據(jù)倉庫中。這樣數(shù)據(jù)可以被更好地關(guān)聯(lián)和分析,從而產(chǎn)生更大的價值。
數(shù)據(jù)倉庫一般來說采用了一些和標準的面向事務(wù)的數(shù)據(jù)庫(Oracle,MS SQL Server,MySQL等)不一樣的設(shè)計,特別是針對數(shù)據(jù)的聚合性和關(guān)聯(lián)性做了特別的優(yōu)化,有些時候為了這些優(yōu)化甚至可能會犧牲掉一些標準數(shù)據(jù)庫的事務(wù)或者數(shù)據(jù)增刪改的功能或者性能。因此,數(shù)據(jù)倉庫和數(shù)據(jù)庫的使用場景還是有所不同的。事務(wù)型數(shù)據(jù)庫專注于事務(wù)處理(企業(yè)的業(yè)務(wù)運營),而數(shù)據(jù)倉庫更擅長于復(fù)雜的數(shù)據(jù)分析。各司其職,互不干擾。簡單一句話可以把它理解為,數(shù)據(jù)庫主要負責數(shù)據(jù)更新,數(shù)據(jù)倉庫主要負責數(shù)據(jù)分析。