從RDB DB DDB DW到DC的幾篇文章學(xué)習(xí)(共13頁)_第1頁
從RDB DB DDB DW到DC的幾篇文章學(xué)習(xí)(共13頁)_第2頁
從RDB DB DDB DW到DC的幾篇文章學(xué)習(xí)(共13頁)_第3頁
從RDB DB DDB DW到DC的幾篇文章學(xué)習(xí)(共13頁)_第4頁
從RDB DB DDB DW到DC的幾篇文章學(xué)習(xí)(共13頁)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 HYPERLINK /uid-7868752-id-3291590.html 從RDB DB DDB DW到DC的幾篇文章(wnzhng)學(xué)習(xí) 2012-07-29 10:16:50 分類(fn li): IT職場從RDB DB DDB DW到DC 實(shí)時(sh sh)數(shù)據(jù)庫 數(shù)據(jù)庫 文檔數(shù)據(jù)庫 數(shù)據(jù)倉庫 數(shù)據(jù)中心- 數(shù)據(jù)倉庫的建設(shè)是一個巨大的工程,按照倉庫的理論思想和我自己實(shí)際的倉庫建設(shè)過程,我覺得數(shù)據(jù)倉庫最好分為六層的設(shè)計思想來構(gòu)建和實(shí)施:一 ,源數(shù)據(jù)層 源數(shù)據(jù)層的目的是為數(shù)據(jù)倉庫提供數(shù)據(jù)來源,它的數(shù)據(jù)來自于倉庫外部,如企業(yè)各應(yīng)用系統(tǒng),各部門的源數(shù)據(jù),企業(yè)的外圍數(shù)據(jù),如行業(yè)標(biāo)準(zhǔn)等。這些數(shù)據(jù)

2、的特點(diǎn)是: 1,它們是動態(tài)的,數(shù)據(jù)可能隨時間變化。 2,它們是面向應(yīng)用,面向業(yè)務(wù)的。 3,它們是明細(xì)的,數(shù)據(jù)粒度是最低的。 4,它們是固定的,在倉庫建設(shè)過程中,不允許干系人更改它們。 5,它們是形式多樣化的,可能以多種新式出現(xiàn)(如file, db table, dataset, xml, sap, xls等)。 6,它們的物理位置的多樣性,數(shù)據(jù)可能在一臺機(jī)器上,也可能在一個局域網(wǎng)類,也可能在internet上。 7,它們生成的多樣性,我們可能每天都到一個固定的地方獲取它們,也可能是臨時的,跟政策相關(guān)的,經(jīng)協(xié)商后產(chǎn)生并提供給倉庫用的。 源數(shù)據(jù)層中數(shù)據(jù)的生命周期:在數(shù)據(jù)倉庫建設(shè)過程中,我們只要向它

3、們?nèi)?shù)就行,不用考慮其生命周期。 在數(shù)據(jù)從本層到ODS層加工的過程中,我想強(qiáng)調(diào)的有一下幾點(diǎn): 1,etl工具的使用: 具體情況具體對待,如果源數(shù)據(jù)層的構(gòu)成比較簡單,數(shù)據(jù)量也比較少,加工的時間窗口充足,則為了節(jié)省成本,可以用一些免費(fèi)的工具,或者自己開發(fā)工具。如果構(gòu)成比較復(fù)雜,數(shù)據(jù)量也很大,為了保證加工的時間窗口,在資金充足的情況下,建議使用datastage,informatic之類的工具,因為它們在異構(gòu)數(shù)據(jù)環(huán)境下的數(shù)據(jù)搬運(yùn)能力不容小覷。 2, 工作內(nèi)容分析: 本階段的工作是ETL的E部分,即數(shù)據(jù)的抽取。當(dāng)然也包括部分為了更好的抽取而進(jìn)行的必要數(shù)據(jù)清洗過程。這部分的工作量依賴于源數(shù)據(jù)層的構(gòu)成,源

