對(duì)于大多數(shù)IT顧問(wèn)來(lái)說(shuō),實(shí)現(xiàn)一個(gè)數(shù)據(jù)倉(cāng)庫(kù)的難度比以前做過(guò)的任何項(xiàng)目難度都要大?紤]到不同的數(shù)據(jù)結(jié)構(gòu)、用途以及應(yīng)用程序開發(fā)方法,以前所積累的經(jīng)驗(yàn)和技巧大部分都無(wú)用武之地了。但是只要在你的前進(jìn)道路上稍加修正,你就會(huì)發(fā)現(xiàn)實(shí)現(xiàn)一個(gè)數(shù)據(jù)倉(cāng)庫(kù)并不是難事,就算你是第一次實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)也沒(méi)問(wèn)題。
下面列出了數(shù)據(jù)倉(cāng)庫(kù)實(shí)施過(guò)程需要考慮的步驟,有一些你可能從來(lái)沒(méi)有意識(shí)到,而另一些可能已經(jīng)在實(shí)施過(guò)程中使用到了,但是重新思考一番也許你會(huì)有更多的領(lǐng)悟。開放思維,不斷嘗試新的途徑,找到一種可行的數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)方法。
1.再三考慮應(yīng)用程序的實(shí)現(xiàn)方法
數(shù)據(jù)倉(cāng)庫(kù)并不涉及事務(wù)處理,并且在報(bào)表方面也僅占一小部分。而數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用程序的本質(zhì)是分析,尤其是針對(duì)業(yè)務(wù)智能的分析。BI并不是通常所說(shuō)的數(shù)據(jù):它是一種從舊有數(shù)據(jù)中,模型化得到的新的數(shù)據(jù)。那么如何才能從舊有數(shù)據(jù)中挖出這些新數(shù)據(jù)呢?事實(shí)上,這個(gè)工作不是讓你來(lái)完成的,而是你的客戶所要完成的。從項(xiàng)目主管的角度看,應(yīng)該有一個(gè)經(jīng)驗(yàn)豐富的數(shù)據(jù)表格設(shè)計(jì)師與你合作,進(jìn)而決定如何將各類程序融合在一起。其中所遇到的最主要的挑戰(zhàn)將是如何用新的方法觀察數(shù)據(jù),這也是你的客戶正在試圖使用的方法。
2.創(chuàng)建抽象的、良好部署的數(shù)據(jù)庫(kù)訪問(wèn)組件
在過(guò)去你接觸過(guò)的數(shù)據(jù)庫(kù)項(xiàng)目和現(xiàn)在的數(shù)據(jù)倉(cāng)庫(kù)之間,有一點(diǎn)絕對(duì)不同,那就是:在Online Transaction Processing (OLTP)環(huán)境中,用戶數(shù)量非常大,但使用到的數(shù)據(jù)卻比較少;而在Online Analytical Processing (OLAP)環(huán)境中情況卻正好相反,少量的用戶在使用大量的數(shù)據(jù)。而你的工作就是編寫一個(gè)應(yīng)用程序來(lái)優(yōu)化這種不同。這里有一個(gè)線索:在你所有的分析程序中,都要能抓取連續(xù)的數(shù)據(jù)項(xiàng),這樣在以后建立和訪問(wèn)的數(shù)據(jù)結(jié)構(gòu)中才能存放與原數(shù)據(jù)物理結(jié)構(gòu)類似的數(shù)據(jù)。具體如何實(shí)現(xiàn)呢?首先不要規(guī)格化數(shù)據(jù)。第二將其放入數(shù)組中最小化讀取請(qǐng)求數(shù)。按照這種方法,DBA會(huì)很樂(lè)意與你合作。
3.保持松散
現(xiàn)在回頭看看第一步,你應(yīng)該可以理解定義一個(gè)分析程序不是件簡(jiǎn)單事了,而且一般情況下,很難在第一次就實(shí)現(xiàn)符合要求的最終產(chǎn)品。而在你將要進(jìn)行分析的數(shù)據(jù)結(jié)構(gòu)上同樣存在這種問(wèn)題。一句話,實(shí)現(xiàn)過(guò)程會(huì)有很多變數(shù),你需要不斷的改動(dòng)你的程序。通常我們都希望將改動(dòng)次數(shù)降到最低。在一個(gè)數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)過(guò)程中,本質(zhì)是要分析過(guò)程毫無(wú)差錯(cuò),這也需要DBA的參與。不要死抓住你的程序設(shè)計(jì)、代碼、框圖,或你建立的其它什么東西不放手,要根據(jù)這種變化而不斷進(jìn)行調(diào)整。
4.將管理放在首位
在分析數(shù)據(jù)源方面你做的如何呢?你是否認(rèn)為清理垃圾數(shù)據(jù)的工作非常困難?并不是只有你一個(gè)人這樣想,做過(guò)類似工作的人都有這種看法。在一個(gè)一般規(guī)模的機(jī)構(gòu)中,作為數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)過(guò)程的一部分,會(huì)有大量的舊有數(shù)據(jù)必須進(jìn)行一致性處理。所以分析數(shù)據(jù)源并花費(fèi)數(shù)個(gè)小時(shí)編寫轉(zhuǎn)換程序?qū)⑴f有數(shù)據(jù)導(dǎo)入數(shù)據(jù)倉(cāng)庫(kù)是整個(gè)數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)過(guò)程中最艱難的一部分。并且這也是整個(gè)項(xiàng)目中最重要的一環(huán),可以占到整個(gè)項(xiàng)目周期和預(yù)算的四分之三。所以一定要小心對(duì)待。
5.從字里行間發(fā)現(xiàn)問(wèn)題
與用戶交流是個(gè)很麻煩的事情,為什么這么說(shuō)呢?因?yàn)楹芏嘤脩粼谝姷阶罱K產(chǎn)品前都不知道自己想要什么樣的產(chǎn)品。定義數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用程序是一個(gè)探索的過(guò)程,而且這個(gè)過(guò)程要反復(fù)進(jìn)行。記住所謂的"業(yè)務(wù)智能"是用戶自己定義的,他們按照自己的理解來(lái)處理業(yè)務(wù)流程。因此這些用戶就是連接數(shù)據(jù)和業(yè)務(wù)處理過(guò)程間的橋梁。他們所要的并不是數(shù)據(jù)本身,而是隱藏在數(shù)據(jù)后面的智能性。你可以讓他們討論、思考并給出建設(shè)性的意見。但千萬(wàn)不要讓他們解決或讓他們?nèi)我庀胂蠛桶l(fā)表那些"有可能"的觀點(diǎn)。最后,一定要隨時(shí)留意用戶得出的結(jié)論。
6.保持領(lǐng)先
數(shù)據(jù)倉(cāng)庫(kù)看起來(lái)沒(méi)有傳統(tǒng)的OLTP模式根深蒂固,事實(shí)如此。雖然很多人投身數(shù)據(jù)倉(cāng)庫(kù)的開發(fā)中,但由于其框架與以前的系統(tǒng)大相徑庭,因此在開始的一段時(shí)間數(shù)據(jù)倉(cāng)庫(kù)的實(shí)現(xiàn)看上去相當(dāng)混亂。但是堅(jiān)持下去是很重要的。它具有兩方面重要的作用。
第一,技術(shù)的領(lǐng)先性。它可以跟蹤項(xiàng)目中任何階段的軟件工具的部署和正確使用,以及開發(fā)過(guò)程。如果這復(fù)合你的背景,你可以對(duì)此多加留意。
第二,體系結(jié)構(gòu)的領(lǐng)先性。它使得項(xiàng)目在各個(gè)階段轉(zhuǎn)換時(shí),數(shù)據(jù)倉(cāng)庫(kù)和它所支持的系統(tǒng)的物理以及邏輯架構(gòu)都具有持續(xù)性,不會(huì)發(fā)生改變。這也是你能提供的。
7.發(fā)出警告
最后你要記住,你并不是唯一登上新大陸的人。你周圍的每一個(gè)人都會(huì)有下面一點(diǎn)或幾點(diǎn)問(wèn)題:不現(xiàn)實(shí)的期望、對(duì)技術(shù)的誤解、舊習(xí)慣或壞習(xí)慣、競(jìng)爭(zhēng)行為,或缺乏對(duì)項(xiàng)目的信任度。雖然交流溝通等任務(wù)應(yīng)該是項(xiàng)目經(jīng)理負(fù)責(zé)的,但實(shí)際上你也要擔(dān)負(fù)起相同的責(zé)任。那么作為技術(shù)總監(jiān)你該怎么作呢?首先當(dāng)然是要真誠(chéng)的對(duì)待周圍的人,但一定要豎立威信,適當(dāng)?shù)陌l(fā)出警告。當(dāng)你發(fā)現(xiàn)項(xiàng)目進(jìn)度緩慢、資源流失,或者員工失去目標(biāo),就要直言不諱的說(shuō)出來(lái)?焖倜鞔_的給予警告在大部分情況下都是明智之舉。匆忙上馬的數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目也許會(huì)出軌,但不要讓失敗的項(xiàng)目把你拉下馬。
相關(guān)推薦:2010年計(jì)算機(jī)軟件水平考試時(shí)間安排通知