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