4、數(shù)據(jù)層中數(shù)據(jù)的規(guī)整程度以及數(shù)據(jù)量的大小。如果源數(shù)據(jù)層構(gòu)成比較復(fù)雜,再加上它數(shù)據(jù)的規(guī)整程度很低,數(shù)據(jù)量又很大,則本層的工作量是相當(dāng)?shù)拇?。否則,則工作量如其它各層的相當(dāng)。 舉例說明,在某銀行的數(shù)據(jù)倉庫建設(shè)過程中,一個19GB的數(shù)據(jù)文件入庫時報錯,經(jīng)漫長的分析后,發(fā)現(xiàn)是數(shù)據(jù)中的某個中文漢字的編碼中包含了作為分隔符的 |。再如某銀行的數(shù)據(jù)倉庫建設(shè)過程中發(fā)現(xiàn),某上級單位下發(fā)的非開放式標(biāo)準(zhǔn)的xml類型的數(shù)據(jù),需要經(jīng)過單獨(dú)開發(fā)工具加工處理后才能入ODS層的庫。二,ODS層 數(shù)據(jù)從源數(shù)據(jù)層經(jīng)過簡單的清洗后,或者不經(jīng)過清洗直接搬運(yùn)后就到了ODS。 ODS層的功能是: 1,為S_DW層提供數(shù)據(jù) 2,為查詢分析層提

5、供明細(xì)數(shù)據(jù)查詢 3, 隔離了分析系統(tǒng)與業(yè)務(wù)系統(tǒng),保證了業(yè)務(wù)系統(tǒng)的安全性,減輕了業(yè)務(wù)系統(tǒng)的壓力。 ODS層數(shù)據(jù)的特點(diǎn)是: 1,數(shù)據(jù)內(nèi)容與源數(shù)據(jù)層完全一樣或基本一致。 2,數(shù)據(jù)是明細(xì)的,粒度最低的。 3,數(shù)據(jù)是面向主題存儲的。 4,數(shù)據(jù)是反映歷史變化的 5,數(shù)據(jù)是穩(wěn)定的。 ODS層數(shù)據(jù)的生命周期: 一天 數(shù)據(jù)從ODS層加工到S_DW層過程中: 1,etl工具的使用: 建議用procedure,function,UDF等來完成。 1,優(yōu)點(diǎn)是:效率高,軟件費(fèi)用低,無需額外第三方etl工具的技術(shù)支持。 2, 缺點(diǎn)是:不便于開發(fā),維護(hù);調(diào)度,運(yùn)行的可監(jiān)控性較差。 2,工作內(nèi)容分析: 本階段的目的是清洗,整

6、合,加工數(shù)據(jù)。對應(yīng)于ETL的T,即加工。由于ODS層的每個表數(shù)據(jù)量都相對較小,故本層中適合做加工處理,多表的關(guān)聯(lián)等。在建好模型的基礎(chǔ)上,本部分的開發(fā)工作量不是太大。本層的數(shù)據(jù)依賴于源數(shù)據(jù)層的數(shù)據(jù),而且加工處理較多。故數(shù)據(jù)加工時間可能比較大。三,S_DW層 ODS層的數(shù)據(jù)經(jīng)過清洗,加工,整合后就到了S_DW層,S_DW層其實(shí)是從ODS層分解出來的,它是ODS層和DW層之間的一個中間層,它不是必須的,如果數(shù)據(jù)倉庫比較大,比較復(fù)雜,那么建議使用本層,以提高效率。本層的存在相當(dāng)于用空間來交換時間。 S_DW 層的功能是:它為數(shù)據(jù)從ODS層到DW層提供了一個緩沖,相當(dāng)于一個臨時空間,節(jié)省了FACT表和D

7、IM表生成的時間。 S_DW 層數(shù)據(jù)的特點(diǎn): 1,數(shù)據(jù)的規(guī)整程度較高。 2,數(shù)據(jù)的粒度較低。 3,數(shù)據(jù)是面向主題的。 4,數(shù)據(jù)是反映歷史變化的。 5,數(shù)據(jù)是穩(wěn)定的。 S_DW 層數(shù)據(jù)的生命周期: 一天 數(shù)據(jù)從S_DW層加工到DW層過程中: 1,ETL工具的使用: 同ODS層。 2,工作內(nèi)容分析: 本階段的目的是把整合后的業(yè)務(wù)數(shù)據(jù)表加工成符合入倉庫規(guī)則的FACT表和DIM表。然后數(shù)據(jù)以FACT表和DIM表的形式入倉庫。對應(yīng)于ETL過程的L,即入倉庫。在建好模型的基礎(chǔ)上,本部分的開發(fā)工作量不是太大。本層的數(shù)據(jù)依賴于ODS層的數(shù)據(jù),加工處理,整合較少。故數(shù)據(jù)加工時間也較少。四,DW層 當(dāng)FACT表,

