數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)步驟、禁忌和思路探討(高效實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)的七個(gè)步驟)
2009-2-18 17:02:00 來(lái)源:物流天下 編輯:56885 關(guān)注度:摘要:... ...
高效實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)的七個(gè)步驟
數(shù)據(jù)倉(cāng)庫(kù)和我們常見的RDBMS系統(tǒng)有些親緣關(guān)系,但它又有所不同。如果你沒有實(shí)施過(guò)數(shù)據(jù)倉(cāng)庫(kù),那么從設(shè)定目標(biāo)到給出設(shè)計(jì),從創(chuàng)建數(shù)據(jù)結(jié)構(gòu)到編寫數(shù)據(jù)分析程序,再到面對(duì)挑剔的用戶的評(píng)估,整個(gè)過(guò)程都會(huì)帶給你一種與以往的項(xiàng)目完全不同的體驗(yàn)。一句話,如果你試圖以舊有的方式創(chuàng)建數(shù)據(jù)倉(cāng)庫(kù),那你所面對(duì)的不是預(yù)算超支就是所建立的數(shù)據(jù)倉(cāng)庫(kù)無(wú)法良好運(yùn)作。
在處理一個(gè)數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目時(shí)需要注意的問(wèn)題很多,但同時(shí)也有很多有建設(shè)性的參考可以幫助你更順利的完成任務(wù)。開放思維,不斷嘗試新的途徑,對(duì)于找到一種可行的數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)方法來(lái)說(shuō)也是必需的。
1. 配備一個(gè)全職的項(xiàng)目經(jīng)理或你自己全面負(fù)責(zé)項(xiàng)目管理
在通常情況下,項(xiàng)目經(jīng)理都會(huì)同時(shí)負(fù)責(zé)多個(gè)項(xiàng)目的實(shí)施。這么做完全是出于資金和IT資源方面的考慮。但是對(duì)于數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目的管理,絕對(duì)不能出現(xiàn)一人身兼數(shù)個(gè)項(xiàng)目的情況。由于你所處的領(lǐng)域是你和你的團(tuán)隊(duì)之前沒有進(jìn)入過(guò)的領(lǐng)域,有關(guān)數(shù)據(jù)倉(cāng)庫(kù)的一切-數(shù)據(jù)分析、設(shè)計(jì)、編程、測(cè)試、修改、維護(hù)-全都是嶄新的,因此你或者你指派的項(xiàng)目經(jīng)理如果能全心投入,對(duì)于項(xiàng)目的成功會(huì)有很大幫助。
2. 將項(xiàng)目管理職責(zé)推給別的項(xiàng)目經(jīng)理
由于數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)過(guò)程實(shí)在是太困難了,為了避免自虐,你可以在當(dāng)前階段的項(xiàng)目完成后就將項(xiàng)目管理職責(zé)推給別的項(xiàng)目經(jīng)理。當(dāng)然,這個(gè)新的項(xiàng)目經(jīng)理一定要復(fù)合第一條所說(shuō)的具有全職性。為什么要這么做呢?首先,從項(xiàng)目經(jīng)理的角度看,數(shù)據(jù)倉(cāng)庫(kù)實(shí)施過(guò)程的任何一個(gè)階段都足以讓人身心疲憊。從物理存儲(chǔ)設(shè)備的開發(fā)到Extract-Transform-Load的實(shí)現(xiàn),從設(shè)計(jì)開發(fā)模型到OLAP,所有階段都明顯的比以前接觸的項(xiàng)目更加困難。每個(gè)階段不但需要新的處理方法、新的管理方法,還需要?jiǎng)?chuàng)新性的觀點(diǎn)。所以將管理職責(zé)推給別的項(xiàng)目經(jīng)理不但不會(huì)對(duì)項(xiàng)目有損害,還可以起到幫助作用。
3.與用戶進(jìn)行溝通
這里所講的內(nèi)容遠(yuǎn)比一篇文章本身要重要的多。你必須明白,在數(shù)據(jù)倉(cāng)庫(kù)的設(shè)計(jì)階段,那些潛在用戶自己也不清楚他們到底需要數(shù)據(jù)倉(cāng)庫(kù)為他們做什么。他們?cè)诓粩嗟奶剿骱桶l(fā)現(xiàn)自己的需求,而你的開發(fā)團(tuán)隊(duì)也在和客戶的接觸中做著同樣的事情。更加頻繁的與客戶接觸,多做記錄,并讓你的團(tuán)隊(duì)更關(guān)注于項(xiàng)目需求討論的結(jié)果而不是討論的過(guò)程本身。
既然你和客戶的交流是為了了解存儲(chǔ)的數(shù)據(jù)是何種類型以及如何有效存儲(chǔ)數(shù)據(jù),你也許需要(和你的用戶一起)采用一種新的方法觀察數(shù)據(jù),而不是直接處理數(shù)據(jù)。你可以嘗試從中找出隱藏的信息,比如在一段時(shí)期內(nèi)的數(shù)字漲落等。不要試圖追尋項(xiàng)目需求的答案,而是要讓答案找上門來(lái)。
4. 以技術(shù)/信息庫(kù)作為領(lǐng)導(dǎo)
由于數(shù)據(jù)倉(cāng)庫(kù)實(shí)施的各個(gè)階段都有很大不同,因此你需要有人能起到維持整個(gè)項(xiàng)目的連續(xù)進(jìn)行的作用,不過(guò)這個(gè)職責(zé)并不需要那種全職性。項(xiàng)目實(shí)施有三個(gè)重要方面:架構(gòu)、技術(shù)和業(yè)務(wù)。將架構(gòu)作為重點(diǎn)可以保證在整個(gè)項(xiàng)目中,數(shù)據(jù)倉(cāng)庫(kù)的架構(gòu)從物理層往上,都會(huì)受到良好的維護(hù)。而我們應(yīng)該將技術(shù)作為重點(diǎn),因?yàn)殚_發(fā)團(tuán)隊(duì)和關(guān)鍵用戶都在使用他們以前從未用過(guò)的工具,必須有人監(jiān)督開發(fā)過(guò)程以及工具使用的一致性。
最后,在數(shù)據(jù)倉(cāng)庫(kù)的應(yīng)用過(guò)程中浮現(xiàn)出來(lái)的業(yè)務(wù)需求必須被詳細(xì)分析和記錄,以促機(jī)開發(fā)過(guò)程持續(xù)下去。如果用戶不能很好的開發(fā)人員以及其它用戶溝通,那么數(shù)據(jù)分析和度量方面的開發(fā)進(jìn)程就會(huì)延期,所以必須有人關(guān)注業(yè)務(wù)方面的開發(fā),推動(dòng)開發(fā)進(jìn)入更高級(jí)別。
5. 跳出反復(fù)修改程序的陷阱
第一次實(shí)現(xiàn)的數(shù)據(jù)倉(cāng)庫(kù)肯定不會(huì)是最終交付的版本。為什么呢?實(shí)際上在真正見到產(chǎn)品前,你無(wú)法確定的知道自己的目標(biāo)是什么。或者說(shuō),最終用戶只有在使用數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品一段時(shí)間后,才能明確告訴你這個(gè)產(chǎn)品是不是他所希望的。與你以往處理的項(xiàng)目不同,業(yè)務(wù)智能還處于發(fā)展的初期,每個(gè)公司對(duì)業(yè)務(wù)智能都有不同的解釋,因此你的項(xiàng)目決不會(huì)一次成功。
為了以正確的格式獲得數(shù)據(jù),你需要在不斷變化的狀況中摸索前進(jìn)。BI具有很強(qiáng)的個(gè)性,不同的環(huán)境、不同的市場(chǎng)以及不同的企業(yè)都有不同的BI。這又代表什么呢?這表示你需要把數(shù)據(jù)庫(kù)管理員放在一個(gè)消息相對(duì)封閉的環(huán)境中,不要讓他知道數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)結(jié)構(gòu)以及ETL程序在不斷的改變。對(duì)此沒有別的辦法。這樣可以減輕你和DBA所承受的壓力。
6. 對(duì)大量的前端資源進(jìn)行數(shù)據(jù)源分析
在數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)過(guò)程中,你不得不在舊有的數(shù)據(jù)中艱難跋涉,這些數(shù)據(jù)來(lái)自老的數(shù)據(jù)庫(kù)、老的磁帶機(jī)以及遠(yuǎn)程的數(shù)據(jù)。它們中的大部分都凌亂不堪,并且難以獲取。你要對(duì)這些數(shù)據(jù)進(jìn)行大量處理,并且還要設(shè)計(jì)ETL程序來(lái)尋找其中的有用信息。如果你希望整個(gè)項(xiàng)目做起來(lái)比較順利,并且找到一種方法能夠一次成功,那就需要你的開發(fā)人員必須花費(fèi)足夠的時(shí)間來(lái)充分研究這些舊有數(shù)據(jù),將凌亂的數(shù)據(jù)規(guī)則化,并盡力設(shè)計(jì)和實(shí)現(xiàn)強(qiáng)壯的數(shù)據(jù)采集和轉(zhuǎn)換過(guò)程。數(shù)據(jù)倉(cāng)庫(kù)的ETL部分會(huì)占用整個(gè)項(xiàng)目資源的百分之八十,所以一定要確定你的資源都用在刀刃上了。
7. 將人際關(guān)系處理放在首位
在數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)過(guò)程中真正的地獄不是來(lái)自技術(shù)或者開發(fā)方面,而是來(lái)自你周圍的人。你也許會(huì)遇到一個(gè)對(duì)項(xiàng)目并不樂(lè)觀而又沒時(shí)間聽你陳述的領(lǐng)導(dǎo)。你也許會(huì)遇到一些開發(fā)人員將進(jìn)度拖延太長(zhǎng)時(shí)間還抱怨為什么不能用老方法實(shí)施。你也許還會(huì)遇到一些抱有不切實(shí)際的幻想的用戶,他們希望輕點(diǎn)鼠標(biāo)就能實(shí)現(xiàn)想象中的功能,但卻不愿在他們那邊多做些智力投資,更好的培訓(xùn)他們自己的員工。而你也已經(jīng)疲憊不堪,鼓勵(lì)投資,以及在開發(fā)團(tuán)隊(duì)和用戶(甚至老板)中推廣新的開發(fā)技巧。
總之你要保持微笑。當(dāng)一切搞定,你的煩惱也就一掃而空了,笑到最后才笑得最輕松。
數(shù)據(jù)倉(cāng)庫(kù)開發(fā)過(guò)程中的七個(gè)禁忌
過(guò)去我們一直使用的OLTP技術(shù)也許隱藏著許多嚴(yán)重的缺陷。數(shù)據(jù)倉(cāng)庫(kù)的實(shí)現(xiàn)并不是一個(gè)簡(jiǎn)單的任務(wù),你會(huì)發(fā)現(xiàn)以前積累下來(lái)的豐富經(jīng)驗(yàn),并不適合處理每個(gè)數(shù)據(jù)倉(cāng)庫(kù)的獨(dú)特需求。
下面列出的條款是你在實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)過(guò)程中一定會(huì)面對(duì)的問(wèn)題,其中一些看起來(lái)并沒有想象中那么嚴(yán)重,但是你還是應(yīng)該盡量避免出現(xiàn)類似問(wèn)題。數(shù)據(jù)倉(cāng)庫(kù)并不是一個(gè)事務(wù)處理系統(tǒng),它沒有一定的標(biāo)準(zhǔn)也不會(huì)實(shí)現(xiàn)某個(gè)特定的應(yīng)用,但它本質(zhì)上是非常有組織性的。總之,每個(gè)公司所建立的數(shù)據(jù)倉(cāng)庫(kù)都是唯一的,并且每一次數(shù)據(jù)倉(cāng)庫(kù)的實(shí)現(xiàn)方法都不是一成不變的。在實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)時(shí)需要注意的不單是"應(yīng)該如何作",更要注意"不該如何做"。下面就是我們總結(jié)的七點(diǎn)"不該如何作"。
1.不要編寫自己無(wú)法快速修改的代碼
你所要編寫的程序主要用于數(shù)據(jù)分析,而不是處理事務(wù)。而你的用戶也并不真正知道他們自己真正想要一個(gè)什么樣的程序。因此你不得不反復(fù)修改代碼好幾次,才會(huì)明白用戶到底需要一個(gè)什么樣的程序。如果你編寫的程序具有良好的結(jié)構(gòu)和靈活性,就算需要修改也不會(huì)太浪費(fèi)力氣。反之,你會(huì)被自己累死。
2. 不要使用無(wú)法修改的數(shù)據(jù)庫(kù)訪問(wèn)API
在過(guò)去,你的數(shù)據(jù)庫(kù)可以為大量的客戶提供穩(wěn)定的數(shù)據(jù)查詢服務(wù)。而如今,你的程序必須能夠應(yīng)付更多的數(shù)據(jù)查詢。這使得重新改寫程序以使得每個(gè)查詢請(qǐng)求能得到最大的數(shù)據(jù)量成為勢(shì)在必行的工作,而一般來(lái)說(shuō)這種代碼修改都不會(huì)一次成功,所以只有選擇合適的可以修改的API,才能使程序盡快適應(yīng)新的需求。
3. 不要設(shè)計(jì)任何無(wú)法擴(kuò)展的東西
在聯(lián)機(jī)處理過(guò)程(OLTP)應(yīng)用中,數(shù)據(jù)分析并不是一個(gè)真正的應(yīng)用程序。實(shí)際上,數(shù)據(jù)分析的關(guān)鍵是獲取大量舊的數(shù)據(jù),從中提取數(shù)據(jù)模型,并以此模型推斷出新的信息。而你所編寫的訪問(wèn)潛在信息的代碼應(yīng)該具有可擴(kuò)展性,可以附加新的數(shù)據(jù)。千萬(wàn)別在支持?jǐn)?shù)據(jù)分析的代碼中假定數(shù)據(jù)都是固定格式的。
4. 不要附加不必要的功能
一個(gè)倉(cāng)庫(kù)要做的是恰到好處的服務(wù),用戶走進(jìn)倉(cāng)庫(kù),從貨架上取得自己所需得信息,僅此而已。由于業(yè)務(wù)智能、分析以及規(guī)律性的問(wèn)題都有各自的處理程序,因此你的客戶唯一的需要就是獲取信息。他們需要一種應(yīng)用環(huán)境,可以讓他們快速的從數(shù)據(jù)倉(cāng)庫(kù)中取得分析過(guò)程所需的數(shù)據(jù),而不論這個(gè)數(shù)據(jù)是什么樣子的。也許你想幫助他們精煉一下獲得的數(shù)據(jù),但最好不要這么做。一定要記住,不要給客戶的數(shù)據(jù)分析程序添加任何會(huì)影響數(shù)據(jù)訪問(wèn)性能的功能。
5. 不要簡(jiǎn)化數(shù)據(jù)清除和數(shù)據(jù)源分析的步驟
在實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)過(guò)程中最應(yīng)該注意的地方就是為Extract-Transform-Load機(jī)制分析數(shù)據(jù)源,以及為優(yōu)化負(fù)載而清除數(shù)據(jù)。安全的做法是假設(shè)項(xiàng)目經(jīng)理在這個(gè)階段會(huì)需要整個(gè)項(xiàng)目資源的一半以上。相反,如果你在這方面進(jìn)行了簡(jiǎn)化,稍后肯定會(huì)后悔。所以就算系統(tǒng)工作緩慢,也不要簡(jiǎn)化清理舊的數(shù)據(jù)的過(guò)程。
6. 不要避免顆粒度和分區(qū)問(wèn)題
在數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)過(guò)程中有兩個(gè)最大的數(shù)據(jù)存儲(chǔ)問(wèn)題,第一是如何給轉(zhuǎn)換數(shù)據(jù)定位一個(gè)恰當(dāng)?shù)念w粒度等級(jí),第二是如何將數(shù)據(jù)絕對(duì)的分區(qū)。為什么這兩點(diǎn)問(wèn)題如此重要呢?因?yàn)檎麄(gè)數(shù)據(jù)倉(cāng)庫(kù)的響應(yīng)能力受顆粒度影響,并且數(shù)據(jù)訪問(wèn)的效率直接與數(shù)據(jù)分區(qū)性能有關(guān)。因此這是具有關(guān)鍵性的工作,不要試圖避免面對(duì)這些問(wèn)題。
7.不要在沒考慮業(yè)務(wù)問(wèn)題前就使用OLAP
用戶在親眼見到程序前通常都不知道自己到底想要個(gè)什么樣的程序。因此他們的觀點(diǎn)有不少錯(cuò)誤,比如他們希望分析結(jié)果會(huì)忠實(shí)反應(yīng)性能度量,或者希望程序會(huì)使他們部門或公司的業(yè)務(wù)工作有所不同。而你必須跳出自己的職責(zé)范圍,從IT管理者的角度考慮用戶部門直至整個(gè)企業(yè)的運(yùn)行方式,才能在開發(fā)過(guò)程中避免這類問(wèn)題。在通常的OLTP開發(fā)中,你可以比較方便的理解業(yè)務(wù)流程。而在聯(lián)機(jī)分析處理(OLAP)領(lǐng)域,任何事情都需要親自考察,而在你周圍工作的人也許并不會(huì)發(fā)現(xiàn)你對(duì)業(yè)務(wù)方面存在的誤解。因此,不要自以為已經(jīng)了解了足夠的信息。不斷的詢問(wèn)才能使你真正了解"業(yè)務(wù)智能"中的"業(yè)務(wù)"到底是什么樣子的。
順利開發(fā)數(shù)據(jù)倉(cāng)庫(kù)的七種思路
對(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ù)也沒問(wèn)題。
下面列出了數(shù)據(jù)倉(cāng)庫(kù)實(shí)施過(guò)程需要考慮的步驟,有一些你可能從來(lá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)沒有傳統(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)目把你拉下馬。