下面這些東西是轉載自demo@virushuo的,不過(guò)原站登不上去,這些是百度的快照.沒(méi)有告訴demo@virushuo希望不要罵偶,不同意偶轉的話(huà)通知下偶,呵呵.
最近,因為某些原因,接觸了一些數據倉庫的東西,整理了一下思路,胡亂寫(xiě)寫(xiě)。決不抄概念,就說(shuō)我的理解。
首先說(shuō)數據倉庫。數據倉庫是一種專(zhuān)門(mén)用來(lái)輔助決策分析的數據庫。其數據量一般比較大,數據來(lái)源比較多,也許是數據庫,也許是文件,總之,就是能用到的所有信息,甚至包括歷史信息,都在這里保存。為什么要保存這么多?就是為了用來(lái)做復雜的分析和決策。
數據倉庫有了,需要裝入數據。前面說(shuō)數據來(lái)源比較多,這句話(huà)說(shuō)得很簡(jiǎn)單,但事實(shí)上,很復雜。因為,企業(yè)可能會(huì )有很多現存的數據庫系統,甚至是一些excel表格,沒(méi)準文本文件也有。這些格式,接口各不相同的數據,如何變成符合數據倉庫模型的數據,并裝入這個(gè)數據倉庫,實(shí)在是個(gè)問(wèn)題。
于是,ETL出現了。ETL就是數據抽?。‥xtract)、轉換(Transform)、清洗(Cleansing)、裝載(Load)的過(guò)程。一般來(lái)說(shuō),這是一個(gè)工具。也許每個(gè)程序員都有“倒庫”的經(jīng)驗,這是個(gè)常見(jiàn)的動(dòng)作,甚至你換了論壇的數據庫,都需要做一次這個(gè)工作。這,似乎可以算作最簡(jiǎn)單的ETL。當然,ETL是比復雜得多過(guò)程,而且,應該為客戶(hù)提供一個(gè)ETL工具,支持腳本也是必要的。這樣,用戶(hù)就可以定期或實(shí)時(shí)將數據庫的數據抽取到數據倉庫中,用戶(hù)數據就是這樣裝載進(jìn)來(lái)的。
數據有了,下面做什么?用戶(hù)如果只是需要簡(jiǎn)單的查詢(xún),那當然簡(jiǎn)單,不過(guò)如果這樣,也就用不著(zhù)數據倉庫了。使用數據倉庫,一定是要進(jìn)行復雜的決策分析。比如說(shuō),銷(xiāo)售額,時(shí)間,人員,產(chǎn)品種類(lèi),銷(xiāo)售渠道,要用這些屬性進(jìn)行匯總分析,這就是2維的報表和查詢(xún)難以實(shí)現的了。那么,OLAP出場(chǎng)。OLAP(聯(lián)機數據分析),OLAP一般是建立一個(gè)計算模型,然后把大量的數據轉化為多維數據,保存在一個(gè)多維數據庫中。這就不需要每次都要重新計算了,速度也快多了。事實(shí)上,如果不怕速度慢,不厭其煩,不怕計算復雜,不使用OLAP,都自己計算,也不是不可能,不過(guò),這何必呢?
這些都完成了,最后做什么?數據展現。一切都要以客戶(hù)的眼睛為準。用戶(hù)說(shuō)不好看,說(shuō)不好用,你的系統再NB,你也死定了。所以,數據占現是非常重要的。其實(shí),數據展現也就是報表,只不過(guò),要具有展現復雜數據的能力,速度還不能太慢。切換維度也要方便。
概念都說(shuō)完了,那么,一個(gè)數據倉庫的工作過(guò)程,大概就是:數據倉庫建模,ETL,OLAP,展現。大部分項目中,最重要的過(guò)程是ETL。畢竟,這個(gè)事情千變萬(wàn)化,可能會(huì )因為用戶(hù)的現存系統,導致非常復雜的情況。也會(huì )耗費大量的時(shí)間。其次重要的,我認為應該算數據展現,剛才說(shuō)了,好系統的意思不是技術(shù)高明的系統,而是用戶(hù)說(shuō)好的系統。所以,強大不強大放在一邊,先搞漂亮再說(shuō)。(就憑這一點(diǎn),oracle就應該出局了)。大部分項目中,其實(shí)OLAP是很可以偷工減料的,大部分客戶(hù),其實(shí)并不需要OLAP這么復雜,只不過(guò),因為某些目的(把項目搞大,騙投資,廠(chǎng)商蠱惑,顯示自己牛),非說(shuō)要OLAP。事實(shí)上他們的數據維度和數量,遠遠達不到,可能幾年都未必能達到。那么。。。偷工減料吧!作項目,省點(diǎn)是點(diǎn)。
看完了本文,你未必學(xué)到了什么東西,但是,至少你應該學(xué)會(huì )吹牛。我堅信,國內80%的項目,其實(shí)根本用不到這么復雜的東西。你只要能應付好,其實(shí)都可以簡(jiǎn)單搞定。
聯(lián)系客服