8、DIM表生成后,就可以利用它們按照(nzho)主題來建CUBE了。CUBE建成后,數(shù)據(jù)倉庫就基本建成了。后繼所需的工作就是每天(增量或全量)刷新CUBE,或者按照需求往倉庫中新增主題,新增CUBE來充實(shí)倉庫了。 DW層的功能是:為后繼的基于倉庫的應(yīng)用提供(tgng)基礎(chǔ)。 DW層數(shù)據(jù)(shj)的特點(diǎn): 1,面向主題 2,穩(wěn)定的 3,反映歷史變化的。 4,集成的。 DW層數(shù)據(jù)的生命周期: 倉庫的數(shù)據(jù)規(guī)劃保留期。 數(shù)據(jù)倉庫中的cube加工注意事項: CUBE的刷新方式:最好使用日增量方式,不然時間會特別慢。CUBE的模型也特別影響CUBE的刷新時間,當(dāng)CUBE的模型發(fā)生變化時,CUBE必須要全量刷

9、新。另外有個細(xì)節(jié)問題須強(qiáng)調(diào)的是,在緯度表中,要有條“未知”記錄來描述一些不太規(guī)整的事實(shí)。五,查詢分析層 就我接觸的,知道的,基于倉庫的應(yīng)用: 1,多維分析層 經(jīng)營統(tǒng)計分析,風(fēng)險分析,績效考核,客戶分析,產(chǎn)品分析等。 它們向cube取數(shù) 。 2,二維報表層 提供上級部門必須的報表,如銀監(jiān)局,人行,外管局所必須的報表。 它們可以從dw層取數(shù) 3,信息查詢層 比如某些特殊的報表,需要知道最n的m條記錄的信息,例如想知道今天交易的最大的10比貸款的客戶資料。 準(zhǔn)確的說,他們應(yīng)該是從dw或s_dw,或ods層取數(shù)據(jù)。 4,數(shù)據(jù)挖掘?qū)?我沒有具體做過挖掘,僅僅是知道他們是基于倉庫的應(yīng)用而已。六,應(yīng)用層 經(jīng)

10、過前面的建設(shè),我們就可以從信息系統(tǒng)獲取信息了。但是經(jīng)過對DW中信息的分析得出了某些知識后,我們怎么樣去使用這些知識呢? 這就是DW信息系統(tǒng)建設(shè)的目的和意義所在。 我參與建設(shè)的銀行信息系統(tǒng)中,較少有涉及到這一層的。下面就以我個人的理解來做表述。 1,應(yīng)用層體現(xiàn)了基于DW的信息系統(tǒng)建設(shè)的目的。 譬如說,我們用多維分析能夠分析出什么樣的結(jié)論?這些結(jié)論能夠幫我們解決什么樣的問題?我們是否在用這些結(jié)論在解決這些問題?數(shù)據(jù)挖掘挖掘出來的知識的正確性有多大?可用程度有多大?它是否在為決策支持等提供服務(wù)?信息查詢中查詢處的信息,我們是怎樣在用它們呢?等等。 總之這些信息,知識,結(jié)論是否能夠在節(jié)省成本,增加利潤

11、,提高績效,規(guī)避或降低風(fēng)險,優(yōu)化企業(yè)業(yè)務(wù)結(jié)構(gòu),組織結(jié)構(gòu),客戶構(gòu)成等方面發(fā)揮作用呢? 2,應(yīng)用層應(yīng)為企業(yè)發(fā)展的戰(zhàn)略,戰(zhàn)術(shù)目標(biāo)以及領(lǐng)導(dǎo)決策提供支持服務(wù)。 譬如說,經(jīng)營統(tǒng)計分析告訴了我們企業(yè)利潤的組成及發(fā)展趨勢。產(chǎn)品分析告訴了我們,客戶分析告訴我們。風(fēng)險分析告訴我們 通過種種分析方法,我們可以知道 ,企業(yè)應(yīng)該通過開發(fā)什么樣屬性的產(chǎn)品來吸引什么樣的客戶,以以最小的風(fēng)險來謀取最大的利潤。 風(fēng)險分析分析結(jié)論的使用是否真正的了規(guī)避了風(fēng)險?績效考核是否找到績效低下的原因,是否可以找到提高績效的方法? 3,應(yīng)用層應(yīng)為應(yīng)用,業(yè)務(wù)系統(tǒng)提供服務(wù)。 譬如說,在銀行業(yè)務(wù)中,通過查詢分析,我們知道了某客戶是當(dāng)月存款最大的客

12、戶,那么當(dāng)此客戶到銀行來辦理業(yè)務(wù)的時候,應(yīng)用層程序就應(yīng)該告訴客戶經(jīng)理可以為該客戶提供的產(chǎn)品??偨Y(jié): 從上面的描述中可以看出,DW的建設(shè)是一個長期的連續(xù)的過程。它是由業(yè)務(wù)驅(qū)動的,也應(yīng)該是驅(qū)動業(yè)務(wù)的,而后者在銀行中的應(yīng)用體現(xiàn)卻不是很充分。思考: 新應(yīng)用,新業(yè)務(wù),新產(chǎn)品產(chǎn)生后,倉庫要做哪些變化。 怎樣才能使倉庫的可擴(kuò)展性強(qiáng),怎樣使倉庫的架構(gòu)穩(wěn)固。 怎樣使倉庫隨著應(yīng)用數(shù)據(jù)量的增大,應(yīng)用數(shù)的增多,而效率變化不大。高效實(shí)現(xiàn)數(shù)據(jù)倉庫的七個步驟 數(shù)據(jù)倉庫和我們常見的RDBMS系統(tǒng)有些親緣關(guān)系,但它又有所不同。如果你沒有實(shí)施過數(shù)據(jù)倉庫,那么從設(shè)定目標(biāo)到給出設(shè)計,從創(chuàng)建數(shù)據(jù)結(jié)構(gòu)到編寫數(shù)據(jù)分析程序,再到面對挑剔的用

13、戶的評估,整個過程都會帶給你一種與以往的項目完全不同的體驗。一句話,如果你試圖以舊有的方式創(chuàng)建數(shù)據(jù)倉庫,那你所面對的不是預(yù)算超支就是所建立的數(shù)據(jù)倉庫無法良好運(yùn)作。 0 q3 % Q( h& * q9 s8 h+ i0 I& W$ H/ L- C+ 在處理一個數(shù)據(jù)倉庫項目時需要注意的問題很多,但同時也有很多有建設(shè)性的參考可以幫助你更順利的完成任務(wù)。開放思維,不斷嘗試新的途徑,對于找到一種可行的數(shù)據(jù)倉庫實(shí)現(xiàn)方法來說也是必需的。 * + j0 Q : A: 3 R7 L* 1. 配備一個全職的項目經(jīng)理或你自己全面負(fù)責(zé)項目管理# s4 E/ t/ N5 u! Be# 0 m% 在通常情況下,項目經(jīng)理都

14、會同時負(fù)責(zé)多個項目的實(shí)施。這么做完全是出于資金和IT資源方面的考慮。但是對于數(shù)據(jù)倉庫項目的管理,絕對不能出現(xiàn)一人身兼數(shù)個項目的情況。由于你所處的領(lǐng)域是你和你的團(tuán)隊之前沒有進(jìn)入過的領(lǐng)域,有關(guān)數(shù)據(jù)倉庫的一切數(shù)據(jù)分析、設(shè)計、編程、測試、修改、維護(hù)全都是嶄新的,因此你或者你指派的項目經(jīng)理如果能全心投入,對于項目的成功會有很大幫助。 I/ g0 Q; a 0 X* f2. 將項目管理職責(zé)推給別的項目經(jīng)理& e5 V) d7 C5 C& d由于數(shù)據(jù)倉庫實(shí)現(xiàn)過程實(shí)在是太困難了,為了避免自虐,你可以在當(dāng)前階段的項目完成后就將項目管理職責(zé)推給別的項目經(jīng)理。當(dāng)然,這個新的項目經(jīng)理一定要復(fù)合第一條所說的具有全職性。

15、為什么要這么做呢?首先,從項目經(jīng)理的角度看,數(shù)據(jù)倉庫實(shí)施過程的任何一個階段都足以讓人身心疲憊。從物理存儲設(shè)備的開發(fā)到Extract-Transform-Load的實(shí)現(xiàn),從設(shè)計開發(fā)模型到OLAP,所有階段都明顯的比以前接觸的項目更加困難。每個階段不但需要新的處理方法、新的管理方法,還需要創(chuàng)新性的觀點(diǎn)。所以將管理職責(zé)推給別的項目經(jīng)理不但不會對項目有損害,還可以起到幫助作用。( i2 R3 + W- W i J) V: . 3.與用戶進(jìn)行溝通, 8 g5 H- u4 |* A; J3 n這里所講的內(nèi)容遠(yuǎn)比一篇文章本身要重要的多。你必須明白,在數(shù)據(jù)倉庫的設(shè)計階段,那些潛在用戶自己也不清楚他們到底需要數(shù)

16、據(jù)倉庫為他們做什么。他們在不斷的探索和發(fā)現(xiàn)自己的需求,而你的開發(fā)團(tuán)隊也在和客戶的接觸中做著同樣的事情。更加頻繁的與客戶接觸,多做記錄,并讓你的團(tuán)隊更關(guān)注于項目需求討論的結(jié)果而不是討論的過程本身。4 n) F# . U6 m8 # X. R# % J0 B1 MO3 E3 V X7 e+ J既然你和客戶的交流是為了了解存儲的數(shù)據(jù)是何種類型以及如何有效存儲數(shù)據(jù),你也許需要(和你的用戶一起)采用一種新的方法觀察數(shù)據(jù),而不是直接處理數(shù)據(jù)。你可以嘗試從中找出隱藏的信息,比如在一段時期內(nèi)的數(shù)字漲落等。不要試圖追尋項目需求的答案,而是要讓答案找上門來。4. 以技術(shù)/信息庫作為領(lǐng)導(dǎo)由于數(shù)據(jù)倉庫實(shí)施的各個階段都

17、有很大不同,因此你需要有人能起到維持整個項目的連續(xù)進(jìn)行的作用,不過這個職責(zé)并不需要那種全職性。項目實(shí)施有三個重要方面:架構(gòu)、技術(shù)和業(yè)務(wù)。將架構(gòu)作為重點(diǎn)可以保證在整個項目中,數(shù)據(jù)倉庫的架構(gòu)從物理層往上,都會受到良好的維護(hù)。而我們應(yīng)該將技術(shù)作為重點(diǎn),因為開發(fā)團(tuán)隊和關(guān)鍵用戶都在使用他們以前從未用過的工具,必須有人監(jiān)督開發(fā)過程以及工具使用的一致性。最后,在數(shù)據(jù)倉庫的應(yīng)用過程中浮現(xiàn)出來的業(yè)務(wù)需求必須被詳細(xì)分析和記錄,以促機(jī)開發(fā)過程持續(xù)下去。如果用戶不能很好的開發(fā)人員以及其它用戶溝通,那么數(shù)據(jù)分析和度量方面的開發(fā)進(jìn)程就會延期,所以必須有人關(guān)注業(yè)務(wù)方面的開發(fā),推動開發(fā)進(jìn)入更高級別。|# F# o K% p4

18、 L5. 跳出反復(fù)修改程序的陷阱0 f8 i5 Y* K+ h/ A, d6 a- q第一次實(shí)現(xiàn)的數(shù)據(jù)倉庫肯定不會是最終交付的版本。為什么呢?實(shí)際上在真正見到產(chǎn)品前,你無法確定的知道自己的目標(biāo)是什么。或者說,最終用戶只有在使用數(shù)據(jù)倉庫產(chǎn)品一段時間后,才能明確告訴你這個產(chǎn)品是不是他所希望的。與你以往處理的項目不同,業(yè)務(wù)智能還處于發(fā)展的初期,每個公司對業(yè)務(wù)智能都有不同的解釋,因此你的項目決不會一次成功。6 W7 h a) z4 y- N/ N8 u i為了以正確的格式獲得數(shù)據(jù),你需要在不斷變化的狀況中摸索前進(jìn)。BI具有很強(qiáng)的個性,不同的環(huán)境、不同的市場以及不同的企業(yè)都有不同的BI。這又代表什么呢?

19、這表示你需要把數(shù)據(jù)庫管理員放在一個消息相對封閉的環(huán)境中,不要讓他知道數(shù)據(jù)倉庫的數(shù)據(jù)結(jié)構(gòu)以及ETL程序在不斷的改變。對此沒有別的辦法。這樣可以減輕你和DBA所承受的壓力。; O) H* y6. 對大量的前端資源進(jìn)行數(shù)據(jù)源分析在數(shù)據(jù)倉庫實(shí)現(xiàn)過程中,你不得不在舊有的數(shù)據(jù)中艱難跋涉,這些數(shù)據(jù)來自老的數(shù)據(jù)庫、老的磁帶機(jī)以及遠(yuǎn)程的數(shù)據(jù)。它們中的大部分都凌亂不堪,并且難以獲取。你要對這些數(shù)據(jù)進(jìn)行大量處理,并且還要設(shè)計ETL程序來尋找其中的有用信息。如果你希望整個項目做起來比較順利,并且找到一種方法能夠一次成功,那就需要你的開發(fā)人員必須花費(fèi)足夠的時間來充分研究這些舊有數(shù)據(jù),將凌亂的數(shù)據(jù)規(guī)則化,并盡力設(shè)計和實(shí)現(xiàn)

20、強(qiáng)壯的數(shù)據(jù)采集和轉(zhuǎn)換過程。數(shù)據(jù)倉庫的ETL部分會占用整個項目資源的百分之八十,所以一定要確定你的資源都用在刀刃上了。將人際關(guān)系處理放在首位在數(shù)據(jù)倉庫實(shí)現(xiàn)過程中真正的地獄不是來自技術(shù)或者開發(fā)方面,而是來自你周圍的人。你也許會遇到一個對項目并不樂觀而又沒時間聽你陳述的領(lǐng)導(dǎo)。你也許會遇到一些開發(fā)人員將進(jìn)度拖延太長時間還抱怨為什么不能用老方法實(shí)施。你也許還會遇到一些抱有不切實(shí)際的幻想的用戶,他們希望輕點(diǎn)鼠標(biāo)就能實(shí)現(xiàn)想象中的功能,但卻不愿在他們那邊多做些智力投資,更好的培訓(xùn)他們自己的員工。而你也已經(jīng)疲憊不堪,鼓勵投資,以及在開發(fā)團(tuán)隊和用戶(甚至老板)中推廣新的開發(fā)技巧。r+ H5 t# M總之你要保持微

21、笑。當(dāng)一切搞定,你的煩惱也就一掃而空了,笑到最后才笑得最輕松。數(shù)據(jù)倉庫開發(fā)過程中的七個禁忌 ; G: i5 . z) r4 B& R$ h過去我們一直使用的OLTP技術(shù)也許隱藏著許多嚴(yán)重的缺陷。數(shù)據(jù)倉庫的實(shí)現(xiàn)并不是一個簡單的任務(wù),你會發(fā)現(xiàn)以前積累下來的豐富經(jīng)驗,并不適合處理每個數(shù)據(jù)倉庫的獨(dú)特需求。 下面列出的條款是你在實(shí)現(xiàn)數(shù)據(jù)倉庫過程中一定會面對的問題,其中一些看起來并沒有想象中那么嚴(yán)重,但是你還是應(yīng)該盡量避免出現(xiàn)類似問題。數(shù)據(jù)倉庫并不是一個事務(wù)處理系統(tǒng),它沒有一定的標(biāo)準(zhǔn)也不會實(shí)現(xiàn)某個特定的應(yīng)用,但它本質(zhì)上是非常有組織性的。總之,每個公司所建立的數(shù)據(jù)倉庫都是唯一的,并且每一次數(shù)據(jù)倉庫的實(shí)現(xiàn)方法

22、都不是一成不變的。在實(shí)現(xiàn)數(shù)據(jù)倉庫時需要注意的不單是應(yīng)該如何作,更要注意不該如何做。下面就是我們總結(jié)的七點(diǎn)不該如何作。 7 w8 g* m7 j |. G7 K s7 C% k! S: G# L. 1.不要編寫自己無法快速修改的代碼. l* a% E2 Z5 你所要編寫的程序主要用于數(shù)據(jù)分析,而不是處理事務(wù)。而你的用戶也并不真正知道他們自己真正想要一個什么樣的程序。因此你不得不反復(fù)修改代碼好幾次,才會明白用戶到底需要一個什么樣的程序。如果你編寫的程序具有良好的結(jié)構(gòu)和靈活性,就算需要修改也不會太浪費(fèi)力氣。反之,你會被自己累死。 2 n+ e- S2 V( W0 ! L: r, t! w. G/ m

23、2 h A8 k7 F$ i. Y2. 不要使用無法修改的數(shù)據(jù)庫訪問API在過去,你的數(shù)據(jù)庫可以為大量的客戶提供穩(wěn)定的數(shù)據(jù)查詢服務(wù)。而如今,你的程序必須能夠應(yīng)付更多的數(shù)據(jù)查詢。這使得重新改寫程序以使得每個查詢請求能得到最大的數(shù)據(jù)量成為勢在必行的工作,而一般來說這種代碼修改都不會一次成功,所以只有選擇合適的可以修改的API,才能使程序盡快適應(yīng)新的需求。 ) E4 D$ * 4 _不要設(shè)計任何無法擴(kuò)展的東西4 A7 I. 7 * D2 T6 9 U2 T在聯(lián)機(jī)處理過程(OLTP)應(yīng)用中,數(shù)據(jù)分析并不是一個真正的應(yīng)用程序。實(shí)際上,數(shù)據(jù)分析的關(guān)鍵是獲取大量舊的數(shù)據(jù),從中提取數(shù)據(jù)模型,并以此模型推斷出新

24、的信息。而你所編寫的訪問潛在信息的代碼應(yīng)該具有可擴(kuò)展性,可以附加新的數(shù)據(jù)。千萬別在支持?jǐn)?shù)據(jù)分析的代碼中假定數(shù)據(jù)都是固定格式的。 不要附加不必要的功能一個倉庫要做的是恰到好處的服務(wù),用戶走進(jìn)倉庫,從貨架上取得自己所需得信息,僅此而已。由于業(yè)務(wù)智能、分析以及規(guī)律性的問題都有各自的處理程序,因此你的客戶唯一的需要就是獲取信息。他們需要一種應(yīng)用環(huán)境,可以讓他們快速的從數(shù)據(jù)倉庫中取得分析過程所需的數(shù)據(jù),而不論這個數(shù)據(jù)是什么樣子的。也許你想幫助他們精煉一下獲得的數(shù)據(jù),但最好不要這么做。一定要記住,不要給客戶的數(shù)據(jù)分析程序添加任何會影響數(shù)據(jù)訪問性能的功能。* U W8 - a8 f6 w( Ib* B3 ?

25、, a1 a5. 不要簡化數(shù)據(jù)清除和數(shù)據(jù)源分析的步驟c% u f+ _& |1 W7 _+ B在實(shí)現(xiàn)數(shù)據(jù)倉庫過程中最應(yīng)該注意的地方就是為Extract-Transform-Load機(jī)制分析數(shù)據(jù)源,以及為優(yōu)化負(fù)載而清除數(shù)據(jù)。安全的做法是假設(shè)項目經(jīng)理在這個階段會需要整個項目資源的一半以上。相反,如果你在這方面進(jìn)行了簡化,稍后肯定會后悔。所以就算系統(tǒng)工作緩慢,也不要簡化清理舊的數(shù)據(jù)的過程。N & U. V3 F* & G6. 不要避免顆粒度和分區(qū)問題在數(shù)據(jù)倉庫設(shè)計過程中有兩個最大的數(shù)據(jù)存儲問題,第一是如何給轉(zhuǎn)換數(shù)據(jù)定位一個恰當(dāng)?shù)念w粒度等級,第二是如何將數(shù)據(jù)絕對的分區(qū)。為什么這兩點(diǎn)問題如此重要呢?因為

26、整個數(shù)據(jù)倉庫的響應(yīng)能力受顆粒度影響,并且數(shù)據(jù)訪問的效率直接與數(shù)據(jù)分區(qū)性能有關(guān)。因此這是具有關(guān)鍵性的工作,不要試圖避免面對這些問題。M 8 p( S$ |; ! s( V7. 不要在沒考慮業(yè)務(wù)問題前就使用OLAP( p* A) U. R0 k& p0 Z用戶在親眼見到程序前通常都不知道自己到底想要個什么樣的程序。因此他們的觀點(diǎn)有不少錯誤,比如他們希望分析結(jié)果會忠實(shí)反應(yīng)性能度量,或者希望程序會使他們部門或公司的業(yè)務(wù)工作有所不同。而你必須跳出自己的職責(zé)范圍,從IT管理者的角度考慮用戶部門直至整個企業(yè)的運(yùn)行方式,才能在開發(fā)過程中避免這類問題。在通常的OLTP開發(fā)中,你可以比較方便的理解業(yè)務(wù)流程。而在聯(lián)

27、機(jī)分析處理(OLAP)領(lǐng)域,任何事情都需要親自考察,而在你周圍工作的人也許并不會發(fā)現(xiàn)你對業(yè)務(wù)方面存在的誤解。因此,不要自以為已經(jīng)了解了足夠的信息。不斷的詢問才能使你真正了解業(yè)務(wù)智能中的業(yè)務(wù)到底是什么樣子的BN; H( k0 O z4 |順利開發(fā)數(shù)據(jù)倉庫的七種思路 對于大多數(shù)IT顧問來說,實(shí)現(xiàn)一個數(shù)據(jù)倉庫的難度比以前做過的任何項目難度都要大??紤]到不同的數(shù)據(jù)結(jié)構(gòu)、用途以及應(yīng)用程序開發(fā)方法,以前所積累的經(jīng)驗和技巧大部分都無用武之地了。但是只要在你的前進(jìn)道路上稍加修正,你就會發(fā)現(xiàn)實(shí)現(xiàn)一個數(shù)據(jù)倉庫并不是難事,就算你是第一次實(shí)現(xiàn)數(shù)據(jù)倉庫也沒問題。 O3 I( R+ i8 H下面列出了數(shù)據(jù)倉庫實(shí)施過程需要

28、考慮的步驟,有一些你可能從來沒有意識到,而另一些可能已經(jīng)在實(shí)施過程中使用到了,但是重新思考一番也許你會有更多的領(lǐng)悟。開放思維,不斷嘗試新的途徑,找到一種可行的數(shù)據(jù)倉庫實(shí)現(xiàn)方法。 9 v( N2 M* 2 n, N9 u* p0 o1 7 P+ V# o$ T1. 再三考慮應(yīng)用程序的實(shí)現(xiàn)方法: L) u7 o1 v% 數(shù)據(jù)倉庫并不涉及事務(wù)處理,并且在報表方面也僅占一小部分。而數(shù)據(jù)倉庫應(yīng)用程序的本質(zhì)是分析,尤其是針對業(yè)務(wù)智能的分析。BI并不是通常所說的數(shù)據(jù):它是一種從舊有數(shù)據(jù)中,模型化得到的新的數(shù)據(jù)。那么如何才能從舊有數(shù)據(jù)中挖出這些新數(shù)據(jù)呢?事實(shí)上,這個工作不是讓你來完成的,而是你的客戶所要完成的

29、。從項目主管的角度看,應(yīng)該有一個經(jīng)驗豐富的數(shù)據(jù)表格設(shè)計師與你合作,進(jìn)而決定如何將各類程序融合在一起。其中所遇到的最主要的挑戰(zhàn)將是如何用新的方法觀察數(shù)據(jù),這也是你的客戶正在試圖使用的方法。 創(chuàng)建抽象的、良好部署的數(shù)據(jù)庫訪問組件在過去你接觸過的數(shù)據(jù)庫項目和現(xiàn)在的數(shù)據(jù)倉庫之間,有一點(diǎn)絕對不同,那就是:在Online Transaction Processing (OLTP)環(huán)境中,用戶數(shù)量非常大,但使用到的數(shù)據(jù)卻比較少;而在Online Analytical Processing (OLAP)環(huán)境中情況卻正好相反,少量的用戶在使用大量的數(shù)據(jù)。而你的工作就是編寫一個應(yīng)用程序來優(yōu)化這種不同。這里有一個線

30、索:在你所有的分析程序中,都要能抓取連續(xù)的數(shù)據(jù)項,這樣在以后建立和訪問的數(shù)據(jù)結(jié)構(gòu)中才能存放與原數(shù)據(jù)物理結(jié)構(gòu)類似的數(shù)據(jù)。具體如何實(shí)現(xiàn)呢?首先不要規(guī)格化數(shù)據(jù)。第二將其放入數(shù)組中最小化讀取請求數(shù)。按照這種方法,DBA會很樂意與你合作。) b 5 w* B, q& U Bp! h5 I/ k0 B& K/ V% q) B! E3. 保持松散現(xiàn)在回頭看看第一步,你應(yīng)該可以理解定義一個分析程序不是件簡單事了,而且一般情況下,很難在第一次就實(shí)現(xiàn)符合要求的最終產(chǎn)品。而在你將要進(jìn)行分析的數(shù)據(jù)結(jié)構(gòu)上同樣存在這種問題。一句話,實(shí)現(xiàn)過程會有很多變數(shù),你需要不斷的改動你的程序。通常我們都希望將改動次數(shù)降到最低。在一個數(shù)

31、據(jù)倉庫實(shí)現(xiàn)過程中,本質(zhì)是要分析過程毫無差錯,這也需要DBA的參與。不要死抓住你的程序設(shè)計、代碼、框圖,或你建立的其它什么東西不放手,要根據(jù)這種變化而不斷進(jìn)行調(diào)整。0 * I; T Y4 V) w5 Y4 F& d將管理放在首位& ?& u& p o1 u2 I w5 a) z m在分析數(shù)據(jù)源方面你做的如何呢?你是否認(rèn)為清理垃圾數(shù)據(jù)的工作非常困難?并不是只有你一個人這樣想,做過類似工作的人都有這種看法。在一個一般規(guī)模的機(jī)構(gòu)中,作為數(shù)據(jù)倉庫實(shí)現(xiàn)過程的一部分,會有大量的舊有數(shù)據(jù)必須進(jìn)行一致性處理。所以分析數(shù)據(jù)源并花費(fèi)數(shù)個小時編寫轉(zhuǎn)換程序?qū)⑴f有數(shù)據(jù)導(dǎo)入數(shù)據(jù)倉庫是整個數(shù)據(jù)倉庫實(shí)現(xiàn)過程中最艱難的一部分。并且這也是整個項目中最重要的一環(huán),可以占到整個項目周期和預(yù)算的四分之三。所以一定要小心對待。/ j6 d+ O3 C& c+ _6 p; r j$ h0 #

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論